[#47790] [ruby-trunk - Bug #7097][Open] Thread locals don't work inside Enumerator — "tenderlovemaking (Aaron Patterson)" <aaron@...>

32 messages 2012/10/01
[#47791] [ruby-trunk - Bug #7097][Assigned] Thread locals don't work inside Enumerator — "kosaki (Motohiro KOSAKI)" <kosaki.motohiro@...> 2012/10/01

[#47792] Re: [ruby-trunk - Bug #7097][Assigned] Thread locals don't work inside Enumerator — Aaron Patterson <tenderlove@...> 2012/10/01

On Tue, Oct 02, 2012 at 03:05:17AM +0900, kosaki (Motohiro KOSAKI) wrote:

[#47798] Re: [ruby-trunk - Bug #7097][Assigned] Thread locals don't work inside Enumerator — SASADA Koichi <ko1@...> 2012/10/01

(2012/10/02 3:12), Aaron Patterson wrote:

[#47800] Re: [ruby-trunk - Bug #7097][Assigned] Thread locals don't work inside Enumerator — SASADA Koichi <ko1@...> 2012/10/01

(2012/10/02 8:22), SASADA Koichi wrote:

[#47832] [ruby-trunk - Feature #7106][Open] FileUtils.touch should allow touching the symlink itself rather than the file the link points to — "cirrusthinking (Alessandro Diaferia)" <alessandro@...>

18 messages 2012/10/04

[#47847] [ruby-trunk - Bug #7110][Open] CGI: Add support for HTML5 <header> tag — "stomar (Marcus Stollsteimer)" <redmine@...>

16 messages 2012/10/05

[#47870] [ruby-trunk - Bug #7123][Open] Segmentation fault in ruby 1.9.3-p194 — "mscottford (M. Scott Ford)" <scott@...>

13 messages 2012/10/09

[#47880] [ruby-trunk - Bug #7134][Open] Signal handling bug in Mac OS X — "auastro (Andy Kitchen)" <kitchen.andy+rubybug@...>

17 messages 2012/10/10

[#47881] [ruby-trunk - Bug #7135][Open] GC bug in Ruby 1.9.3-p194? — "alexdowad (Alex Dowad)" <alexinbeijing@...>

21 messages 2012/10/10

[#47887] [ruby-trunk - Bug #7137][Open] Date.parse overly lenient when attempting to parse Monday? — "garysweaver (Gary Weaver)" <garysweaver@...>

12 messages 2012/10/10

[#47930] [ruby-trunk - Feature #7148][Open] Improved Tempfile w/o DelegateClass — "Glass_saga (Masaki Matsushita)" <glass.saga@...>

14 messages 2012/10/12

[#47970] [ruby-trunk - Bug #7158][Open] require is slow in its bookkeeping; can make Rails startup 2.2x faster — "gregprice (Greg Price)" <price@...>

30 messages 2012/10/14

[#48027] [Backport93 - Backport #7172][Open] [[Ruby 1.9:]] fix rbconfig for --enable-load-relative (v2) — "mpapis (Michal Papis)" <mpapis@...>

13 messages 2012/10/16

[#48053] [ruby-trunk - Bug #7180][Open] set_trace_func with error in proc block locks up Ruby with 100% cpu usage and no way to exit without killing proc — "garysweaver (Gary Weaver)" <garysweaver@...>

8 messages 2012/10/17

[#48072] [ruby-trunk - Bug #7184][Open] --disable-gems commandline parameter does not show up with ruby -h — "steenslag (siep korteling)" <s.korteling@...>

10 messages 2012/10/18

[#48130] [ruby-trunk - Bug #7200][Open] Setting external encoding with BOM| — "brixen (Brian Ford)" <brixen@...>

14 messages 2012/10/21

[#48191] [ANN] 2.0.0 feature freeze — Yusuke Endoh <mame@...>

Japanese later; 日本語は後で

37 messages 2012/10/24
[#48696] Re: [ANN] 2.0.0 feature freeze — SASADA Koichi <ko1@...> 2012/11/01

(2012/10/24 5:39), Yusuke Endoh wrote:

[#48260] [ruby-trunk - Bug #7214][Open] Ruby 2.0 breaks support for some debugging tools — "banister (john mair)" <jrmair@...>

22 messages 2012/10/25

[#48315] [ruby-trunk - Bug #7220][Open] StringIO#initialize_copy causes aliasing between the objects — "brixen (Brian Ford)" <brixen@...>

13 messages 2012/10/26

[#48413] [ruby-trunk - Bug #7221][Open] Unable to compile kgio under 1.9.3 with error: ruby-1.9.3-<plvl>/lib/ruby/1.9.1/mkmf.rb:597:in `Integer': can't convert nil into Integer (TypeError) — "davidderyldowney (David Deryl Downey)" <me@...>

9 messages 2012/10/27

[#48549] [ruby-trunk - Feature #7240][Open] Inheritable #included/#extended Hooks For Modules — "apotonick (Nick Sutterer)" <apotonick@...>

14 messages 2012/10/29

[#48551] [ruby-trunk - Feature #7241][Open] Enumerable#to_h proposal — "nathan.f77 (Nathan Broadbent)" <nathan.f77@...>

23 messages 2012/10/29

[#48552] [ruby-trunk - Bug #7242][Open] Bignum mathematical accuracy regression in r31695 — "mhall (Matthew Hall)" <mhall@...>

11 messages 2012/10/29

[ruby-core:48102] [Backport87 - Backport #1471] "Mutual join" deadlock detection faulty in 1.8.6 and 1.8.7

From: "elninorian (menuju sukses sukses)" <rian_barkah88@...>
Date: 2012-10-19 06:01:38 UTC
List: ruby-core #48102
Issue #1471 has been updated by elninorian (menuju sukses sukses).


http://www.howtogetaflatstomachforgirls.com/
http://www.howtogetaflatstomachforgirls.com/lose-weight/lose-weight-teenage-girls/
http://www.howtogetaflatstomachforgirls.com/uncategorized/reviews-flat-belly-diet-book-work/
http://www.howtogetaflatstomachforgirls.com/diet/diet-rich-cellulose/
http://www.howtogetaflatstomachforgirls.com/belly-fat/flat-belly-menopause/
http://www.howtogetaflatstomachforgirls.com/flat-belly/flat-belly-menu-plan-vegetarians/
http://www.howtogetaflatstomachforgirls.com/flat-stomach-for-girls/how-to-get-a-flat-stomach-for-girls-in-2-weeks/
http://www.howtogetaflatstomachforgirls.com/have-a-flat-stomach-for-girls/how-to-have-a-flat-stomach-for-girls-a/
http://www.howtogetaflatstomachforgirls.com/weight-loss-secrets/the-secret-to-losing-weight/
http://www.howtogetaflatstomachforgirls.com/exercise-to-slim-legs/exercise-to-slim-legs/
http://www.howtogetaflatstomachforgirls.com/weight-loss-secrets/lose-6-pounds-in-a-week/
http://www.howtogetaflatstomachforgirls.com/diet/ketogenic-diet-risks/
http://www.howtogetaflatstomachforgirls.com/lose-pounds/lose-6-pounds-in-two-weeks/
http://www.howtogetaflatstomachforgirls.com/belly-fat/belly-fat-under-belly-button/
http://www.howtogetaflatstomachforgirls.com/flat-stomach-for-girls/how-to-get-a-flat-stomach-for-girls-fast/
http://www.howtogetaflatstomachforgirls.com/a-flat-stomach/flat-stomach-in-a-month/
http://www.howtogetaflatstomachforgirls.com/belly-fat/flatten-belly-fast/
http://www.howtogetaflatstomachforgirls.com/abs/how-to-get-abs-for-girls-women/
http://www.howtogetaflatstomachforgirls.com/flat-stomach-fast-for-girls/how-to-get-a-flat-stomach-for-girls-a/
http://www.howtogetaflatstomachforgirls.com/flat-belly/flat-belly-solution/
http://www.howtogetaflatstomachforgirls.com/exercises-work/exercises-work-flat-stomach/
http://www.howtogetaflatstomachforgirls.com/a-flat-stomach/foods-flat-stomach/
http://www.howtogetaflatstomachforgirls.com/flat-stomach-diet-does-work/flat-stomach-diet-work/
http://www.howtogetaflatstomachforgirls.com/cardio-training-tips-workout/cardio-training-tips-workout-flat-stomach/
http://www.howtogetaflatstomachforgirls.com/bonus-buy-flat-stomach/bonus-buy-flat-stomach-diet-does-work/
http://www.howtogetaflatstomachforgirls.com/flat-stomach-ebook/flat-stomach-ebook-download/
http://www.howtogetaflatstomachforgirls.com/flat-stomach-program/flat-stomach-programme-exercise-training-workout-gym-2012/
http://www.howtogetaflatstomachforgirls.com/abs/how-to-have-defined-abs/
http://www.howtogetaflatstomachforgirls.com/weight-loss-secrets/lose-weight-while-walking/
http://www.howtogetaflatstomachforgirls.com/stomach-for-girls-in-a-week/how-to-get-a-flat-stomach-for-girls-in-a-week-for-teenagers/
http://www.howtogetaflatstomachforgirls.com/secrets-to-lose-weight-fast/secrets-to-lose-weight-fast/
http://www.howtogetaflatstomachforgirls.com/exercises-for-flat-stomach/how-to-get-a-flat-stomach-for-girls-exercises/
http://www.howtogetaflatstomachforgirls.com/to-get-a-flat-stomach-at-home-for-girls/how-to-get-a-flat-stomach-at-home-for-girls-fast-for-girls-at-home/
http://www.howtogetaflatstomachforgirls.com/tips-for-slimming-stomach/tips-for-slimming-stomach-weigh-your-belly/
http://www.howtogetaflatstomachforgirls.com/flat-stomach-for-girls/flat-stomach-for-girls/
http://www.howtogetaflatstomachforgirls.com/a-flat-stomach/a-flat-stomach-the-ideal-diet-and-exercise-system-beautiful-belly/
http://www.howtogetaflatstomachforgirls.com/belly-fat/flat-belly-menu-plan/
http://www.howtogetaflatstomachforgirls.com/flat-belly/menu-plan-flat-belly-diet/
http://www.howtogetaflatstomachforgirls.com/weight-loss-secrets/lose-3-kg-in-3-days-how-to-lose-3-kg-in-3-days/
http://www.howtogetaflatstomachforgirls.com/diet/moerman-diet/
http://www.howtogetaflatstomachforgirls.com/weight-loss-secrets/lose-4-kg-how-to-lose-4-kg/
http://www.howtogetaflatstomachforgirls.com/belly-fat/how-to-lose-belly-fat-swimming/
http://www.howtogetaflatstomachforgirls.com/belly-fat/fast-flatten-belly-fast/
http://www.howtogetaflatstomachforgirls.com/how-to-lose-3-kg-in-a-month/how-to-lose-3-kg-in-a-month/
http://www.howtogetaflatstomachforgirls.com/flat-stomach-for-girls/girls-with-flat-stomach/
http://www.howtogetaflatstomachforgirls.com/flat-stomach-for-girls/how-long-does-it-take-to-get-a-flat-stomach-for-girls/
http://www.howtogetaflatstomachforgirls.com/how-do-i-lose-weight-in-a-week/how-do-i-lose-weight-in-a-week/

http://www.fatburningfoodsformen1.com/belly-fat-exercises-for-men.htm
http://www.fatburningfoodsformen1.com/abs-exercises-for-men.htm
http://www.fatburningfoodsformen1.com/green-tea-burn-belly-fat.htm
http://www.fatburningfoodsformen1.com/belly-fat-exercises-for-men.htm
http://www.fatburningfoodsformen1.com/the-man-diet-free-download.htm

----------------------------------------
Backport #1471: "Mutual join" deadlock detection faulty in 1.8.6 and 1.8.7
https://bugs.ruby-lang.org/issues/1471#change-31060

Author: JohnCarter (John Carter)
Status: Assigned
Priority: Normal
Assignee: shyouhei (Shyouhei Urabe)
Category: core
Target version: 


=begin
 If a third thread is involved, the code in eval.c in function
 rb_thread_join0 to detect a mutual join dead lock is faulty.
 
 This effects ruby 1.8.6 p368 and ruby 1.8.7 p 160 but not ruby 1.9.1 p
 129
 
 What seems to be happening is a sequence like this....
 
 main thread grabs mutex
 
 thread two blocks waiting for mutex
 
 thread one blocks waiting for mutex and th->join is set to the main thread.
 
 the main thread unlocks, which wakes thread two. Thread two now has mutex, thread one is still blocked.
 
 the main thread attempts to join thread one, rb_thread_join0 notes
 that thread one is in a WAIT_JOIN waitfor state AND th->join still
 points at the main thread and (erroneously) reports deadlock.
 
 ruby-1.8.7-p160/eval.c================================================
 rb_thread_join0(th, limit)
     rb_thread_t th;
     double limit;
 {
     enum rb_thread_status last_status = THREAD_RUNNABLE;
 
     if (rb_thread_critical) rb_thread_deadlock();
     if (!rb_thread_dead(th)) {
         if (th == curr_thread)
             rb_raise(rb_eThreadError, "thread 0x%lx tried to join itself",
                      th->thread);
         if ((th->wait_for & WAIT_JOIN) && th->join == curr_thread)
             rb_raise(rb_eThreadError, "Thread#join: deadlock 0x%lx - mutual join(0x%lx)",
                      curr_thread->thread, th->thread);
 ======================================================================
 Affected versions.
 
 /opt/ruby/ruby-1.8.6-p368/bin/ruby -v
 ruby 1.8.6 (2009-03-31 patchlevel 368) [i686-linux]
 
 /opt/ruby/ruby-1.8.7-p160/bin/ruby -v
 ruby 1.8.7 (2009-04-08 patchlevel 160) [i686-linux]
 
 Here is a test script to trigger it....
 =mutual_join_bug.rb============================================================
 require 'thread'
 
 m = Mutex.new
 m.lock
 wt2 = Thread.new do
    m.lock
    sleep 2
    m.unlock
 end
 
 # Ensure wt2 is waiting on m
 sleep 0.1
 
 wt1 = Thread.new do
    m.lock
    m.unlock
 end
 # Ensure wt1 is waiting on m
 sleep 0.1
 
 # Give it to wt2
 m.unlock
 
 wt1.join
 ======================================================================
 
 Output...
 /opt/ruby/ruby-1.8.7-p160/bin/ruby -w mutual_join_bug.rb mutual_join_bug.rb:24:in `join': Thread#join: deadlock 0xb7daa1bc - mutual join(0xb7d9bc48) (ThreadError)
         from mutual_join_bug.rb:24
 
 
 
 
 The following patch "fixes" it...
 ======================================================================
 --- eval.c_orig	2009-03-23 22:28:31.000000000 +1300
 +++ eval.c	2009-05-15 15:15:34.141270568 +1200
 @@ -11426,9 +11426,13 @@
  	if (th == curr_thread)
  	    rb_raise(rb_eThreadError, "thread 0x%lx tried to join itself",
  		     th->thread);
 +/* This test for mutual join deadlock is faulty in that
 +   it doesn't allow for the possibility that a third thread
 +   may now hold the mutex.
  	if ((th->wait_for & WAIT_JOIN) && th->join == curr_thread)
  	    rb_raise(rb_eThreadError, "Thread#join: deadlock 0x%lx - mutual join(0x%lx)",
  		     curr_thread->thread, th->thread);
 +*/
  	if (curr_thread->status == THREAD_TO_KILL)
  	    last_status = THREAD_TO_KILL;
  	if (limit == 0) return Qfalse;
 ======================================================================
 
 But I'm not sure it is the correct fix. I'm still experience some
 strangeness which I haven't pinned down yet.
 
 I would seem to me that the correct fix is when a mutex is unlocked,
 and then locked by some other thread, the th->join pointers of all
 threads waiting on that mutex should be updated to point at the thread
 now holding the mutex.
=end



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

In This Thread

Prev Next