Bug 621913
Summary: | Clementine hangs on exit | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Tom London <selinux> |
Component: | clementine | Assignee: | Orcan Ogetbil <oget.fedora> |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | low | ||
Version: | rawhide | CC: | oget.fedora |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | clementine-0.4.2-9.fc13 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2010-08-27 03:05:15 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Attachments: |
Thanks for the report. Could you install clementine-debuginfo-0.4.2-7.fc15.x86_64 from the same page where you downloaded the test build, and then reproduce the crash? The backtrace is missing those symbols. Uhh... I belive I had already installed it. Let me recreate and repost. Created attachment 437189 [details]
rerun of gdb output showing output of 'thread apply all bt full'
OK. Recreated:
[root@tlondon Download]# rpm -qa clementine\*
clementine-0.4.2-7.fc15.x86_64
clementine-debuginfo-0.4.2-7.fc15.x86_64
[root@tlondon Download]#
This time, I started it with gdb, waited for the playlist window to display, and selected Music->quit.
It just hung. I had to interrupt it with a ctrl-c:
Program received signal SIGINT, Interrupt.
__lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
136 2: movl %edx, %eax
(gdb) set pagination off
(gdb) bt full
#0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
No locals.
#1 0x0000003626e094a4 in _L_lock_996 () from /lib64/libpthread.so.0
No symbol table info available.
#2 0x0000003626e092ba in __pthread_mutex_lock (mutex=0x3c5886d290) at pthread_mutex_lock.c:61
__PRETTY_FUNCTION__ = "__pthread_mutex_lock"
type = <value optimized out>
id = 10546
#3 0x0000003c5862685e in __glXInitialize (dpy=0xa9b2d0) at glxext.c:828
info = 0xec7010
privList = <value optimized out>
private = <value optimized out>
found = <value optimized out>
dpyPriv = <value optimized out>
dataObj = <value optimized out>
major = <value optimized out>
glx_direct = <value optimized out>
glx_accel = <value optimized out>
#4 0x0000003c586440ed in dri2DestroyDrawable (pdraw=0x125d920) at dri2_glx.c:177
core = 0x7fffeaa275d0
dpyPriv = <value optimized out>
pdp = <value optimized out>
#5 0x0000003c586251ad in GarbageCollectDRIDrawables (dpy=0xa9b2d0, gc=0xe4a800) at glxcmds.c:108
draw = 75497527
pdraw = 0x125d920
xwa = {x = 0, y = 0, width = 0, height = 0, border_width = 0, depth = 0, visual = 0x3626d8e180, root = 8, class = 5, bit_gravity = 0, win_gravity = 15098392, backing_store = 0, backing_planes = 0, backing_pixel = 15826064, save_under = 761734609, colormap = 0, map_installed = 5, map_state = 0, all_event_masks = 15826064, your_event_mask = 0, do_not_propagate_mask = 222145916264, override_redirect = 761727688, screen = 0x8}
oldXErrorHandler = 0x33bc01d420 <qt_x_errhandler(Display*, XErrorEvent*)>
#6 DestroyContext (dpy=0xa9b2d0, gc=0xe4a800) at glxcmds.c:586
req = <value optimized out>
xid = 75497529
opcode = 153 '\231'
imported = 0 '\000'
#7 0x00000033b8c8a656 in QGLContext::reset (this=0xec6a90) at qgl_x11.cpp:903
d = 0xec6ab0
#8 0x00000033b8c2ebff in QGLContext::~QGLContext (this=0xec6a90, __in_chrg=<value optimized out>) at qgl.cpp:2034
No locals.
#9 0x00000033b8c2ec59 in QGLContext::~QGLContext (this=0xec6a90, __in_chrg=<value optimized out>) at qgl.cpp:2035
No locals.
#10 0x00000033b8c27e9f in QGLWidget::~QGLWidget (this=0xf1aa90, __in_chrg=<value optimized out>) at qgl.cpp:3676
d = 0xec6820
#11 0x00000033b8c27ef9 in QGLWidget::~QGLWidget (this=0xf1aa90, __in_chrg=<value optimized out>) at qgl.cpp:3697
No locals.
#12 0x000000362d76d7b4 in QObjectPrivate::deleteChildren (this=0xe66200) at kernel/qobject.cpp:1949
i = <value optimized out>
reallyWasDeleted = false
#13 0x00000033bc0084f0 in QWidget::~QWidget (this=0xe64830, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1559
d = 0xe66200
#14 0x00000033bc5c85f5 in QGraphicsView::~QGraphicsView (this=0xe64830, __in_chrg=<value optimized out>) at graphicsview/qgraphicsview.cpp:1159
No locals.
#15 0x00000000005c10fe in VisualisationContainer::~VisualisationContainer() ()
No symbol table info available.
#16 0x00000000005c115a in VisualisationContainer::~VisualisationContainer() ()
No symbol table info available.
#17 0x000000000057cee4 in void boost::checked_delete<VisualisationContainer>(VisualisationContainer*) ()
No symbol table info available.
#18 0x000000000057c39f in boost::scoped_ptr<VisualisationContainer>::~scoped_ptr() ()
No symbol table info available.
#19 0x000000000056e428 in MainWindow::~MainWindow() ()
No symbol table info available.
#20 0x000000000050abfe in main ()
No symbol table info available.
(gdb)
I attach "full output of 'thread apply all bt full"
Hmm, see that is weird. See the "No symbol table info available." entries in the backtrace at and after #15? Those should be provided by the clementine-debuginfo package. I'll try to reproduce what you are seeing. Not sure its useful, but I ran valgrind on clementine. I got this when I selected 'Music->quit': ==19121== ==19121== Invalid read of size 8 ==19121== at 0x3C5144DCCF: _XReply (xcb_io.c:582) ==19121== by 0x3C5142B09A: _XGetWindowAttributes (GetWAttrs.c:115) ==19121== by 0x3C5142B240: XGetWindowAttributes (GetWAttrs.c:150) ==19121== by 0x3C58625196: DestroyContext (glxcmds.c:104) ==19121== by 0x33B8C8A655: QGLContext::reset() (qgl_x11.cpp:903) ==19121== by 0x33B8C2EBFE: QGLContext::~QGLContext() (qgl.cpp:2034) ==19121== by 0x33B8C2EC58: QGLContext::~QGLContext() (qgl.cpp:2035) ==19121== by 0x33B8C27E9E: QGLWidget::~QGLWidget() (qgl.cpp:3676) ==19121== by 0x33B8C27EF8: QGLWidget::~QGLWidget() (qgl.cpp:3697) ==19121== by 0x362D76D7B3: QObjectPrivate::deleteChildren() (qobject.cpp:1949) ==19121== by 0x33BC0084EF: QWidget::~QWidget() (qwidget.cpp:1559) ==19121== by 0x33BC5C85F4: QGraphicsView::~QGraphicsView() (qgraphicsview.cpp:1159) ==19121== Address 0xf042008 is 8 bytes inside a block of size 24 free'd ==19121== at 0x4A04D72: free (vg_replace_malloc.c:325) ==19121== by 0x3C5144DC77: _XReply (xcb_io.c:562) ==19121== by 0x3C5142B09A: _XGetWindowAttributes (GetWAttrs.c:115) ==19121== by 0x3C5142B240: XGetWindowAttributes (GetWAttrs.c:150) ==19121== by 0x3C58625196: DestroyContext (glxcmds.c:104) ==19121== by 0x33B8C8A655: QGLContext::reset() (qgl_x11.cpp:903) ==19121== by 0x33B8C2EBFE: QGLContext::~QGLContext() (qgl.cpp:2034) ==19121== by 0x33B8C2EC58: QGLContext::~QGLContext() (qgl.cpp:2035) ==19121== by 0x33B8C27E9E: QGLWidget::~QGLWidget() (qgl.cpp:3676) ==19121== by 0x33B8C27EF8: QGLWidget::~QGLWidget() (qgl.cpp:3697) ==19121== by 0x362D76D7B3: QObjectPrivate::deleteChildren() (qobject.cpp:1949) ==19121== by 0x33BC0084EF: QWidget::~QWidget() (qwidget.cpp:1559) ==19121== After typing ctrl-c, valgrind says: ^C==19121== ==19121== HEAP SUMMARY: ==19121== in use at exit: 30,499,591 bytes in 231,563 blocks ==19121== total heap usage: 8,744,203 allocs, 8,512,640 frees, 728,966,714 bytes allocated ==19121== ==19121== LEAK SUMMARY: ==19121== definitely lost: 14,312 bytes in 107 blocks ==19121== indirectly lost: 49,342 bytes in 1,575 blocks ==19121== possibly lost: 27,496,673 bytes in 211,219 blocks ==19121== still reachable: 2,939,264 bytes in 18,662 blocks ==19121== suppressed: 0 bytes in 0 blocks ==19121== Rerun with --leak-check=full to see details of leaked memory ==19121== ==19121== For counts of detected and suppressed errors, rerun with: -v ==19121== Use --track-origins=yes to see where uninitialised values come from ==19121== ERROR SUMMARY: 9 errors from 4 contexts (suppressed: 21 from 9) Killed [tbl@tlondon ~]$ Sorry, this is my bad. The debugging symbols were not properly built into the binaries. Could you download this build and the debuginfo package and reproduce the crash http://koji.fedoraproject.org/koji/taskinfo?taskID=2386651 Thanks. Created attachment 437301 [details]
gdb output showing output of 'thread apply all bt full'
No problem.
[tbl@tlondon ~]$ rpm -qa clementine\*
clementine-debuginfo-0.4.2-7.1.fc14.x86_64
clementine-0.4.2-7.1.fc14.x86_64
[tbl@tlondon ~]$
Here is backtrace info (I started clementine, waited for the window to appear, selected "Music->quit", and waited until the window darkened. I then entered ctrl-c):
^C
Program received signal SIGINT, Interrupt.
__lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
136 2: movl %edx, %eax
(gdb) bt full
#0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
No locals.
#1 0x0000003626e094a4 in _L_lock_996 () from /lib64/libpthread.so.0
No symbol table info available.
#2 0x0000003626e092ba in __pthread_mutex_lock (mutex=0x3c5886d290) at pthread_mutex_lock.c:61
__PRETTY_FUNCTION__ = "__pthread_mutex_lock"
type = <value optimized out>
id = 2463
#3 0x0000003c5862685e in __glXInitialize (dpy=0x9e32d0) at glxext.c:828
info = 0xcf85c0
privList = <value optimized out>
private = <value optimized out>
found = <value optimized out>
dpyPriv = <value optimized out>
dataObj = <value optimized out>
major = <value optimized out>
glx_direct = <value optimized out>
glx_accel = <value optimized out>
#4 0x0000003c586440ed in dri2DestroyDrawable (pdraw=0x11a54a0) at dri2_glx.c:177
core = 0x7fffeaa275d0
dpyPriv = <value optimized out>
pdp = <value optimized out>
#5 0x0000003c586251ad in GarbageCollectDRIDrawables (dpy=0x9e32d0, gc=0xe0eb50) at glxcmds.c:108
draw = 83886135
pdraw = 0x11a54a0
xwa = {x = 0, y = 0, width = -9152, height = 32767, border_width = 0, depth = 0, visual = 0x3626d8e180, root = 8, class = 5, bit_gravity = 0, win_gravity = 14299160, backing_store = 0, backing_planes = 0, backing_pixel = 15070560, save_under = 761734609, colormap = 0, map_installed = 5, map_state = 0, all_event_masks = 15070560, your_event_mask = 0, do_not_propagate_mask = 222145916264, override_redirect = 761727688, screen = 0x8}
oldXErrorHandler = 0x33bc01d420 <qt_x_errhandler(Display*, XErrorEvent*)>
#6 DestroyContext (dpy=0x9e32d0, gc=0xe0eb50) at glxcmds.c:586
req = <value optimized out>
xid = 83886137
opcode = 153 '\231'
imported = 0 '\000'
#7 0x00000033b8c8a656 in QGLContext::reset (this=0xe62430) at qgl_x11.cpp:903
d = 0xe61c20
#8 0x00000033b8c2ebff in QGLContext::~QGLContext (this=0xe62430, __in_chrg=<value optimized out>) at qgl.cpp:2034
No locals.
#9 0x00000033b8c2ec59 in QGLContext::~QGLContext (this=0xe62430, __in_chrg=<value optimized out>) at qgl.cpp:2035
No locals.
#10 0x00000033b8c27e9f in QGLWidget::~QGLWidget (this=0xe62fd0, __in_chrg=<value optimized out>) at qgl.cpp:3676
d = 0xd8ed80
#11 0x00000033b8c27ef9 in QGLWidget::~QGLWidget (this=0xe62fd0, __in_chrg=<value optimized out>) at qgl.cpp:3697
No locals.
#12 0x000000362d76d7b4 in QObjectPrivate::deleteChildren (this=0xda3000) at kernel/qobject.cpp:1949
i = <value optimized out>
reallyWasDeleted = false
#13 0x00000033bc0084f0 in QWidget::~QWidget (this=0xd9bf00, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1559
d = 0xda3000
#14 0x00000033bc5c85f5 in QGraphicsView::~QGraphicsView (this=0xd9bf00, __in_chrg=<value optimized out>) at graphicsview/qgraphicsview.cpp:1159
No locals.
#15 0x0000000000534226 in ~VisualisationContainer (this=0xd9bf00, __in_chrg=<value optimized out>) at /usr/src/debug/clementine-0.4.2/src/visualisations/visualisationcontainer.h:34
No locals.
#16 VisualisationContainer::~VisualisationContainer (this=0xd9bf00, __in_chrg=<value optimized out>) at /usr/src/debug/clementine-0.4.2/src/visualisations/visualisationcontainer.h:34
No locals.
#17 0x00000000004e8a21 in checked_delete<VisualisationContainer> (this=0x7fffffffda60, __in_chrg=<value optimized out>) at /usr/include/boost/checked_delete.hpp:34
No locals.
#18 ~scoped_ptr (this=0x7fffffffda60, __in_chrg=<value optimized out>) at /usr/include/boost/smart_ptr/scoped_ptr.hpp:80
No locals.
#19 MainWindow::~MainWindow (this=0x7fffffffda60, __in_chrg=<value optimized out>) at /usr/src/debug/clementine-0.4.2/src/ui/mainwindow.cpp:519
No locals.
#20 0x0000000000488a5d in main (argc=1, argv=<value optimized out>) at /usr/src/debug/clementine-0.4.2/src/main.cpp:167
a = {<QApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x998ad0, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0x9a6750}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x362d8283a0 "QCoreApplication", data = 0x362d828440, extradata = 0x0}}, static self = 0x0}, static staticMetaObject = {d = {superdata = 0x362da8bbe0, stringdata = 0x33bc627760 "QApplication", data = 0x33bc6279a0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x33bca4ae80, stringdata = 0x33b98067c0 "QtSingleApplication", data = 0x33b98068a0, extradata = 0x0}}, peer = 0xb33240, actWin = 0x0}
mpris = {<QObject> = {_vptr.QObject = 0x5e0b30, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0xb409a0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x5e0ac0 "MPRIS", data = 0x5e0ae0, extradata = 0x0}}}
w = {<QMainWindow> = {<QWidget> = {<QObject> = {_vptr.QObject = 0x5db1d0, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0xb40ec0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, <QPaintDevice> = {_vptr.QPaintDevice = 0x5db3a8, painters = 0}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x33bc62b520 "QWidget", data = 0x33bc62bac0, extradata = 0x0}}, data = 0xb41010}, static staticMetaObject = {d = {superdata = 0x999a40, stringdata = 0x33bc682580 "QMainWindow", data = 0x33bc682720, extradata = 0x33bca4abe0}}}, <PlatformInterface> = {_vptr.PlatformInterface = 0x5db3e0}, static staticMetaObject = {d = {superdata = 0x998e40, stringdata = 0x5da8a0 "MainWindow", data = 0x5dadc0, extradata = 0x0}}, static kSettingsGroup = 0x5c6abf "MainWindow", static kMusicFilterSpec = 0x5c6a68 "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)", static kAllFilesFilterSpec = 0x5c7439 "All Files (*)", ui_ = 0xb41b90, tray_icon_ = 0xb41e90, osd_ = 0xb47c70, edit_tag_dialog_ = {px = 0xb5b030}, task_manager_ = 0xba3c80, about_dialog_ = {px = 0xba4db0}, database_ = 0xc903a0, radio_model_ = 0xcb2e60, playlist_backend_ = 0x7fffdc02e770, playlists_ = 0xd1f160, playlist_parser_ = 0xc8d3f0, player_ = 0x16fe0f0, library_ = 0x16faae0, global_shortcuts_ = 0xc90700, settings_dialog_ = {px = 0x172b830}, add_stream_dialog_ = {px = 0x9fd060}, cover_manager_ = {px = 0x16ed570}, equalizer_ = {px = 0xc9c8c0}, transcode_dialog_ = {px = 0xcab460}, error_dialog_ = {px = 0xcbba00}, visualisation_ = {px = 0xd9bf00}, playlist_menu_ = 0xdac0b0, playlist_play_pause_ = 0x19bed30, playlist_stop_after_ = 0x19bfe20, playlist_undoredo_ = 0x19c0a20, playlist_menu_index_ = {r = -1, c = -1, p = 0x0, m = 0x0}, library_sort_model_ = 0x16d8440, track_position_timer_ = 0x16d3070, settings_ = {<QObject> = {_vptr.QObject = 0x362da894f0, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0x0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x362d827500 "QSettings", data = 0x362d827520, extradata = 0x0}}}, was_maximized_ = false, autoclear_playlist_ = false}
handler = {<TagLib::ID3v1::StringHandler> = {_vptr.StringHandler = 0x5c1610}, <nsUniversalDetector> = {_vptr.nsUniversalDetector = 0x5c1648, mInputState = ePureAscii, mDone = false, mInTag = false, mStart = false, mGotData = true, mLastChar = 0 '\000', mDetectedCharset = 0x0, mBestGuess = -1, mLanguageFilter = 31, mCharSetProbers = {0x1c7e510, 0x1c7cfd0, 0x1c7d9a0}, mEscCharSetProber = 0x0}, current_codec_ = 0x0}
options = {static kHelpText = 0x5c0270 "%1: clementine [%2] [%3]\n\n%4:\n -p, --play", ' ' <repeats 16 times>, "%5\n -t, --play-pause %6\n -u, --pause", ' ' <repeats 15 times>, "%7\n -s, --stop", ' ' <repeats 16 times>, "%8\n -r, --previous", ' ' <repeats 12 times>, "%9\n -f, --next "..., argc_ = 1, argv_ = 0x7fffffffdf08, url_list_action_ = CommandlineOptions::UrlList_Append, player_action_ = CommandlineOptions::Player_None, set_volume_ = -1, volume_modifier_ = 0, seek_to_ = -1, seek_by_ = 0, play_track_at_ = -1, show_osd_ = false, engine_ = Engine::Type_GStreamer, urls_ = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x9999c0}, d = 0x9999c0}}}
network = {<QObject> = {_vptr.QObject = 0x5d5270, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0xb367f0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x5d5160 "NetworkAccessManager", data = 0x5d51e0, extradata = 0x0}}, network_ = 0xb33e70, cache_ = 0xb37150, pending_replies_ = {{d = 0x999680, e = 0x999680}}}
(gdb)
I attach output of "thread apply all bt full"
Thanks. Could you try a couple things for me: 1- Open the visualizations. Start a song. Close clementine. 2- Open visualizations. Start a song, Stop the visualizations. Close clementine. 3- Start a song. Open visualizations. Stop the song. Close clementine. 4- ... (I think you got the idea. Just try some combinations of opening/closing the visualizations, starting/stopping the song in different orders, and then closing clementine) Try to find a case where the crash does not occur. - Does the crash happen every time, or occasionally? - Do the visualizations work properly? Will do. BTW, I continue to get this valgrind error: ==11842== Invalid read of size 8 ==11842== at 0x3C5144DCCF: _XReply (xcb_io.c:582) ==11842== by 0x3C5142B09A: _XGetWindowAttributes (GetWAttrs.c:115) ==11842== by 0x3C5142B240: XGetWindowAttributes (GetWAttrs.c:150) ==11842== by 0x3C58625196: DestroyContext (glxcmds.c:104) ==11842== by 0x33B8C8A655: QGLContext::reset() (qgl_x11.cpp:903) ==11842== by 0x33B8C2EBFE: QGLContext::~QGLContext() (qgl.cpp:2034) ==11842== by 0x33B8C2EC58: QGLContext::~QGLContext() (qgl.cpp:2035) ==11842== by 0x33B8C27E9E: QGLWidget::~QGLWidget() (qgl.cpp:3676) ==11842== by 0x33B8C27EF8: QGLWidget::~QGLWidget() (qgl.cpp:3697) ==11842== by 0x362D76D7B3: QObjectPrivate::deleteChildren() (qobject.cpp:1949) ==11842== by 0x33BC0084EF: QWidget::~QWidget() (qwidget.cpp:1559) ==11842== by 0x33BC5C85F4: QGraphicsView::~QGraphicsView() (qgraphicsview.cpp:1159) ==11842== Address 0x6a12378 is 8 bytes inside a block of size 24 free'd ==11842== at 0x4A04D72: free (vg_replace_malloc.c:325) ==11842== by 0x3C5144DC77: _XReply (xcb_io.c:562) ==11842== by 0x3C5142B09A: _XGetWindowAttributes (GetWAttrs.c:115) ==11842== by 0x3C5142B240: XGetWindowAttributes (GetWAttrs.c:150) ==11842== by 0x3C58625196: DestroyContext (glxcmds.c:104) ==11842== by 0x33B8C8A655: QGLContext::reset() (qgl_x11.cpp:903) ==11842== by 0x33B8C2EBFE: QGLContext::~QGLContext() (qgl.cpp:2034) ==11842== by 0x33B8C2EC58: QGLContext::~QGLContext() (qgl.cpp:2035) ==11842== by 0x33B8C27E9E: QGLWidget::~QGLWidget() (qgl.cpp:3676) ==11842== by 0x33B8C27EF8: QGLWidget::~QGLWidget() (qgl.cpp:3697) ==11842== by 0x362D76D7B3: QObjectPrivate::deleteChildren() (qobject.cpp:1949) ==11842== by 0x33BC0084EF: QWidget::~QWidget() (qwidget.cpp:1559) ==11842== Looks like a case of "use after free"..... Starting and opening visualization: clementine freezes/hangs. Can't even start playing a song after that.... gdb says: #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136 No locals. #1 0x0000003626e094a4 in _L_lock_996 () from /lib64/libpthread.so.0 No symbol table info available. #2 0x0000003626e092ba in __pthread_mutex_lock (mutex=0x3c5886d290) at pthread_mutex_lock.c:61 __PRETTY_FUNCTION__ = "__pthread_mutex_lock" type = <value optimized out> id = 12205 #3 0x0000003c5862685e in __glXInitialize (dpy=0x9e32d0) at glxext.c:828 info = 0xe53b80 privList = <value optimized out> private = <value optimized out> found = <value optimized out> dpyPriv = <value optimized out> dataObj = <value optimized out> major = <value optimized out> glx_direct = <value optimized out> glx_accel = <value optimized out> #4 0x0000003c586440ed in dri2DestroyDrawable (pdraw=0x11a53c0) at dri2_glx.c:177 core = 0x7fffea7895d0 dpyPriv = <value optimized out> pdp = <value optimized out> #5 0x0000003c586251ad in GarbageCollectDRIDrawables (dpy=0x9e32d0, gc=0x1bb9170) at glxcmds.c:108 draw = 85983287 pdraw = 0x11a53c0 xwa = {x = 10367696, y = 0, width = 1483003538, height = 60, border_width = 1485220816, depth = 60, visual = 0x3c5864d55b, root = 0, class = 1483003132, bit_gravity = 60, win_gravity = 0, backing_store = 0, backing_planes = 259180879193, backing_pixel = 10114868, save_under = 651747712, colormap = 68, map_installed = 24182016, map_state = -1728053248, all_event_masks = 24182016, your_event_mask = 10114868, do_not_propagate_mask = 15028704, override_redirect = 648529058, screen = 0xe551e0} oldXErrorHandler = 0x33bc01d420 <qt_x_errhandler(Display*, XErrorEvent*)> #6 DestroyContext (dpy=0x9e32d0, gc=0x1bb9170) at glxcmds.c:586 req = <value optimized out> xid = 85992919 opcode = 153 '\231' imported = 0 '\000' #7 0x00000033b8c8b28c in QGLTemporaryContext::~QGLTemporaryContext (this=0x170fd00, __in_chrg=<value optimized out>) at qgl_x11.cpp:1278 No locals. #8 0x00000033b8c2ab0d in QGLFormat::openGLVersionFlags () at qgl.cpp:1404 cachedDefault = true currentCtx = 0x0 tmpContext = 0x170fd00 versionString = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x99967a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 25183}, alloc = 0, size = 0, data = 0x362da8dafa, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x27d62b0, static codecForCStrings = 0x0} defaultVersionFlags = {i = 127} versionFlags = {i = 127} #9 0x00000033b8c2b02f in preferredPaintEngine () at qgl.cpp:176 No locals. #10 qt_gl_preferGL2Engine () at qgl.cpp:195 No locals. #11 0x00000033b8c2b0ca in qt_qgl_paint_engine () at qgl.cpp:5051 No locals. #12 0x00000033bc1b777f in QWidgetPrivate::repaint_sys (this=0xe53340, rgn=...) at painting/qbackingstore.cpp:1583 q = 0xe551e0 engine = <value optimized out> noPartialUpdateSupport = <value optimized out> toBePainted = {d = 0x1, static shared_empty = {ref = {_q_value = 1780}, rgn = 0x0, xrectangles = 0x0, qt_rgn = 0x0}} #13 0x00000033bbff7e34 in QWidgetPrivate::syncBackingStore (this=0xe53340) at kernel/qwidget.cpp:1767 No locals. #14 0x00000033bc005242 in QWidget::event (this=0xe551e0, event=0x1656c10) at kernel/qwidget.cpp:8450 d = 0xe53340 #15 0x00000033b8c2d5c1 in QGLWidget::event (this=0xe551e0, e=0x1656c10) at qgl.cpp:4135 d = <value optimized out> #16 0x00000033bbfb32a4 in QApplicationPrivate::notify_helper (this=0x9a6750, receiver=0xe551e0, e=0x1656c10) at kernel/qapplication.cpp:4389 consumed = <value optimized out> #17 0x00000033bbfb7d1a in QApplication::notify (this=<value optimized out>, receiver=0xe551e0, e=0x1656c10) at kernel/qapplication.cpp:4270 d = 0x9a6750 res = false #18 0x000000362d75ad0c in QCoreApplication::notifyInternal (this=0x7fffffffdc70, receiver=0xe551e0, event=0x1656c10) at kernel/qcoreapplication.cpp:732 threadData = 0x9a5700 returnValue = <value optimized out> result = false cbdata = {0xe551e0, 0x1656c10, 0x7fffffffd72f} d = <value optimized out> #19 0x000000362d75e4b5 in sendEvent (receiver=0x0, event_type=0, data=0x9a5700) at kernel/qcoreapplication.h:215 No locals. #20 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x9a5700) at kernel/qcoreapplication.cpp:1373 pe = @0x25b9f60 e = 0x1656c10 r = 0xe551e0 locker = {val = 10114880} startOffset = 0 i = @0x9a5734 #21 0x000000362d785923 in sendPostedEvents (s=<value optimized out>) at kernel/qcoreapplication.h:220 No locals. #22 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276 source = <value optimized out> #23 0x00007ffff78c37a3 in g_main_dispatch (context=0x9aa920) at gmain.c:2119 dispatch = 0x362d785910 <postEventSourceDispatch(GSource*, GSourceFunc, gpointer)> was_in_call = 0 user_data = 0x0 callback = 0 cb_funcs = 0x0 cb_data = 0x0 current_source_link = {data = 0x9ab840, next = 0x0} need_destroy = <value optimized out> source = 0x9ab840 current = 0x9a9b20 i = <value optimized out> #24 g_main_context_dispatch (context=0x9aa920) at gmain.c:2672 No locals. #25 0x00007ffff78c3f80 in g_main_context_iterate (context=0x9aa920, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2750 max_priority = 0 timeout = 0 some_ready = 1 nfds = 11 allocated_nfds = <value optimized out> fds = <value optimized out> #26 0x00007ffff78c421d in g_main_context_iteration (context=0x9aa920, may_block=1) at gmain.c:2813 retval = <value optimized out> #27 0x000000362d785e5f in QEventDispatcherGlib::processEvents (this=0x9a7e70, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412 d = 0x9a7e90 canWait = true savedFlags = {i = 0} result = <value optimized out> #28 0x00000033bc05672e in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 d = 0x9a7e90 saved_flags = {i = 0} returnValue = false #29 0x000000362d75a0a2 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 d = 0x21f31b0 #30 0x000000362d75a2ec in QEventLoop::exec (this=0x7fffffffda00, flags=...) at kernel/qeventloop.cpp:201 d = 0x21f31b0 app = 0x7fffffffdc70 #31 0x000000362d75e76b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009 threadData = 0x9a5700 eventLoop = {<QObject> = {_vptr.QObject = 0x362da8bb50, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0x21f31b0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x362d828300 "QEventLoop", data = 0x362d828320, extradata = 0x0}}} returnCode = <value optimized out> #32 0x0000000000488a52 in main (argc=1, argv=<value optimized out>) at /usr/src/debug/clementine-0.4.2/src/main.cpp:172 a = {<QApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x998ad0, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0x9a6750}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x362d8283a0 "QCoreApplication", data = 0x362d828440, extradata = 0x0}}, static self = 0x0}, static staticMetaObject = {d = {superdata = 0x362da8bbe0, stringdata = 0x33bc627760 "QApplication", data = 0x33bc6279a0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x33bca4ae80, stringdata = 0x33b98067c0 "QtSingleApplication", data = 0x33b98068a0, extradata = 0x0}}, peer = 0xb33240, actWin = 0x0} mpris = {<QObject> = {_vptr.QObject = 0x5e0b30, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0xb409a0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x5e0ac0 "MPRIS", data = 0x5e0ae0, extradata = 0x0}}} w = {<QMainWindow> = {<QWidget> = {<QObject> = {_vptr.QObject = 0x5db1d0, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0xb40ec0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, <QPaintDevice> = {_vptr.QPaintDevice = 0x5db3a8, painters = 0}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x33bc62b520 "QWidget", data = 0x33bc62bac0, extradata = 0x0}}, data = 0xb41010}, static staticMetaObject = {d = {superdata = 0x999a40, stringdata = 0x33bc682580 "QMainWindow", data = 0x33bc682720, extradata = 0x33bca4abe0}}}, <PlatformInterface> = {_vptr.PlatformInterface = 0x5db3e0}, static staticMetaObject = {d = {superdata = 0x998e40, stringdata = 0x5da8a0 "MainWindow", data = 0x5dadc0, extradata = 0x0}}, static kSettingsGroup = 0x5c6abf "MainWindow", static kMusicFilterSpec = 0x5c6a68 "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)", static kAllFilesFilterSpec = 0x5c7439 "All Files (*)", ui_ = 0xb41b90, tray_icon_ = 0xb41e90, osd_ = 0xb442e0, edit_tag_dialog_ = {px = 0xb5b240}, task_manager_ = 0xc92950, about_dialog_ = {px = 0xc92aa0}, database_ = 0xc754a0, radio_model_ = 0xd4c880, playlist_backend_ = 0x7fffdc02e770, playlists_ = 0xd26fe0, playlist_parser_ = 0xd26df0, player_ = 0xd48f60, library_ = 0x16fa1a0, global_shortcuts_ = 0xd2bba0, settings_dialog_ = {px = 0x172aef0}, add_stream_dialog_ = {px = 0xd2e770}, cover_manager_ = {px = 0x16f9cd0}, equalizer_ = {px = 0xd33e60}, transcode_dialog_ = {px = 0xa12450}, error_dialog_ = {px = 0xa121d0}, visualisation_ = {px = 0xcdcd40}, playlist_menu_ = 0xdad880, playlist_play_pause_ = 0x19c3a90, playlist_stop_after_ = 0x19c9860, playlist_undoredo_ = 0x19ca010, playlist_menu_index_ = {r = -1, c = -1, p = 0x0, m = 0x0}, library_sort_model_ = 0x16d7a90, track_position_timer_ = 0x16d4c30, settings_ = {<QObject> = {_vptr.QObject = 0x362da8afb0, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0xe10910}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x362d827500 "QSettings", data = 0x362d827520, extradata = 0x0}}}, was_maximized_ = false, autoclear_playlist_ = false} handler = {<TagLib::ID3v1::StringHandler> = {_vptr.StringHandler = 0x5c1610}, <nsUniversalDetector> = {_vptr.nsUniversalDetector = 0x5c1648, mInputState = ePureAscii, mDone = false, mInTag = false, mStart = false, mGotData = true, mLastChar = 0 '\000', mDetectedCharset = 0x0, mBestGuess = -1, mLanguageFilter = 31, mCharSetProbers = {0x1c7fc50, 0x1c6df30, 0x1c7cce0}, mEscCharSetProber = 0x0}, current_codec_ = 0x0} options = {static kHelpText = 0x5c0270 "%1: clementine [%2] [%3]\n\n%4:\n -p, --play", ' ' <repeats 16 times>, "%5\n -t, --play-pause %6\n -u, --pause", ' ' <repeats 15 times>, "%7\n -s, --stop", ' ' <repeats 16 times>, "%8\n -r, --previous", ' ' <repeats 12 times>, "%9\n -f, --next "..., argc_ = 1, argv_ = 0x7fffffffdf08, url_list_action_ = CommandlineOptions::UrlList_Append, player_action_ = CommandlineOptions::Player_None, set_volume_ = -1, volume_modifier_ = 0, seek_to_ = -1, seek_by_ = 0, play_track_at_ = -1, show_osd_ = false, engine_ = Engine::Type_GStreamer, urls_ = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x9999c0}, d = 0x9999c0}}} network = {<QObject> = {_vptr.QObject = 0x5d5270, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0xb367f0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x5d5160 "NetworkAccessManager", data = 0x5d51e0, extradata = 0x0}}, network_ = 0xb33e70, cache_ = 0xb37150, pending_replies_ = {{d = 0x999680, e = 0x999680}}} (gdb) If I start playing a song first, the UI freezes when I try to open visualizations, but the music continues to play. UI completely frozen. gdb says (after ctrl-c): Program received signal SIGINT, Interrupt. __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136 136 2: movl %edx, %eax Missing separate debuginfos, use: debuginfo-install fluendo-codecs-mp3-10-2.x86_64 (gdb) set pagination off (gdb) bt full #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136 No locals. #1 0x0000003626e094a4 in _L_lock_996 () from /lib64/libpthread.so.0 No symbol table info available. #2 0x0000003626e092ba in __pthread_mutex_lock (mutex=0x3c5886d290) at pthread_mutex_lock.c:61 __PRETTY_FUNCTION__ = "__pthread_mutex_lock" type = <value optimized out> id = 12346 #3 0x0000003c5862685e in __glXInitialize (dpy=0x9e32d0) at glxext.c:828 info = 0xd83460 privList = <value optimized out> private = <value optimized out> found = <value optimized out> dpyPriv = <value optimized out> dataObj = <value optimized out> major = <value optimized out> glx_direct = <value optimized out> glx_accel = <value optimized out> #4 0x0000003c586440ed in dri2DestroyDrawable (pdraw=0x11a5be0) at dri2_glx.c:177 core = 0x7fffea7895d0 dpyPriv = <value optimized out> pdp = <value optimized out> #5 0x0000003c586251ad in GarbageCollectDRIDrawables (dpy=0x9e32d0, gc=0x1b78a00) at glxcmds.c:108 draw = 85983287 pdraw = 0x11a5be0 xwa = {x = 10367696, y = 0, width = 1483003538, height = 60, border_width = 1485220816, depth = 60, visual = 0x3c5864d55b, root = 0, class = 1483003132, bit_gravity = 60, win_gravity = 0, backing_store = 0, backing_planes = 259180879193, backing_pixel = 10114868, save_under = 651747712, colormap = 68, map_installed = 38150512, map_state = -1728053248, all_event_masks = 38150512, your_event_mask = 10114868, do_not_propagate_mask = 15074288, override_redirect = 648529058, screen = 0xe603f0} oldXErrorHandler = 0x33bc01d420 <qt_x_errhandler(Display*, XErrorEvent*)> #6 DestroyContext (dpy=0x9e32d0, gc=0x1b78a00) at glxcmds.c:586 req = <value optimized out> xid = 85997504 opcode = 153 '\231' imported = 0 '\000' #7 0x00000033b8c8b28c in QGLTemporaryContext::~QGLTemporaryContext (this=0x2462170, __in_chrg=<value optimized out>) at qgl_x11.cpp:1278 No locals. #8 0x00000033b8c2ab0d in QGLFormat::openGLVersionFlags () at qgl.cpp:1404 cachedDefault = true currentCtx = 0x0 tmpContext = 0x2462170 versionString = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 1}, alloc = 0, size = 0, data = 0x99967a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 25184}, alloc = 0, size = 0, data = 0x362da8dafa, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x2aebdc0, static codecForCStrings = 0x0} defaultVersionFlags = {i = 127} versionFlags = {i = 127} #9 0x00000033b8c2b02f in preferredPaintEngine () at qgl.cpp:176 No locals. #10 qt_gl_preferGL2Engine () at qgl.cpp:195 No locals. #11 0x00000033b8c2b0ca in qt_qgl_paint_engine () at qgl.cpp:5051 No locals. #12 0x00000033bc1b777f in QWidgetPrivate::repaint_sys (this=0xe60600, rgn=...) at painting/qbackingstore.cpp:1583 q = 0xe603f0 engine = <value optimized out> noPartialUpdateSupport = <value optimized out> toBePainted = {d = 0x1, static shared_empty = {ref = {_q_value = 1769}, rgn = 0x0, xrectangles = 0x0, qt_rgn = 0x0}} #13 0x00000033bbff7e34 in QWidgetPrivate::syncBackingStore (this=0xe60600) at kernel/qwidget.cpp:1767 No locals. #14 0x00000033bc005242 in QWidget::event (this=0xe603f0, event=0x174c960) at kernel/qwidget.cpp:8450 d = 0xe60600 #15 0x00000033b8c2d5c1 in QGLWidget::event (this=0xe603f0, e=0x174c960) at qgl.cpp:4135 d = <value optimized out> #16 0x00000033bbfb32a4 in QApplicationPrivate::notify_helper (this=0x9a6750, receiver=0xe603f0, e=0x174c960) at kernel/qapplication.cpp:4389 consumed = <value optimized out> #17 0x00000033bbfb7d1a in QApplication::notify (this=<value optimized out>, receiver=0xe603f0, e=0x174c960) at kernel/qapplication.cpp:4270 d = 0x9a6750 res = false #18 0x000000362d75ad0c in QCoreApplication::notifyInternal (this=0x7fffffffdc70, receiver=0xe603f0, event=0x174c960) at kernel/qcoreapplication.cpp:732 threadData = 0x9a5700 returnValue = <value optimized out> result = false cbdata = {0xe603f0, 0x174c960, 0x7fffffffd72f} d = <value optimized out> #19 0x000000362d75e4b5 in sendEvent (receiver=0x0, event_type=0, data=0x9a5700) at kernel/qcoreapplication.h:215 No locals. #20 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x9a5700) at kernel/qcoreapplication.cpp:1373 pe = @0x28b9060 e = 0x174c960 r = 0xe603f0 locker = {val = 10114880} startOffset = 0 i = @0x9a5734 #21 0x000000362d785923 in sendPostedEvents (s=<value optimized out>) at kernel/qcoreapplication.h:220 No locals. #22 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276 source = <value optimized out> #23 0x00007ffff78c37a3 in g_main_dispatch (context=0x9aa920) at gmain.c:2119 dispatch = 0x362d785910 <postEventSourceDispatch(GSource*, GSourceFunc, gpointer)> was_in_call = 0 user_data = 0x0 callback = 0 cb_funcs = 0x0 cb_data = 0x0 current_source_link = {data = 0x9ab840, next = 0x0} need_destroy = <value optimized out> source = 0x9ab840 current = 0x9a9b20 i = <value optimized out> #24 g_main_context_dispatch (context=0x9aa920) at gmain.c:2672 No locals. #25 0x00007ffff78c3f80 in g_main_context_iterate (context=0x9aa920, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2750 max_priority = 0 timeout = 0 some_ready = 1 nfds = 11 allocated_nfds = <value optimized out> fds = <value optimized out> #26 0x00007ffff78c421d in g_main_context_iteration (context=0x9aa920, may_block=1) at gmain.c:2813 retval = <value optimized out> #27 0x000000362d785e5f in QEventDispatcherGlib::processEvents (this=0x9a7e70, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412 d = 0x9a7e90 canWait = true savedFlags = {i = 0} result = <value optimized out> #28 0x00000033bc05672e in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 d = 0x9a7e90 saved_flags = {i = 0} returnValue = false #29 0x000000362d75a0a2 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 d = 0x203c2f0 #30 0x000000362d75a2ec in QEventLoop::exec (this=0x7fffffffda00, flags=...) at kernel/qeventloop.cpp:201 d = 0x203c2f0 app = 0x7fffffffdc70 #31 0x000000362d75e76b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009 threadData = 0x9a5700 eventLoop = {<QObject> = {_vptr.QObject = 0x362da8bb50, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0x203c2f0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x362d828300 "QEventLoop", data = 0x362d828320, extradata = 0x0}}} returnCode = <value optimized out> #32 0x0000000000488a52 in main (argc=1, argv=<value optimized out>) at /usr/src/debug/clementine-0.4.2/src/main.cpp:172 a = {<QApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x998ad0, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0x9a6750}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x362d8283a0 "QCoreApplication", data = 0x362d828440, extradata = 0x0}}, static self = 0x0}, static staticMetaObject = {d = {superdata = 0x362da8bbe0, stringdata = 0x33bc627760 "QApplication", data = 0x33bc6279a0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x33bca4ae80, stringdata = 0x33b98067c0 "QtSingleApplication", data = 0x33b98068a0, extradata = 0x0}}, peer = 0xb330c0, actWin = 0x0} mpris = {<QObject> = {_vptr.QObject = 0x5e0b30, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0xb408d0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x5e0ac0 "MPRIS", data = 0x5e0ae0, extradata = 0x0}}} w = {<QMainWindow> = {<QWidget> = {<QObject> = {_vptr.QObject = 0x5db1d0, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0xb40df0}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, <QPaintDevice> = {_vptr.QPaintDevice = 0x5db3a8, painters = 0}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x33bc62b520 "QWidget", data = 0x33bc62bac0, extradata = 0x0}}, data = 0xb40f40}, static staticMetaObject = {d = {superdata = 0x999a40, stringdata = 0x33bc682580 "QMainWindow", data = 0x33bc682720, extradata = 0x33bca4abe0}}}, <PlatformInterface> = {_vptr.PlatformInterface = 0x5db3e0}, static staticMetaObject = {d = {superdata = 0x998e40, stringdata = 0x5da8a0 "MainWindow", data = 0x5dadc0, extradata = 0x0}}, static kSettingsGroup = 0x5c6abf "MainWindow", static kMusicFilterSpec = 0x5c6a68 "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)", static kAllFilesFilterSpec = 0x5c7439 "All Files (*)", ui_ = 0xb41ac0, tray_icon_ = 0xb41dc0, osd_ = 0xb44210, edit_tag_dialog_ = {px = 0xb60710}, task_manager_ = 0xb6f2b0, about_dialog_ = {px = 0xb5dcd0}, database_ = 0xc96290, radio_model_ = 0xcc3860, playlist_backend_ = 0x7fffdc02e770, playlists_ = 0xc9dfb0, playlist_parser_ = 0xc9ddc0, player_ = 0x16fdd70, library_ = 0x16fcef0, global_shortcuts_ = 0xca2b70, settings_dialog_ = {px = 0x172b510}, add_stream_dialog_ = {px = 0xca52f0}, cover_manager_ = {px = 0x16fc320}, equalizer_ = {px = 0xcaa530}, transcode_dialog_ = {px = 0xcdf8c0}, error_dialog_ = {px = 0xcdfc00}, visualisation_ = {px = 0xd15390}, playlist_menu_ = 0xd8e650, playlist_play_pause_ = 0x19c3c50, playlist_stop_after_ = 0x19c9a20, playlist_undoredo_ = 0x19ca1d0, playlist_menu_index_ = {r = -1, c = -1, p = 0x0, m = 0x0}, library_sort_model_ = 0x16d8130, track_position_timer_ = 0x16d3190, settings_ = {<QObject> = {_vptr.QObject = 0x362da8afb0, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0xe5b830}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x362d827500 "QSettings", data = 0x362d827520, extradata = 0x0}}}, was_maximized_ = false, autoclear_playlist_ = false} handler = {<TagLib::ID3v1::StringHandler> = {_vptr.StringHandler = 0x5c1610}, <nsUniversalDetector> = {_vptr.nsUniversalDetector = 0x5c1648, mInputState = ePureAscii, mDone = false, mInTag = false, mStart = false, mGotData = true, mLastChar = 0 '\000', mDetectedCharset = 0x0, mBestGuess = -1, mLanguageFilter = 31, mCharSetProbers = {0x1c7fde0, 0x1c6e0c0, 0x1c7ce70}, mEscCharSetProber = 0x0}, current_codec_ = 0x0} options = {static kHelpText = 0x5c0270 "%1: clementine [%2] [%3]\n\n%4:\n -p, --play", ' ' <repeats 16 times>, "%5\n -t, --play-pause %6\n -u, --pause", ' ' <repeats 15 times>, "%7\n -s, --stop", ' ' <repeats 16 times>, "%8\n -r, --previous", ' ' <repeats 12 times>, "%9\n -f, --next "..., argc_ = 1, argv_ = 0x7fffffffdf08, url_list_action_ = CommandlineOptions::UrlList_Append, player_action_ = CommandlineOptions::Player_None, set_volume_ = -1, volume_modifier_ = 0, seek_to_ = -1, seek_by_ = 0, play_track_at_ = -1, show_osd_ = false, engine_ = Engine::Type_GStreamer, urls_ = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x9999c0}, d = 0x9999c0}}} network = {<QObject> = {_vptr.QObject = 0x5d5270, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x362d816060 "QObject", data = 0x362d816100, extradata = 0x362da83780}}, d_ptr = {d = 0xb36670}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x362d81ecc0 "Qt", data = 0x362d822400, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x999280, stringdata = 0x5d5160 "NetworkAccessManager", data = 0x5d51e0, extradata = 0x0}}, network_ = 0xb36cd0, cache_ = 0xb37100, pending_replies_ = {{d = 0x999680, e = 0x999680}}} (gdb) If I run clementine under valgrind, and immediately try to open up visualization (before starting music), clementine UI immediately hangs. I see this valgrind spew: ==12464== Invalid read of size 8 ==12464== at 0x3C5144DCCF: _XReply (xcb_io.c:582) ==12464== by 0x3C5142B09A: _XGetWindowAttributes (GetWAttrs.c:115) ==12464== by 0x3C5142B240: XGetWindowAttributes (GetWAttrs.c:150) ==12464== by 0x3C58625196: DestroyContext (glxcmds.c:104) ==12464== by 0x33B8C8B28B: QGLTemporaryContext::~QGLTemporaryContext() (qgl_x11.cpp:1278) ==12464== by 0x33B8C2AB0C: QGLFormat::openGLVersionFlags() (qgl.cpp:1404) ==12464== by 0x33B8C2B02E: qt_gl_preferGL2Engine() (qgl.cpp:176) ==12464== by 0x33B8C2B0C9: qt_qgl_paint_engine() (qgl.cpp:5051) ==12464== by 0x33BC1B777E: QWidgetPrivate::repaint_sys(QRegion const&) (qbackingstore.cpp:1583) ==12464== by 0x33BBFF7E33: QWidgetPrivate::syncBackingStore() (qwidget.cpp:1767) ==12464== by 0x33BC005241: QWidget::event(QEvent*) (qwidget.cpp:8450) ==12464== by 0x33B8C2D5C0: QGLWidget::event(QEvent*) (qgl.cpp:4135) ==12464== Address 0xfeb4b78 is 8 bytes inside a block of size 24 free'd ==12464== at 0x4A04D72: free (vg_replace_malloc.c:325) ==12464== by 0x3C5144DC77: _XReply (xcb_io.c:562) ==12464== by 0x3C5142B09A: _XGetWindowAttributes (GetWAttrs.c:115) ==12464== by 0x3C5142B240: XGetWindowAttributes (GetWAttrs.c:150) ==12464== by 0x3C58625196: DestroyContext (glxcmds.c:104) ==12464== by 0x33B8C8B28B: QGLTemporaryContext::~QGLTemporaryContext() (qgl_x11.cpp:1278) ==12464== by 0x33B8C2AB0C: QGLFormat::openGLVersionFlags() (qgl.cpp:1404) ==12464== by 0x33B8C2B02E: qt_gl_preferGL2Engine() (qgl.cpp:176) ==12464== by 0x33B8C2B0C9: qt_qgl_paint_engine() (qgl.cpp:5051) ==12464== by 0x33BC1B777E: QWidgetPrivate::repaint_sys(QRegion const&) (qbackingstore.cpp:1583) ==12464== by 0x33BBFF7E33: QWidgetPrivate::syncBackingStore() (qwidget.cpp:1767) ==12464== by 0x33BC005241: QWidget::event(QEvent*) (qwidget.cpp:8450) ==12464== There is clearly something wrong with the way the video acceleration is handled in your setup. Can you run glxgears, for example? I backported a patch from upstream trunk. With this patch, the OpenGL graphics context is not initialized until you open the visualizations window. Note that this does not fix the visualization crash. I am expecting that with this build you can exit cleanly from clementine, if you don't explicitly turn on visualizations. Can you confirm? http://koji.fedoraproject.org/koji/taskinfo?taskID=2388607 Hmm... interesting.... glxgears runs: [tbl@tlondon ~]$ glxgears Running synchronized to the vertical refresh. The framerate should be approximately the same as the monitor refresh rate. 302 frames in 5.0 seconds = 60.364 FPS 301 frames in 5.0 seconds = 60.018 FPS 301 frames in 5.0 seconds = 60.015 FPS but also hangs in similar fashion: Loaded symbols for /usr/lib64/libdrm_intel.so.1 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136 136 2: movl %edx, %eax (gdb) where #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136 #1 0x0000003626e094a4 in _L_lock_996 () from /lib64/libpthread.so.0 #2 0x0000003626e092ba in __pthread_mutex_lock (mutex=0x3c5886d290) at pthread_mutex_lock.c:61 #3 0x0000003c5862685e in __glXInitialize (dpy=0x1979010) at glxext.c:828 #4 0x0000003c58644153 in dri2GetGlxDrawableFromXDrawableId ( dpy=<value optimized out>, id=<value optimized out>) at dri2_glx.c:774 #5 0x0000003c5864448b in DRI2WireToEvent (dpy=0x1979010, event=0x1cd9698, wire=0x19908c0) at dri2.c:105 #6 0x0000003c514468de in _XEnq (dpy=0x1979010, event=<value optimized out>) at XlibInt.c:2431 #7 0x0000003c5144d293 in handle_response (dpy=0x1979010, response=0x19908c0, in_XReply=<value optimized out>) at xcb_io.c:279 #8 0x0000003c5144dc30 in _XReply (dpy=0x1979010, rep=0x7fff3fae6f80, extra=0, discard=1) at xcb_io.c:554 #9 0x0000003c514414b3 in XSync (dpy=0x1979010, discard=0) at Sync.c:46 #10 0x0000003c58625145 in GarbageCollectDRIDrawables (dpy=0x1979010, gc=0x198d1a0) at glxcmds.c:98 #11 DestroyContext (dpy=0x1979010, gc=0x198d1a0) at glxcmds.c:586 #12 0x00000000004032a9 in ?? () #13 0x0000003626a1ecdd in __libc_start_main (main=0x4027c0, argc=1, ubp_av=0x7fff3fae7488, init=<value optimized out>, ---Type <return> to continue, or q <return> to quit--- fini=<value optimized out>, rtld_fini=<value optimized out>, stack_end=0x7fff3fae7478) at libc-start.c:226 #14 0x00000000004017a9 in ?? () #15 0x00007fff3fae7478 in ?? () #16 0x000000000000001c in ?? () #17 0x0000000000000001 in ?? () #18 0x00007fff3fae9288 in ?? () #19 0x0000000000000000 in ?? () (gdb) Guess I'll check BZ for such an issue. In any case, I downloaded the 'new' clementine: [root@tlondon ~]# rpm -qa clementine\* clementine-debuginfo-0.4.2-8.1.fc14.x86_64 clementine-0.4.2-8.1.fc14.x86_64 [root@tlondon ~]# I started it up and started and stopped one clip, and then exited. It terminated fine. Thanks! I've filed a BZ against mesa here: https://bugzilla.redhat.com/show_bug.cgi?id=622365 clementine-0.4.2-9.fc14 has been submitted as an update for Fedora 14. http://admin.fedoraproject.org/updates/clementine-0.4.2-9.fc14 clementine-0.4.2-9.fc13 has been submitted as an update for Fedora 13. http://admin.fedoraproject.org/updates/clementine-0.4.2-9.fc13 clementine-0.4.2-9.fc12 has been submitted as an update for Fedora 12. http://admin.fedoraproject.org/updates/clementine-0.4.2-9.fc12 clementine-0.4.2-9.fc14 has been pushed to the Fedora 14 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update clementine'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/clementine-0.4.2-9.fc14 clementine-0.4.2-9.fc14 has been pushed to the Fedora 14 stable repository. If problems still persist, please make note of it in this bug report. clementine-0.4.2-9.fc12 has been pushed to the Fedora 12 stable repository. If problems still persist, please make note of it in this bug report. clementine-0.4.2-9.fc13 has been pushed to the Fedora 13 stable repository. If problems still persist, please make note of it in this bug report. |
Created attachment 437145 [details] gdb output showing output of 'thread apply all bt full' Description of problem: If I try to exit from clementine, e.g., I pause music play and exit from the main window, the process hangs: If I attach to the process with gdb, I get: Loaded symbols for /usr/lib64/gstreamer-0.10/libgstflump3dec.so __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136 136 2: movl %edx, %eax Missing separate debuginfos, use: debuginfo-install fluendo-codecs-mp3-10-2.x86_64 (gdb) where #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136 #1 0x0000003626e094a4 in _L_lock_996 () from /lib64/libpthread.so.0 #2 0x0000003626e092ba in __pthread_mutex_lock (mutex=0x3c5886d290) at pthread_mutex_lock.c:61 #3 0x0000003c5862685e in __glXInitialize (dpy=0xf642d0) at glxext.c:828 #4 0x0000003c586440ed in dri2DestroyDrawable (pdraw=0x1726cc0) at dri2_glx.c:177 #5 0x0000003c586251ad in GarbageCollectDRIDrawables (dpy=0xf642d0, gc=0x138d360) at glxcmds.c:108 #6 DestroyContext (dpy=0xf642d0, gc=0x138d360) at glxcmds.c:586 #7 0x00000033b8c8a656 in QGLContext::reset (this=0x13dbec0) at qgl_x11.cpp:903 #8 0x00000033b8c2ebff in QGLContext::~QGLContext (this=0x13dbec0, __in_chrg=<value optimized out>) at qgl.cpp:2034 #9 0x00000033b8c2ec59 in QGLContext::~QGLContext (this=0x13dbec0, __in_chrg=<value optimized out>) at qgl.cpp:2035 #10 0x00000033b8c27e9f in QGLWidget::~QGLWidget (this=0x1318c10, __in_chrg=<value optimized out>) at qgl.cpp:3676 #11 0x00000033b8c27ef9 in QGLWidget::~QGLWidget (this=0x1318c10, __in_chrg=<value optimized out>) at qgl.cpp:3697 #12 0x000000362d76d7b4 in QObjectPrivate::deleteChildren (this=0x132e600) at kernel/qobject.cpp:1949 #13 0x00000033bc0084f0 in QWidget::~QWidget (this=0x1295fc0, ---Type <return> to continue, or q <return> to quit--- __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1559 #14 0x00000033bc5c85f5 in QGraphicsView::~QGraphicsView (this=0x1295fc0, __in_chrg=<value optimized out>) at graphicsview/qgraphicsview.cpp:1159 #15 0x00000000005c10fe in VisualisationContainer::~VisualisationContainer() () #16 0x00000000005c115a in VisualisationContainer::~VisualisationContainer() () #17 0x000000000057cee4 in void boost::checked_delete<VisualisationContainer>(VisualisationContainer*) () #18 0x000000000057c39f in boost::scoped_ptr<VisualisationContainer>::~scoped_ptr() () #19 0x000000000056e428 in MainWindow::~MainWindow() () #20 0x000000000050abfe in main () (gdb) I attach output of 'thread apply all bt full' Version-Release number of selected component (if applicable): clementine-0.4.2-7.fc15.x86_64 How reproducible: Every time Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: