Opened 12 years ago

Closed 11 years ago

#5108 closed defect (duplicate)

ASSERT failure in QWidget: "Widgets must be created in the GUI thread.", file kernel/qwidget.cpp, line 951

Reported by: michael bishop <clever@…> Owned by: Isaac Richards
Priority: minor Milestone: unknown
Component: mythtv Version: head
Severity: low Keywords: assert
Cc: Ticket locked: no

Description

not shure how i caused this one but it happened when i was pausing playback of a recording
i'll post more info if i catch it again

2008-04-02 12:38:35.619 write -> 35 '49      QUERY_FILETRANSFER 70[]:[]REQUEST_BLOCK[]:[]98304'
2008-04-02 12:38:35.633 AFD: video timecode 40543505 40543505 450483 450450
2008-04-02 12:38:35.634 AFD: audio timecode 40551595 40551595 450573 450597
2008-04-02 12:38:35.631 NVP: A/V Divergence: 1.08134, Rate: -0.000809207, Warpfactor: 1.01559, warpfactor_avg: 1.00689
2008-04-02 12:38:35.639 MythSocket(9f3fc50:37:192.168.1.60): readStringList: Error, timeout (quick).
2008-04-02 12:38:35.639 MythSocket(9f3fc50:37:192.168.1.60): state change Connected -> Idle
2008-04-02 12:38:35.639 RemoteEncoder::SendReceiveStringList(): No response.
2008-04-02 12:38:35.639 decodeLongLong() called with offset >= list size.
2008-04-02 12:38:35.639 MythSocket(9f3fc50:-1:): writeStringList: Error, called with unconnected socket.
2008-04-02 12:38:35.640 MythSocket(9f3fc50:-1:): readStringList: Error, called with unconnected socket.
2008-04-02 12:38:35.640 RemoteEncoder::SendReceiveStringList(): No response.
2008-04-02 12:38:35.640 decodeLongLong() called with offset >= list size.
2008-04-02 12:38:35.640 TV: Attempting to change from WatchingRecording to None
2008-04-02 12:38:35.640 TV: StopStuff() -- begin
2008-04-02 12:38:35.640 TV: StopStuff(): stopping ring buffer[s]
2008-04-02 12:38:35.647 NVP, Error: Unknown error, exiting decoder
2008-04-02 12:38:35.647 NVP: Exited decoder loop.
2008-04-02 12:38:35.660 VideoOutputXv: dtor
2008-04-02 12:38:35.660 VideoOutputXv: DiscardFrames(1)
2008-04-02 12:38:35.660 VideoBuffers::DiscardFrames(1): UUUUUUUUUUUUUUUUUUUUuAuUULUUUUU
2008-04-02 12:38:35.661 VideoBuffers::DiscardFrames(): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -- done()
2008-04-02 12:38:35.661 VideoBuffers::DiscardFrames(1): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -- done
2008-04-02 12:38:35.661 VideoOutputXv: DiscardFrames() 3: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -- done()
2008-04-02 12:38:35.662 VideoOutputXv: Closing XVideo port 73
2008-04-02 12:38:35.663 read  <- 35 5       98304
2008-04-02 12:38:35.663 Read(): reqd=98304, rcvd=98304, rept=98304, error=0
2008-04-02 12:38:35.664 TV: StopStuff(): stopping player[s] (1/2)
2008-04-02 12:38:35.664 TV: StopStuff(): stopping player[s] (2/2)
[Thread -1377260656 (LWP 9540) exited]
[Thread -1345991792 (LWP 9539) exited]
ASSERT failure in QWidget: "Widgets must be created in the GUI thread.", file kernel/qwidget.cpp, line 951

Program received signal SIGABRT, Aborted.
[Switching to Thread -1333793904 (LWP 9537)]
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb55bd875 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb55bf201 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb583b01d in qt_message_output () from /usr/lib/libQtCore.so.4
#4  0xb583b0a1 in qFatal () from /usr/lib/libQtCore.so.4
#5  0xb583b0f8 in qt_assert_x () from /usr/lib/libQtCore.so.4
#6  0xb5b9b494 in QWidgetPrivate::init () from /usr/lib/libQtGui.so.4
#7  0xb5b9b99b in QWidget::QWidget () from /usr/lib/libQtGui.so.4
#8  0xb5ee0dea in QFrame::QFrame () from /usr/lib/libQtGui.so.4
#9  0xb6b7416d in MythDialog (this=0xa985ed8, parent=0x8390a60, name=0x0, setsize=true) at mythdialogs.cpp:59
#10 0xb6af5394 in DialogBox (this=0xa985ed8, parent=0x8390a60, text=@0xb07fe374, checkboxtext=0x0, name=0x0) at dialogbox.cpp:15
#11 0xb79f30e6 in NuppelVideoPlayer::StartPlaying (this=0x9f03ca8) at NuppelVideoPlayer.cpp:3686
#12 0xb79a8827 in SpawnDecode (param=0x9f03ca8) at tv_play.cpp:521
#13 0xb656946b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#14 0xb56666de in clone () from /lib/tls/i686/cmov/libc.so.6
mythbackend --version
Please include all output in bug reports.
MythTV Version   : 16870M
MythTV Branch    : trunk
Library API      : 0.22.20080320-2
Network Protocol : 40
Options compiled in:
 linux debug using_oss using_alsa using_backend using_dbox2 using_dvb using_frontend using_hdhomerun using_iptv using_ivtv using_joystick_menu using_v4l using_x11 using_xrandr using_xv using_bindings_perl using_bindings_python using_opengl using_ffmpeg_threads using_live

Change History (5)

comment:1 Changed 12 years ago by anonymous

I can also produce this error using 'mythtv-setup' and selecting a full scan of exisiting transports.

2008-04-09 18:23:12.342 SetPage(Scan Configuration)
2008-04-09 18:23:12.348 SetPage(Scan Configuration)
2008-04-09 18:23:26.544 SetPage(Scanning)
2008-04-09 18:23:26.545 SWiz: SetPage(): type(8) cardid(1) inputname(DVBInput)
2008-04-09 18:23:26.547 MSqlQuery: SELECT channum FROM channel WHERE sourceid = ?
2008-04-09 18:23:26.551 MSqlQuery: SELECT signal_timeout, channel_timeout FROM capturecard WHERE cardid = ?
2008-04-09 18:23:26.552 MSqlQuery: SELECT videodevice FROM capturecard WHERE capturecard.cardid = ?
2008-04-09 18:23:26.553 MSqlQuery: SELECT cardtype FROM capturecard WHERE capturecard.cardid = ?
2008-04-09 18:23:26.557 DVBChan(1:0): Opening DVB channel
2008-04-09 18:23:26.557 DVBChan(1:0): Using DVB card 0, with frontend 'ST STV0299 DVB-S'.
2008-04-09 18:23:26.558 MSqlQuery: SELECT diseqcid FROM capturecard WHERE cardid = ?
2008-04-09 18:23:26.559 MSqlQuery: SELECT type, description FROM diseqc_tree WHERE diseqcid = ?
2008-04-09 18:23:26.560 MSqlQuery: SELECT subtype,         lnb_lof_switch,        lnb_lof_hi,      lnb_lof_lo,        lnb_pol_inv,     cmd_repeat FROM diseqc_tree WHERE diseqcid = ?
2008-04-09 18:23:26.560 DiSEqCDevTree: Changing LNB voltage to 18V
2008-04-09 18:23:27.060 DiSEqCDevTree: Resetting DiSEqC Bus
2008-04-09 18:23:27.060 DiSEqCDevTree: Sending DiSEqC Command: e0  0  0 
2008-04-09 18:23:27.223 MSqlQuery: SELECT cardinputid,        inputname,   startchan,        tunechan,    externalcommand,        sourceid FROM cardinput WHERE cardid = ?
2008-04-09 18:23:27.224 MSqlQuery: SELECT data FROM settings WHERE value = ? AND hostname = ? ;
2008-04-09 18:23:27.225 MSqlQuery: SELECT chanid, favid FROM favorites
2008-04-09 18:23:27.228 MSqlQuery: SELECT channum, callsign, chanid,        atsc_major_chan, atsc_minor_chan,        name, icon, mplexid, visible FROM channel WHERE sourceid='2' 
2008-04-09 18:23:27.349 ChannelBase(1): Input #1: 'DVBInput' schan(1010) sourceid(2) ccid(1)
2008-04-09 18:23:27.349 ChannelBase(1): Current Input #1: 'DVBInput'
2008-04-09 18:23:27.350 DVBSM(0): Can measure Signal Strength
2008-04-09 18:23:27.350 DVBSM(0): Can measure S/N
2008-04-09 18:23:27.350 DVBSM(0): Can measure Bit Error Rate
2008-04-09 18:23:27.351 DVBSM(0): Can count Uncorrected Blocks
2008-04-09 18:23:27.351 SM(0)::RemoveFlags: Seen() Match() Wait()
2008-04-09 18:23:27.351 DVBSM(0): DVBSignalMonitor::ctor initial flags Seen() Match() Wait(Sig,SNR,BER,UB,)
2008-04-09 18:23:27.651 SIScan(0): Connecting up DTVSignalMonitor
2008-04-09 18:23:27.651 SM(0)::AddFlags: Seen() Match() Wait(MGT,VCT,NIT,SDT,)
2008-04-09 18:23:27.652 MSqlQuery: SELECT freetoaironly FROM cardinput WHERE cardid    = ? AND       inputname = ?
2008-04-09 18:23:27.653 MSqlQuery: SELECT radioservices FROM cardinput WHERE cardid    = ? AND       inputname = ?
2008-04-09 18:23:27.653 SWizScan: HandleTuneComplete()
2008-04-09 18:23:27.654 SWizScan: ScanServicesSourceID(2)
ASSERT failure in QWidget: "Widgets must be created in the GUI thread.", file kernel/qwidget.cpp, line 951
Aborted

comment:2 Changed 12 years ago by anonymous

--diable-mythphone fixed it for me (also delete libmythphone.so)

comment:3 Changed 12 years ago by anonymous

Sadly this one isn't coming from mythphone like in #5068 - I don't use mythphone myself (hence there's no libmythphone.so) - though hopefully the solution will be similar.

comment:4 Changed 12 years ago by andrei@…

See tickets #4376 and #4320 - they are directly related to the same issue and could provide ideas for workarounds. QT3 did not have ASSERTs for widgets created on non-UI threads, and Win32 version used to deadlock on this.

comment:5 Changed 11 years ago by danielk

Resolution: duplicate
Status: newclosed

Dup #5242.

Note: See TracTickets for help on using tickets.