Bug #13537
closed
Added by viamin (Bart Agapinan) over 7 years ago.
Updated over 7 years ago.
Description
ruby crashes on me fairly regularly while working on a rails app. It happens after a file has changed and the guard gem fires up some tests. It appears to be happening when running rubycritic via guard:
running flay smells
running flog smells
..
running reek smells
..
running complexity
..
running attributes
..
running churn
.
/usr/local/var/rbenv/versions/2.4.1/lib/ruby/2.4.0/pathname.rb:41: [BUG] rb_gc_mark(): 0x007fd0efd68a68 is T_NONE
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
Files
It should be marking miss failure.
Could you give us the way to reproduce it?
I can confirm having the same issue. It's intermediate but reproducible, and affects both 2.4.0 and 2.4.1 versions.
The setup is simple:
- OS X (macOS 10.12.5 with latest patches)
- XCode command line tools (also latest)
- rbenv with ruby-install (installed via Homebrew)
The guard Ruby gem is installed and run using fsnotify events to trigger builds, and it would randomly crash Ruby interpreter. Sometimes at the very beginning, sometimes after running a while.
Since I test against multiple Ruby versions, I can confirm that this does not happen on 2.2.6 and 2.3.3, only 2.4.x family is affected.
If you can modify MRI source code, please try to change RGENGC_CHECK_MODE
in gc.c to 2
and run your program on your modified MRI again.
It will inserts many assertions and it may help.
Thanks,
Koichi
Is this same to #13605 and fixed at r59063?
- Related to Bug #13605: GC bug calling `ObjectSpace.each_object` added
I get the same error running the Pry rspec suite.
[BUG] rb_gc_mark(): 0x000000036d2bc8 is T_NONE
The value 0x000000036d2bc8 varies.
Using ruby 2.4.2p161 (2017-07-23 revision 59409) [x86_64-linux]
When I change RGENGC_CHECK_MODE in gc.c to 2, it fails every time and I get this output
verify_internal_consistency_reachable_i: WB miss (O->Y) 0x0000000003db1110 [3LM ] T_IMEMO env -> 0x00000000036fb8e8 [0 ] T_OBJECT (Pry)
verify_internal_consistency_reachable_i: WB miss (O->Y) 0x0000000003db1200 [3LM ] T_IMEMO env -> 0x00000000036f8170 [0 ] T_OBJECT (Pry::HistoryArray)
verify_internal_consistency_reachable_i: WB miss (O->Y) 0x0000000003db12f0 [3LM ] T_IMEMO env -> 0x00000000036f8288 [0 ] T_OBJECT (Pry::HistoryArray)
/home/panic/src/pry/lib/pry/core_extensions.rb:87: [BUG] gc_verify_internal_consistency: found internal inconsistency.
ruby 2.4.2p161 (2017-07-23 revision 59409) [x86_64-linux]
could you with check recent trunk (2.5dev)? I'm not sure recent 2.4 has backport patch (r59063).
I see r59063 went into ruby_2_4 yesterday.
I've been running the Pry rspec suite repeatedly with
ruby 2.5.0dev (2017-08-05 trunk 59519) [x86_64-linux]
ruby 2.4.2p181 (2017-08-05 revision 59520) [x86_64-linux]
and I don't get the crash.
Thanks :-)
- Status changed from Open to Closed
- Backport changed from 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN to 2.2: DONTNEED, 2.3: DONTNEED, 2.4: DONE
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0