Opened 7 years ago

Closed 7 years ago

#10293 closed Bug Report - Crash (Works for me)

Creating thumbnails in Image Gallery for a file with no extension causes segfault

Reported by: wsf@… Owned by: beirdo
Priority: minor Milestone: unknown
Component: Plugin - MythGallery Version: 0.23-fixes
Severity: high Keywords:
Cc: Ticket locked: no

Description (last modified by beirdo)

$ mythfrontend --version

Please include all output in bug reports.
MythTV Version   : 24158
MythTV Branch    : branches/release-0-23-fixes
Network Protocol : 56
Library API      : 0.23.20100314-1
QT Version       : 4.6.2
Options compiled in:
 linux debug using_oss using_alsa using_pulse using_jack using_pulseoutput using_backend using_dvb using_firewire using_frontend using_glx_proc_addr_arb using_hdhomerun using_hdpvr using_iptv using_ivtv using_joystick_menu using_libudev 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

Navigating to Image Gallery I get a segfault. Stacktrace:

[New Thread 0x9e1d1b70 (LWP 13803)]
[New Thread 0x9c7ffb70 (LWP 13804)]
[Thread 0xa9c86b70 (LWP 13786) exited]
sh: mplayer: not found
QPixmap: It is not safe to use pixmaps outside the GUI thread
QPixmap: It is not safe to use pixmaps outside the GUI thread

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x9eaffb70 (LWP 13799)]
0xb43790ad in QX11PixmapData::x11ConvertToDefaultDepth() () from /usr/lib/
(gdb) where
#0  0xb43790ad in QX11PixmapData::x11ConvertToDefaultDepth() () from /usr/lib/
#1  0xb431eed5 in QWidgetPrivate::updateSystemBackground() () from /usr/lib/
#2  0xb42cb5de in QWidget::setAttribute(Qt::WidgetAttribute, bool) ()
   from /usr/lib/
#3  0xb42ceb5f in QWidgetPrivate::setUpdatesEnabled_helper(bool) () from /usr/lib/
#4  0xb42cecb2 in QWidget::setUpdatesEnabled(bool) () from /usr/lib/
#5  0xb683d89a in MythMainWindow::SetDrawEnabled(bool) () from /usr/lib/
#6  0xb68d6509 in myth_system(QString const&, int) () from /usr/lib/
#7  0xa5f2bb3a in ThumbGenerator::loadFile(QImage&, QFileInfo const&) ()
   from /usr/lib/mythtv/plugins/
#8  0xa5f2b30a in ThumbGenerator::loadDir(QImage&, QFileInfo const&) ()
   from /usr/lib/mythtv/plugins/
#9  0xa5f2a59c in ThumbGenerator::run() () from /usr/lib/mythtv/plugins/
#10 0xb3dfa32e in ?? () from /usr/lib/
#11 0xb5e6696e in start_thread (arg=0x9eaffb70) at pthread_create.c:300
#12 0xb3bcba4e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Installing mplayer made no difference. However, when mplayer was installed it printed the name of a file it was playing. This file is a jpeg file but had no file extension. When I renamed the file and added in the .jpg extension, the segfault went away. Note that the file must be in a subdirectory, eg in the settings:

MythGallery Settings (General)

Directory that holds image: /data/pictures

I have just one jpeg file in a subdirectory, called /data/pictures/crashy/wsf

which causes the seg fault. The segfault occurred with different jpeg files for me.

Change History (3)

comment:1 Changed 7 years ago by beirdo

Description: modified (diff)

comment:2 Changed 7 years ago by beirdo

1) You are using a version of mythtv that is very old. There is a good chance that 0.24.2 has that fixed, and also that 0.25pre has it fixed. As we are about to enter the release cycle for 0.25, I don't think much interest will be found to support 0.23

2) The backtrace is not terribly useful. I would need a backtrace from either a debug or a profile build to get much further into this.

So, if upgrading is a possibility, please do upgrade to the latest 0.24-fixes if you could.

I'll try recreating the issue with current code, but I'm not sure I'll be able to.

comment:3 Changed 7 years ago by beirdo

Resolution: Works for me
Status: newclosed

I can not get this to crash with current code.

Note: See TracTickets for help on using tickets.