[mythtv] Playback start race condition

Kyle Rose krose+mythtv at krose.org
Fri Oct 15 00:14:47 UTC 2004


> Unless the lock is being corrupted, this sounds like a pthread
> problem.

In my fourth response to myself :), I believe I am right.  If I print
out the lock's internal state before and after certain operations,
then I end up with this:

2004-10-14 20:11:31 RWLOCK init r:2147483647 rq:2147483647 wq:2147483647
2004-10-14 20:11:31 RWLOCK init r:0 rq:0 wq:0
2004-10-14 20:11:31 23      ANN Playback nausicaa 0
2004-10-14 20:11:31 69      ANN FileTransfer nausicaa[]:[]/1025_20041014183...
2004-10-14 20:11:31 Output filters for this channel are: 'kerneldeint,crop,'
2004-10-14 20:11:31 NuppelVideoPlayer::OpenFile 1
2004-10-14 20:11:31 NuppelVideoPlayer::OpenFile 2
2004-10-14 20:11:31 RWLOCK rdlock1 r:0 rq:0 wq:0
2004-10-14 20:11:31 RWLOCK rdlock2 r:1 rq:0 wq:0
2004-10-14 20:11:31 RWLOCK ret: 0
2004-10-14 20:11:31 50      QUERY_FILETRANSFER 23[]:[]REQUEST_BLOCK[]:[]128000
2004-10-14 20:11:31 NuppelVideoPlayer::OpenFile 3
2004-10-14 20:11:31 RWLOCK rdlock1 r:1 rq:0 wq:0
2004-10-14 20:11:31 RWLOCK rdlock2 r:2 rq:0 wq:0
2004-10-14 20:11:31 RWLOCK ret: 0
2004-10-14 20:11:31 Read(): reqd=128000, rcvd=128000, rept=128000, error=0
2004-10-14 20:11:31 RWLOCK unlock1 r:2 rq:0 wq:0
2004-10-14 20:11:31 RWLOCK unlock2 r:2 rq:0 wq:0
2004-10-14 20:11:31 RWLOCK ret: 0

unlock1 occurs right before pthread_rwlock_unlock and unlock2 occurs
right after.  Note that the number of read locks doesn't decrement.
Bug.  I will direct further bug reports to the GNU folks.

In the meantime, I'm going to try switching to a simple pthread_lock
to see if I can reliably use my frontend until I get the underlying
pthread problem fixed.

Cheers,
Kyle


More information about the mythtv-dev mailing list