[mythtv-commits] Ticket #13460: Instability due to QTimer start / stop from non-parent thread

MythTV noreply at mythtv.org
Mon Jun 3 08:56:03 UTC 2019


#13460: Instability due to QTimer start / stop from non-parent thread
--------------------------------------+--------------------------
     Reporter:  madscientist159       |      Owner:  (none)
         Type:  Bug Report - General  |     Status:  new
     Priority:  minor                 |  Milestone:  needs_triage
    Component:  MythTV - General      |    Version:  Unspecified
     Severity:  medium                |   Keywords:
Ticket locked:  0                     |
--------------------------------------+--------------------------
 In a test setup used to verify ATSC tuner functionality on ppc64el, I note
 that the backend is extremely unstable.  When the slave nodes connect,
 QTimer start / stop messages are dumped, and there is a random chance of
 the master backend hanging.

 Setting QT_FATAL_WARNINGS=1 and running under gdb yields this:

 {{{
 2019-06-03 03:43:18.855982 I  MainServer: adding: master-
 backend(100488f60) as a client (events: 1)
 |
 QObject::startTimer: Timers cannot be started from another thread
 |
 QObject::startTimer: Timers cannot be started from another thread
 |
 QObject::killTimer: Timers cannot be stopped from another thread
 |
 QObject::startTimer: Timers cannot be started from another thread
 |
 QObject::killTimer: Timers cannot be stopped from another thread
 |
 QObject::startTimer: Timers cannot be started from another thread
 |
 QObject::killTimer: Timers cannot be stopped from another thread
 |
 QObject::startTimer: Timers cannot be started from another thread
 |
 |
 Thread 21 "PT1" received signal SIGABRT, Aborted.
 |
 [Switching to Thread 0x7fff8fffef50 (LWP 15317)]
 |
 0x00007ffff4a54228 in __libc_signal_restore_set (set=0x7fff8fffd0e8) at
 ../sysdeps/unix/sysv/linux/internal-signals.h:84
 |
 84      ../sysdeps/unix/sysv/linux/internal-signals.h: No such file or
 directory.
 |
 (gdb) bt
 |
 #0  0x00007ffff4a54228 in __libc_signal_restore_set (set=0x7fff8fffd0e8)
 at ../sysdeps/unix/sysv/linux/internal-signals.h:84
 |
 #1  __GI_raise (sig=<optimized out>) at
 ../sysdeps/unix/sysv/linux/raise.c:48
 |
 #2  0x00007ffff4a3458c in __GI_abort () at abort.c:79
 |
 #3  0x00007ffff50d6cc0 in QMessageLogger::warning(char const*, ...) const
 () from /usr/lib/powerpc64le-linux-gnu/libQt5Core.so.5
 |
 #4  0x00007ffff53b26e8 in QObject::startTimer(int, Qt::TimerType) () from
 /usr/lib/powerpc64le-linux-gnu/libQt5Core.so.5
 |
 #5  0x00007ffff53c3530 in QTimer::start() () from /usr/lib/powerpc64le-
 linux-gnu/libQt5Core.so.5
 |
 #6  0x00007ffff53c357c in QTimer::start(int) () from /usr/lib/powerpc64le-
 linux-gnu/libQt5Core.so.5
 |
 #7  0x0000000100094df4 in MainServer::HandleAnnounce (this=0x10033da10,
 slist=..., commands=..., socket=0x100482060) at mainserver.cpp:1856
 |
 #8  0x000000010008657c in MainServer::ProcessRequestWork
 (this=0x10033da10, sock=0x100482060) at mainserver.cpp:512
 |
 #9  0x0000000100085bb0 in MainServer::ProcessRequest (this=0x10033da10,
 sock=0x100482060) at mainserver.cpp:458
 |
 #10 0x00000001000e4dcc in ProcessRequestRunnable::run
 (this=0x7fff8400bbd0) at mainserver.cpp:159
 |
 #11 0x00007ffff6c679bc in MPoolThread::run (this=0x7fff94017e00) at
 mthreadpool.cpp:140
 |
 #12 0x00007ffff6c6248c in MThreadInternal::run (this=0x10048ee80) at
 mthread.cpp:79
 |
 #13 0x00007ffff511938c in ?? () from /usr/lib/powerpc64le-linux-
 gnu/libQt5Core.so.5
 |
 #14 0x00007ffff4fe8b90 in start_thread (arg=0x7fff8f7f0000) at
 pthread_create.c:486
 |
 #15 0x00007ffff4b41018 in clone () at
 ../sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S:82
 |
 (gdb)
 }}}

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


More information about the mythtv-commits mailing list