[mythtv] [mythtv-commits] Ticket #9196: Unable to play recordings on win32 build 0.24rc2
Jeff Lu
jll544 at yahoo.com
Sun Nov 28 07:33:45 UTC 2010
>ASSERT failure in QReadWriteLock::unlock(): "Cannot unlock an unlocked lock"
This assert probably would show up on any platform when using debug Qt
libraries. The problem is in the start-playback optimization of
RingBuffer::Seek(). Lines 1989-1990 (RingBuffer.cpp, 0.24-fixes) attempt to
unlock rbwlock and rbrlock, but the preceding code doesn't leave them in a
locked state.
Ticket is locked, so I've copied below the relevant snippets of the log (-v
file) and backtrace. I can supply full versions if needed.
Jeff
---
FE Log:
2010-11-27 22:05:24.318
RingBuf(myth://192.168.1.254:6543/1000_20101127154921.mpg): Initial
readblocksize 128K & fill_min 32K
2010-11-27 22:05:24.584
RingBuf(myth://192.168.1.254:6543/1000_20101127154921.mpg):
Seek(468163656,SEEK_SET,unlocked)
2010-11-27 22:05:24.646
RingBuf(myth://192.168.1.254:6543/1000_20101127154921.mpg): Seek(): rbrpos:
196608 rbwpos: 655360
readpos: 196608 internalreadpos: 655360
2010-11-27 22:05:24.646
RingBuf(myth://192.168.1.254:6543/1000_20101127154921.mpg): Seek(): offset from
end: 250000
-- ignoring read ahead thread until next seek.
ASSERT failure in QReadWriteLock::unlock(): "Cannot unlock an unlocked lock",
file thread\qreadwritelock.cpp, line 405
BT:
#0 qt_assert_x (where=0x6a2d7bbb "QReadWriteLock::unlock()",
what=0x6a2d7b9c "Cannot unlock an unlocked lock",
file=0x6a2d7ae3 "thread\\qreadwritelock.cpp", line=405)
at global\qglobal.cpp:2019
No locals.
#1 0x6a111fbe in QReadWriteLock::unlock (this=0x257a3020)
at thread\qreadwritelock.cpp:405
lock = {val = 629648585}
unlocked = 27
#2 0x148c63df in _fu1800__verbose_mutex () at RingBuffer.cpp:1989
ret = 2704320080547676160
off_end = 2704320080547676160
ret = 468163656
new_pos = 468163656
#3 0x148d9efe in AVF_Seek (h=0x262c6320, offset=468163656, whence=629648585)
at avfringbuffer.cpp:45
avfr = <value optimized out>
#4 0x18664c35 in url_fseek (s=0x262bcae0, offset=468163656,
whence=<value optimized out>) at libavformat/aviobuf.c:183
res = 2704320080547676160
offset1 = <value optimized out>
pos = 163841
#5 0x186cf3be in av_estimate_timings_from_pts (ic=0x262bcc30,
old_offset=<value optimized out>) at libavformat/utils.c:1967
#6 0x186cf84a in av_estimate_timings (ic=0x262bcc30, old_offset=0)
at libavformat/utils.c:2041
file_size = <value optimized out>
#7 0x14c28717 in _fu3950__verbose_mutex () at avformatdecoder.cpp:925
More information about the mythtv-dev
mailing list