[mythtv-commits] Ticket #10981: Commit 643ad3e [Fix race in LoadInBackground() handling] causes abort on entering Watch Recordings

MythTV noreply at mythtv.org
Tue Aug 7 10:11:19 UTC 2012


#10981: Commit 643ad3e [Fix race in LoadInBackground() handling] causes abort on
entering Watch Recordings
-----------------------------------+--------------------------------------
 Reporter:  Lawrence Rust <lvr@…>  |           Type:  Bug Report - General
   Status:  new                    |       Priority:  minor
Milestone:  unknown                |      Component:  MythTV - General
  Version:  Master Head            |       Severity:  medium
 Keywords:                         |  Ticket locked:  0
-----------------------------------+--------------------------------------
 Using a debug build of Qt, entering the watch recordings menu,
 mythfrontend aborts with this log:
 {{{
 2012-08-07 11:40:41.754876 C  Received Aborted
 QMutex::lock: Deadlock detected in thread 2985436960
 Aborted (core dumped)
 }}}

 Backtrace:
 {{{
 Program terminated with signal 6, Aborted.
 #0  0xb76e9424 in __kernel_vsyscall ()
 (gdb) bt
 #0  0xb76e9424 in __kernel_vsyscall ()
 #1  0xb249ae71 in raise (sig=6) at
 ../nptl/sysdeps/unix/sysv/linux/raise.c:64
 #2  0xb249e34e in abort () at abort.c:92
 #3  0xb277a30f in qt_message_output (msgType=QtFatalMsg,
     buf=0xa561088 "ASSERT failure in QMutex::unlock(): \"A mutex must be
 unlocked in the same thread that locked it.\", file thread/qmutex.cpp,
 line 370")
     at global/qglobal.cpp:2259
 #4  0xb277a48e in qt_message (msgType=QtFatalMsg,
     msg=0xb28e6940 "ASSERT failure in %s: \"%s\", file %s, line %d",
     ap=0xa2ca9234 "\261|\216\262 }\216\262d|\216\262r\001")
     at global/qglobal.cpp:2305
 #5  0xb277a549 in qFatal (
     msg=0xb28e6940 "ASSERT failure in %s: \"%s\", file %s, line %d")
     at global/qglobal.cpp:2488
 #6  0xb277a587 in qt_assert_x (where=0xb28e7cb1 "QMutex::unlock()",
     what=0xb28e7d20 "A mutex must be unlocked in the same thread that
 locked it.", file=0xb28e7c64 "thread/qmutex.cpp", line=370) at
 global/qglobal.cpp:2012
 #7  0xb277e2df in QMutex::unlock (this=0xa5fb7f8) at thread/qmutex.cpp:369
 #8  0xb5b8a11f in ScreenLoadTask::run (this=0xa2e0de0) at
 mythscreentype.cpp:33
 #9  0xb5d28a06 in MPoolThread::run (this=0xa600910) at mthreadpool.cpp:87
 #10 0xb5d25f74 in MThreadInternal::run (this=0xa1afd00) at mthread.cpp:79
 #11 0xb27832e0 in QThreadPrivate::start (arg=0xa1afd00)
     at thread/qthread_unix.cpp:266
 #12 0xb2705e99 in start_thread (arg=0xa2ca9b70) at pthread_create.c:304
 #13 0xb25419ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
 }}}

 Appears that the new mutex is being unlocked by a thread other than the
 one that locked it.

-- 
Ticket URL: <http://code.mythtv.org/trac/ticket/10981>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center


More information about the mythtv-commits mailing list