Issue #13236 has been updated by Damien Robert.


Damien Robert wrote:
> The code is in https://github.com/DamienRobert/drain
> You can run 'rake test' to (sometime, not often) get the core dump.

PS: I apologize that I was not able to get a minimal working example. I tried to do so in 'test_graph_segfault.rb' but it does not segfault. However removing test_graph.rb *or* test_converter.rb seems to prevent the segfault, but it is hard to tell because I am not able to get the segfault all the time. That's why I sent the coredump, I have several others (one where the message I get is an error due to a 'double free') if you need.

----------------------------------------
Bug #13236: Ruby segfault
https://bugs.ruby-lang.org/issues/13236#change-63052

* Author: Damien Robert
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
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  <signal handler called>
#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: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>