Issue #11603 has been updated by Tomoyuki Chikanaga.

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.

----------------------------------------
Bug #11603: Count trace_running for internal event
https://bugs.ruby-lang.org/issues/11603#change-54759

* Author: Takashi Kokubun
* Status: Closed
* Priority: Normal
* Assignee: Koichi Sasada
* ruby -v: ruby 2.3.0dev (2015-10-19 trunk 52192) [x86_64-darwin14]
* Backport: 2.0.0: UNKNOWN, 2.1: REQUIRED, 2.2: DONE
----------------------------------------
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--------------------------------
ruby_2015-10-19-221406_P607.crash (18 KB)
patch.diff (549 Bytes)


-- 
https://bugs.ruby-lang.org/