From: Motohiro KOSAKI Date: 2011-01-12T14:45:08+09:00 Subject: [ruby-core:34408] [Ruby 1.9-Bug#4266] Timeouts in threads cause "ThreadError: deadlock; recursive locking" --mimepart_4d2d3fe459093_1f2bb597e0e48cf Content-Type: text/plain Content-Transfer-Encoding: Quoted-printable Content-Disposition: inline Issue #4266 has been updated by Motohiro KOSAKI. File diffdiff added Priority changed from Normal to High Old days, C# had similar issue. and they changed Monitor.enter(=3D our Mu= tex.lock) semantics. http://www.bluebytesoftware.com/blog/2007/01/30/MonitorEnterThreadAbortsA= ndOrphanedLocks.aspx So, Can we take similar way? The attached patch kill a race in mutex.sync= hronize. At least, my ruby_1_9_2 branch don't reproduce the issue anymore. Thanks. ---------------------------------------- http://redmine.ruby-lang.org/issues/show/4266 ---------------------------------------- http://redmine.ruby-lang.org --mimepart_4d2d3fe459093_1f2bb597e0e48cf Content-Type: text/plain; name=diffdiff Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=diffdiff SW5kZXg6IHByZWx1ZGUucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g cHJlbHVkZS5yYgko44Oq44OT44K444On44OzIDMwNTE3KQorKysgcHJlbHVk ZS5yYgko5L2c5qWt44Kz44OU44O8KQpAQCAtNSwxMSArNSwxMyBAQAogICAj IE9idGFpbnMgYSBsb2NrLCBydW5zIHRoZSBibG9jaywgYW5kIHJlbGVhc2Vz IHRoZSBsb2NrIHdoZW4gdGhlCiAgICMgYmxvY2sgY29tcGxldGVzLiAgU2Vl IHRoZSBleGFtcGxlIHVuZGVyIE11dGV4LgogICBkZWYgc3luY2hyb25pemUK LSAgICBzZWxmLmxvY2sKICAgICBiZWdpbgorICAgICAgc2VsZi5sb2NrCiAg ICAgICB5aWVsZAogICAgIGVuc3VyZQotICAgICAgc2VsZi51bmxvY2sgcmVz Y3VlIG5pbAorICAgICAgaWYgc2VsZi5vd24/IHRoZW4KKyAgICAgICAgc2Vs Zi51bmxvY2sgcmVzY3VlIG5pbAorICAgICAgZW5kCiAgICAgZW5kCiAgIGVu ZAogZW5kCkluZGV4OiB0aHJlYWQuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSB0aHJlYWQuYwko44Oq44OT44K444On44OzIDMwNTE3KQorKysgdGhy ZWFkLmMJKOS9nOalreOCs+ODlOODvCkKQEAgLTMyNDgsNiArMzI0OCwyMiBA QAogICAgIHJldHVybiBzZWxmOwogfQogCitzdGF0aWMgVkFMVUUKK3JiX211 dGV4X293bihWQUxVRSBzZWxmKQoreworICAgIFZBTFVFIG93bmVkID0gUWZh bHNlOworICAgIHJiX3RocmVhZF90ICp0aCA9IEdFVF9USFJFQUQoKTsKKyAg ICBtdXRleF90ICptdXRleDsKKworICAgIEdldE11dGV4UHRyKHNlbGYsIG11 dGV4KTsKKworICAgIGlmIChtdXRleC0+dGggPT0gdGgpCisJb3duZWQgPSBR dHJ1ZTsKKworICAgIHJldHVybiBvd25lZDsKK30KKworCiBzdGF0aWMgY29u c3QgY2hhciAqCiBtdXRleF91bmxvY2sobXV0ZXhfdCAqbXV0ZXgsIHJiX3Ro cmVhZF90IHZvbGF0aWxlICp0aCkKIHsKQEAgLTQyMzMsNiArNDI0OSw3IEBA CiAgICAgcmJfZGVmaW5lX21ldGhvZChyYl9jTXV0ZXgsICJsb2NrIiwgcmJf bXV0ZXhfbG9jaywgMCk7CiAgICAgcmJfZGVmaW5lX21ldGhvZChyYl9jTXV0 ZXgsICJ1bmxvY2siLCByYl9tdXRleF91bmxvY2ssIDApOwogICAgIHJiX2Rl ZmluZV9tZXRob2QocmJfY011dGV4LCAic2xlZXAiLCBtdXRleF9zbGVlcCwg LTEpOworICAgIHJiX2RlZmluZV9tZXRob2QocmJfY011dGV4LCAib3duPyIs IHJiX211dGV4X293biwgMCk7CiAKICAgICByZWN1cnNpdmVfa2V5ID0gcmJf aW50ZXJuKCJfX3JlY3Vyc2l2ZV9rZXlfXyIpOwogICAgIHJiX2VUaHJlYWRF cnJvciA9IHJiX2RlZmluZV9jbGFzcygiVGhyZWFkRXJyb3IiLCByYl9lU3Rh bmRhcmRFcnJvcik7Cg== --mimepart_4d2d3fe459093_1f2bb597e0e48cf--