From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?=) Date: 2010-10-15T20:40:11+09:00 Subject: [ruby-dev:42399] [locking_mutex must be NULL] Re: Re: [BUG: trunk] Lazy sweep and ObjectSpace.each_object けいじゅ@いしつかです. In [ruby-dev:42396] the message: "[ruby-dev:42396] Re: [BUG: trunk] Lazy sweep and ObjectSpace.each_object", on Oct/15 17:26(JST) SASADA Koichi writes: > ささだです。 >> ちょっとお聞きしたいんですけど, この問題って, どの辺りのバージョンから >> 入っています? > > 1.9.3 以降です。 そうですか, 残念. ところで, 添付のようなエラーが出てSEGVしちゃうんですけど, 原因が何か分 かります? 何をやっているかというと, 親プロセスから子プロセスをforkしていて, 子側 がSEGVしています. 親側では, threadとかmutexを使っていて色々と非同期処理をしています. fork後, 子側でそのthreadがGCされるときに発生しているみたいなんですが... 非同期処理をしながらforkするところに無理があるって話もありそうなんです が... それと, このバックトレースではeach_object中に発生していますが, その前 に GC.start を入れると, そこで発生します. -- ここから /var/projects/fairy/fairy/lib/fairy/share/base-app.rb:94: [BUG] thread_free: locking_mutex must be NULL (0x87fd5f0:138337388) ruby 1.9.1p430 (2010-08-16 revision 28998) [i686-linux] -- control frame ---------- c:0015 p:0015 s:0049 b:0048 l:000031 d:000047 BLOCK /var/projects/fairy/fairy/lib/fairy/share/base-app.rb:94 c:0014 p:---- s:0045 b:0045 l:000044 d:000044 FINISH c:0013 p:---- s:0043 b:0043 l:000042 d:000042 CFUNC :each_object c:0012 p:0022 s:0039 b:0039 l:000031 d:000038 BLOCK /var/projects/fairy/fairy/lib/fairy/share/base-app.rb:92 c:0011 p:---- s:0037 b:0037 l:000036 d:000036 FINISH c:0010 p:---- s:0035 b:0035 l:000034 d:000034 CFUNC :fork c:0009 p:0035 s:0032 b:0032 l:000031 d:000031 METHOD /var/projects/fairy/fairy/lib/fairy/share/base-app.rb:91 c:0008 p:0016 s:0027 b:0027 l:000026 d:000026 METHOD /var/projects/fairy/fairy/lib/fairy/share/base-app.rb:18 c:0007 p:0080 s:0022 b:0022 l:000015 d:000021 BLOCK /var/projects/fairy/fairy/lib/fairy/master.rb:112 c:0006 p:0019 s:0019 b:0019 l:000018 d:000018 METHOD :8 c:0005 p:0012 s:0016 b:0016 l:000015 d:000015 METHOD /var/projects/fairy/fairy/lib/fairy/master.rb:110 c:0004 p:0145 s:0013 b:0013 l:000012 d:000012 METHOD /var/projects/fairy/lib/deep-connect/evaluator.rb:32 c:0003 p:0064 s:0006 b:0006 l:0023fc d:000005 BLOCK /var/projects/fairy/lib/deep-connect/session.rb:155 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:---- s:0002 b:0002 l:000001 d:000001 CONT#0 controller.rb[186] Controller[0]#block (2 levels) in terminate: TERMINATE: #2.5.3 CONT#0 controller.rb[191] Controller[0]#block (2 levels) in terminate: TERMINATE: #2.6 CONT#0 controller.rb[166] Controller[0]#block (2 levels) in terminate: TERMINATE: #2.3 CONT#0 controller.rb[168] Controller[0]#block (2 levels) in terminate: TERMINATE: #2.4 TOP --------------------------- -- Ruby level backtrace information----------------------------------------- /var/projects/fairy/fairy/lib/fairy/share/base-app.rb:94:in `block (2 levels) in start_subcommand' /var/projects/fairy/fairy/lib/fairy/share/base-app.rb:92:in `each_object' /var/projects/fairy/fairy/lib/fairy/share/base-app.rb:92:in `block in start_subcommand' /var/projects/fairy/fairy/lib/fairy/share/base-app.rb:91:in `fork' /var/projects/fairy/fairy/lib/fairy/share/base-app.rb:91:in `start_subcommand' /var/projects/fairy/fairy/lib/fairy/share/base-app.rb:18:in `start_subcommand' /var/projects/fairy/fairy/lib/fairy/master.rb:112:in `block in assgin_controller' :8:in `synchronize' [M] master.rb[80] Master#when_disconnected: MASTER: disconnected: Start terminationcts/fairy/lib/deep-connect/evaluator.rb:32:in `evaluate_request' /var/projects/fairy/lib/deep-connect/session.rb:155:in `block in receive' -- C level backtrace information ------------------------------------------- 0x8157b71 fairy master (rb_vm_bugreport+0xa1) [0x8157b71] 0x8193156 fairy master [0x8193156] 0x8193208 fairy master (rb_bug+0x28) [0x8193208] 0x814311d fairy master [0x814311d] 0x8064e9e fairy master [0x8064e9e] 0x8065339 fairy master (rb_gc_finalize_deferred+0x59) [0x8065339] 0x815c2ad fairy master [0x815c2ad] 0x8155fe9 fairy master [0x8155fe9] 0x8148ddb fairy master [0x8148ddb] 0x814f644 fairy master [0x814f644] 0x8150a7f fairy master (rb_yield+0x4f) [0x8150a7f] 0x80682e6 fairy master [0x80682e6] 0x8143f7d fairy master [0x8143f7d] 0x81440a4 fairy master [0x81440a4] 0x8155f54 fairy master [0x8155f54] 0x8148ddb fairy master [0x8148ddb] __ ---------------------------------------------------->> 石塚 圭樹 <<--- ---------------------------------->> e-mail: keiju@ishitsuka.com <<---