This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author xdegaye
Recipients Alex.Willmer, ncoghlan, neologix, pitrou, rhettinger, xdegaye, yan12125
Date 2016-05-16.15:52:27
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1463413947.43.0.890855543836.issue26939@psf.upfronthosting.co.za>
In-reply-to
Content
Got now a full fledged gdb. Thread #1 loops infinitely in the "while (_Py_atomic_load_relaxed(&gil_locked))" loop in take_gil(). Thread #2 is stuck in the MUTEX_LOCK(gil_mutex) statement in drop_gil() as can be seen by setting a breakpoint at the following line and seeing that this breakpoint is never hit.

Setting gil_interval to 10 (from the initial value of 1) from gdb, allows the test to pass.

With this patch of PyCOND_TIMEDWAIT():

  diff -r eee959fee5f5 Python/condvar.h
  --- a/Python/condvar.h	Sat May 07 21:13:50 2016 +0300
  +++ b/Python/condvar.h	Mon May 16 15:52:49 2016 +0200
  @@ -99,6 +99,7 @@
       PyCOND_ADD_MICROSECONDS(deadline, us);
       ts.tv_sec = deadline.tv_sec;
       ts.tv_nsec = deadline.tv_usec * 1000;
  +    PyCOND_GETTIMEOFDAY(&deadline);

and a breakpoint set on pthread_cond_timedwait(). When this breakpoint is hit, there is 20 usec  elapsed time instead of the value of 1 (as requested by 'us') between ts and deadline as shown here:

  (gdb) p ts
  $1 = {tv_sec = 1463407197, tv_nsec = 468546000}
  (gdb) p deadline
  $2 = {tv_sec = 1463407197, tv_usec = 468566}

And when iterating the loop, the measured elapsed times are: 20, 12, 12, 11, 11, 11.

Clearly, the ts date is in the past when pthread_cond_timedwait() is called, and the function returns immediately without releasing the mutex. This is the expected behavior[1].

[1] http://linux.die.net/man/3/pthread_cond_wait
History
Date User Action Args
2016-05-16 15:52:27xdegayesetrecipients: + xdegaye, rhettinger, ncoghlan, pitrou, neologix, Alex.Willmer, yan12125
2016-05-16 15:52:27xdegayesetmessageid: <1463413947.43.0.890855543836.issue26939@psf.upfronthosting.co.za>
2016-05-16 15:52:27xdegayelinkissue26939 messages
2016-05-16 15:52:27xdegayecreate