Bug #11603
closedCount trace_running for internal event
Description
https://github.com/ruby/ruby/pull/1059
I want to fix a crash: https://gist.github.com/k0kubun/86fd9fbff32423bd4974
I noticed that clean_hooks can be executed inside exec_hooks_body.
The hooks of list->hooks can be xfreed during exec_hooks_body.
That's because th->vm->trace_running is not incremented for exec_hooks_unprotected.
So I fixed rb_threadptr_exec_event_hooks_orig to count exec_hooks_unprotected as th->vm->trace_running too.
Files
Updated by sorah (Sorah Fukumori) over 9 years ago
- Assignee set to ko1 (Koichi Sasada)
assigning ko1 at here too, because he has self-assigned at GitHub PR
Updated by deivid (David Rodríguez) over 9 years ago
Commenting here just to confirm that this change fixes the SEGVs that this patch introduces in byebug's test suite.
Updated by k0kubun (Takashi Kokubun) over 9 years ago
Byebug 7.0.0 including https://github.com/deivid-rodriguez/byebug/pull/160 is released to rubygems.org the day before yesterday.
Since byebug gem is installed by Rails' default Gemfile, I guess many users may have chance to cause this SEGV.
Could you review this and point out what is a blocker to merge this patch?
Updated by ko1 (Koichi Sasada) over 9 years ago
- Status changed from Open to Closed
Applied in changeset r52476.
-
vm_trace.c (rb_threadptr_exec_event_hooks_orig):
maintain trace_running counter on internal events.This patch is made by Takashi Kokubun takashikkbn@gmail.com.
[Bug #11603] https://github.com/ruby/ruby/pull/1059
Updated by deivid (David Rodríguez) over 9 years ago
- Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: UNKNOWN, 2.1: REQUIRED, 2.2: REQUIRED
Great! Thanks a lot, Koichi!
We need backports to 2.1 and 2.2 if possible.
Updated by nagachika (Tomoyuki Chikanaga) over 9 years ago
- Backport changed from 2.0.0: UNKNOWN, 2.1: REQUIRED, 2.2: REQUIRED to 2.0.0: UNKNOWN, 2.1: REQUIRED, 2.2: DONE
Backported into ruby_2_2
branch at r52497.
Updated by usa (Usaku NAKAMURA) over 9 years ago
- Backport changed from 2.0.0: UNKNOWN, 2.1: REQUIRED, 2.2: DONE to 2.0.0: UNKNOWN, 2.1: DONE, 2.2: DONE
ruby_2_1 r52641 merged revision(s) 52476,52477.