Opened 10 years ago

Closed 10 years ago

#8391 closed defect (fixed)

SIGSEGV when unpausing playback

Reported by: Ben Hardill <b.hardill@…> Owned by: cpinkham
Priority: minor Milestone: unknown
Component: MythTV - Video Playback Version: 0.23rc2
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Recreate instructions:

Start LiveTV, pause and then try and unpause.

Environment:

Acer Revo 3610 running Fedora 12 + atrpms build of MythTV. Fully up to date Fedora 12.

Same code runs fine on Fedora 11.

Version:

mythfrontend --version Please include all output in bug reports. MythTV Version : 24265 MythTV Branch : branches/release-0-23-fixes/mythtv/ Network Protocol : 56 Library API : 0.23.20100314-1 QT Version : 4.6.2 Options compiled in:

linux release using_oss using_alsa using_pulse using_jack using_pulseoutput using_backend using_dvb using_firewire using_frontend using_hdhomerun using_hdpvr using_iptv using_ivtv using_joystick_menu using_libfftw3 using_lirc using_mheg using_opengl_video using_opengl_vsync using_qtdbus using_qtwebkit using_v4l using_x11 using_xrandr using_xv using_xvmc using_xvmc_vld using_xvmcw using_bindings_perl using_bindings_python using_opengl using_vdpau using_ffmpeg_threads using_libavc_5_3 using_live using_mheg

Stack trace:

(gdb) where #0 0x056a780e in QX11PixmapData::x11ConvertToDefaultDepth() ()

from /usr/lib/libQtGui.so.4

#1 0x05655187 in QWidgetPrivate::updateSystemBackground() ()

from /usr/lib/libQtGui.so.4

#2 0x0560694e in QWidget::setAttribute(Qt::WidgetAttribute?, bool) ()

from /usr/lib/libQtGui.so.4

#3 0x05609ec6 in QWidgetPrivate::setUpdatesEnabled_helper(bool) ()

from /usr/lib/libQtGui.so.4

#4 0x0560a023 in QWidget::setUpdatesEnabled(bool) ()

from /usr/lib/libQtGui.so.4

#5 0x077ec697 in MythMainWindow::SetDrawEnabled?(bool) ()

from /usr/lib/libmythui-0.23.so.0

#6 0x07891b15 in myth_system(QString const&, int) ()

from /usr/lib/libmythui-0.23.so.0

#7 0x41a3e5c3 in SystemEventThread::run() () from /usr/lib/libmythtv-0.23.so.0 #8 0x05263714 in ?? () from /usr/lib/libQtCore.so.4 #9 0x0526ccdf in ?? () from /usr/lib/libQtCore.so.4 #10 0x00403ab5 in start_thread () from /lib/libpthread.so.0 #11 0x005c1dae in clone () from /lib/libc.so.6

Attachments (1)

gdb.txt (23.0 KB) - added by Ben Hardill <b.hardill@…> 10 years ago.
gdbcommands output

Download all attachments as: .zip

Change History (5)

Changed 10 years ago by Ben Hardill <b.hardill@…>

Attachment: gdb.txt added

gdbcommands output

comment:1 Changed 10 years ago by robertm

Ref #8194, same segfault, different location. Fix may/should solve both.

comment:2 Changed 10 years ago by cpinkham

Owner: changed from Janne Grunau to cpinkham
Status: newassigned

comment:3 Changed 10 years ago by cpinkham

(In [24310]) Add a helper method so that we can check whether we are in the UI thread or not. We don't want to block LIRC, the joystick, or drawing when called outside the UI thread so use this helper to check to see if we are in the UIthread. Disabling drawing from the UI thread can also cause segfaults as indicated in #8194 and #8391.

References #8194 and #8391.

This fix is only temporary in trunk. I have a different version in a local checkout that will be committed later as part of a patch to move parts of MythContext to libmythdb where they can be utilized by myth_system() and the rest of libmythui.

This does update the API version, so make clean, etc..

comment:4 Changed 10 years ago by cpinkham

Resolution: fixed
Status: assignedclosed

(In [24311]) Carry over [24310] from trunk.

Add a helper method so that we can check whether we are in the UI thread or not. We don't want to block LIRC, the joystick, or drawing when called outside the UI thread so use this helper to check to see if we are in the UIthread.

Fixes #8194 and #8391.

Note: See TracTickets for help on using tickets.