From: nobu@... Date: 2017-03-25T02:11:18+00:00 Subject: [ruby-core:80319] [Ruby trunk Bug#13236][Assigned] Ruby segfault Issue #13236 has been updated by nobu (Nobuyoshi Nakada). Status changed from Feedback to Assigned Assignee set to shugo (Shugo Maeda) Backport changed from 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN to 2.2: DONTNEED, 2.3: REQUIRED, 2.4: REQUIRED Thank you, reduced code with `GC.stress` could reproduce it. ```ruby module M include refine(String) {def test;:ok end} end class C include M end GC.stress = true C.new("foo").test ``` But I wonder if it is possible to "convert a class to module". ---------------------------------------- Bug #13236: Ruby segfault https://bugs.ruby-lang.org/issues/13236#change-63789 * Author: Gondolin (Damien Robert) * Status: Assigned * Priority: Normal * Assignee: shugo (Shugo Maeda) * Target version: * ruby -v: ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux] * Backport: 2.2: DONTNEED, 2.3: REQUIRED, 2.4: REQUIRED ---------------------------------------- I have a program that segfault under certain conditions. It does not happen often, so it is hard to get the segfault. The code is in https://github.com/DamienRobert/drain You can run 'rake test' to (sometime, not often) get the core dump. I was able to get the coredump across different computers and different ruby versions. In the tests I construct a graph with a cyclic path, so there is probably a bug in the gc when there are cyclic dependencies. I join a coredump (compressed with xz), here is the backtrace (not very usefull because I did not compile ruby with debugging symbols): ``` Core was generated by `/usr/bin/ruby -w -Ilib:test -I/usr/lib/ruby/gems/2.4.0/gems/rake-12.0.0/lib /us'. Program terminated with signal SIGABRT, Aborted. #0 0x00007facdff1304f in raise () from /usr/lib/libc.so.6 [Current thread is 1 (Thread 0x7face08fe700 (LWP 7251))] (gdb) bt #0 0x00007facdff1304f in raise () from /usr/lib/libc.so.6 #1 0x00007facdff1447a in abort () from /usr/lib/libc.so.6 #2 0x00007face03096e1 in ?? () from /usr/lib/libruby.so.2.4 #3 0x00007face03c50ee in ?? () from /usr/lib/libruby.so.2.4 #4 #5 0x00007face02c9b44 in ?? () from /usr/lib/libruby.so.2.4 #6 0x00007face0321d0d in ?? () from /usr/lib/libruby.so.2.4 #7 0x00007face0322f13 in ?? () from /usr/lib/libruby.so.2.4 #8 0x00007face032515d in rb_gc_call_finalizer_at_exit () from /usr/lib/libruby.so.2.4 #9 0x00007face03104c4 in ruby_cleanup () from /usr/lib/libruby.so.2.4 #10 0x00007face0310645 in ruby_run_node () from /usr/lib/libruby.so.2.4 #11 0x00000000004007cb in ?? () #12 0x00007facdff00291 in __libc_start_main () from /usr/lib/libc.so.6 #13 0x00000000004007fa in _start () ``` ---Files-------------------------------- ruby.coredump.xz (1.1 MB) -- https://bugs.ruby-lang.org/ Unsubscribe: