[vlc-devel] vlc 1.1.5 on FreeBSD 9.0 dumping core on exit

Fabian Keil freebsd-listen at fabiankeil.de
Sat Nov 20 17:51:59 CET 2010


Hi,

since upgrading from vlc 1.1.4 to 1.1.5, I'm getting the following
core dump when exiting vlc on FreeBSD 9.0-CURRENT amd64, with or
without any media played:

fk at r500 ~ $vlc
VLC media player 1.1.5 The Luggage (revision exported)
[0x8014451b0] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
Blocked: call to setlocale(0, "")
Blocked: call to sigaction(20, 0x7fffff9fcc40, 0x7fffff9fcc60)
[0x801439870] qt4 interface error: Unable to load extensions module
Warning: call to rand()
Warning: call to rand()
Warning: call to rand()
Warning: call to rand()
ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread 801656a10. Receiver '' (of type 'MainInterface') was created in thread 81a46c040", file kernel/qcoreapplication.cpp, line 348
Abort trap: 6 (core dumped)

fk at r500 ~ $gdb `which vlc` vlc.core 
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
Core was generated by `vlc'.
Program terminated with signal 6, Aborted.
Reading symbols from /usr/local/lib/libvlc.so.7...done.
[...]
Loaded symbols for /libexec/ld-elf.so.1
#0  0x0000000800ee1b2c in thr_kill () from /lib/libc.so.7
[New Thread 801408200 (LWP 100389)]
[New Thread 801407c00 (LWP 100387)]
[New Thread 801407300 (LWP 100377)]
(gdb) bt full
#0  0x0000000800ee1b2c in thr_kill () from /lib/libc.so.7
No symbol table info available.
#1  0x0000000800f81873 in abort () from /lib/libc.so.7
No symbol table info available.
#2  0x000000081565bd98 in qt_message_output (msgType=QtFatalMsg, 
    buf=0x801446918 "ASSERT failure in QCoreApplication::sendEvent: \"Cannot send events to objects owned by a different thread. Current thread 801656a10. Receiver '' (of type 'MainInterface') was created in thread 81a46c0"...) at global/qglobal.cpp:2266
No locals.
#3  0x000000081565bf5b in qt_message (msgType=QtFatalMsg, msg=0x81581cc38 "ASSERT failure in %s: \"%s\", file %s, line %d", ap=0x7fffffffdb30) at global/qglobal.cpp:2312
        buf = {static shared_null = {ref = {_q_value = 5}, alloc = 0, size = 0, data = 0x815993f98 "", array = ""}, static shared_empty = {ref = {_q_value = 2}, alloc = 0, size = 0, 
    data = 0x815993fb8 "", array = ""}, d = 0x801446900}
#4  0x000000081565c074 in qFatal (msg=0x81581cc38 "ASSERT failure in %s: \"%s\", file %s, line %d") at global/qglobal.cpp:2495
        ap = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffffffdc10, reg_save_area = 0x7fffffffdb50}}
#5  0x000000081565c0ba in qt_assert_x (where=0x81586497c "QCoreApplication::sendEvent", 
    what=0x80169a818 "Cannot send events to objects owned by a different thread. Current thread 801656a10. Receiver '' (of type 'MainInterface') was created in thread 81a46c040", 
    file=0x815864248 "kernel/qcoreapplication.cpp", line=348) at global/qglobal.cpp:2019
No locals.
#6  0x000000081579065a in QCoreApplicationPrivate::checkReceiverThread (this=0x81a407300, receiver=0x81a474f00) at kernel/qcoreapplication.cpp:340
        currentThread = (QThread *) 0x801656a10
        thr = (QThread *) 0x81a46c040
#7  0x000000081493d466 in QApplication::notify (this=0x7fffff9fcea0, receiver=0x81a474f00, e=0x7fffffffe5e0) at kernel/qapplication.cpp:3599
        d = (QApplicationPrivate * const) 0x81a407300
        res = false
#8  0x000000081578f740 in QCoreApplication::notifyInternal (this=0x7fffff9fcea0, receiver=0x81a474f00, event=0x7fffffffe5e0) at kernel/qcoreapplication.cpp:726
        result = false
        cbdata = {0x81a474f00, 0x7fffffffe5e0, 0x7fffffffe547}
        d = (QObjectPrivate *) 0x81a4efc00
        threadData = (QThreadData *) 0x81a4240a0
        returnValue = false
#9  0x000000081493a07b in QCoreApplication::sendEvent (receiver=0x81a474f00, event=0x7fffffffe5e0) at qcoreapplication.h:215
No locals.
#10 0x00000008149b4921 in QWidgetPrivate::close_helper (this=0x81a4efc00, mode=QWidgetPrivate::CloseWithEvent) at kernel/qwidget.cpp:7608
        e = {<QEvent> = {_vptr$QEvent = 0x815381790, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x81587b500 "QEvent", data = 0x81587bf00, extradata = 0x0}}, d = 0x0, 
    t = 19, posted = 0, spont = 0, m_accept = 1, reserved = 8191}, <No data fields>}
        q = (QWidget * const) 0x81a474f00
        that = {o = 0x81a474f00}
        parentWidget = {o = 0x0}
        isMain = false
---Type <return> to continue, or q <return> to quit---
        quitOnClose = true
#11 0x00000008149b4c62 in QWidget::close (this=0x81a474f00) at kernel/qwidget.cpp:7679
No locals.
#12 0x00000008149404c9 in QApplication::closeAllWindows () at kernel/qapplication.cpp:2206
        i = 8
        did_close = true
        w = (QWidget *) 0x81a474f00
        list = {{p = {static shared_null = {ref = {_q_value = 1514}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, d = 0x80165d600}, d = 0x80165d600}}
#13 0x00000008142e99a9 in Close (p_this=0x801439870) at qt4.cpp:370
        p_sys = (intf_sys_t *) 0x80169c480
#14 0x00000008007f5bb2 in module_unneed (p_this=0x801439870, p_module=0x8015a5680) at modules/modules.c:625
No locals.
#15 0x0000000800798303 in intf_DestroyAll (p_libvlc=Variable "p_libvlc" is not available.
) at interface/interface.c:211
        p_next = (intf_thread_t *) 0x801439770
        p_intf = (intf_thread_t *) 0x801439870
        p_first = Variable "p_first" is not available.

I compiled vlc using the FreeBSD port which has some patches.
As far as I can see they shouldn't make a difference, but I could be wrong:
http://www.freebsd.org/cgi/cvsweb.cgi/ports/multimedia/vlc/files/

Without the patches the port doesn't build, so I didn't
try reproducing the problem without the patches yet.

As I'm not familiar enough with qt or vlc to properly debug this,
I'm using the attached patch as work around. It lets vlc skip the
removal of the qt4 module and thus exit cleanly:

fk at r500 ~ $vlc -vv
VLC media player 1.1.5 The Luggage (revision f29f9d9)
[0x8014451b0] main libvlc debug: VLC media player - 1.1.5 The Luggage
[0x8014451b0] main libvlc debug: Copyright © 1996-2010 the VideoLAN team
[0x8014451b0] main libvlc debug: revision f29f9d9
[0x8014451b0] main libvlc debug: configured with ./configure  '--enable-vlc' '--enable-avcodec' '--enable-avformat' '--enable-oss' '--enable-postproc' '--enable-sftp' '--disable-alsa' '--disable-directfb' '--disable-loader' '--disable-telx' '--disable-update-check' '--disable-v4l2' '--disable-debug' '--enable-qt4' '--with-qt-includes=/usr/local/include/qt4' '--with-qt-libraries=/usr/local/lib/qt4' '--with-extra-libs=/usr/local/lib' '--with-extra-includes=/usr/local/include' '--enable-a52' '--disable-aa' '--disable-bonjour' '--disable-caca' '--disable-dbus' '--disable-dirac' '--enable-dca' '--disable-dvbpsi' '--enable-dvdread' '--enable-dvdnav' '--enable-faad' '--enable-flac' '--disable-fluidsynth' '--disable-fribidi' '--disable-ggi' '--enable-glx' '--disable-gnutls' '--disable-httpd' '--disable-jack' '--disable-live555' '--disable-lua' '--disable-mad' '--enable-mkv' '--disable-mod' '--enable-libmpeg2' '--disable-mpc' '--disable-ncurses' '--disable-nls' '--disable-notify' '--enable-ogg' '--disable-opengl' '--enable-png' '--disable-portaudio' '--disable-pulse' '--disable-real' '--disable-realrtsp' '--disable-smb' '--enable-schroedinger' '--enable-sdl' '--enable-sdl-image' '--disable-shout' '--disable-skins2' '--disable-libtar' '--enable-sout' '--enable-speex' '--disable-sqlite' '--disable-svg' '--disable-svgalib' '--enable-taglib' '--enable-theora' '--disable-tremor' '--disable-twolame' '--disable-upnp' '--disable-v4l' '--disable-dvb' '--disable-vcd' '--disable-libcddb' '--enable-vorbis' '--enable-x264' '--enable-xcb' '--with-x' '--enable-xosd' '--enable-xvideo' '--disable-zvbi' '--x-libraries=/usr/local/lib' '--x-includes=/usr/local/include' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=amd64-portbld-freebsd9.0' 'build_alias=amd64-portbld-freebsd9.0' 'CC=cc' 'CFLAGS=-pipe -g' 'LDFLAGS= -L/usr/obj/usr/ports/multimedia/vlc/work/fake/usr/local/lib -L/usr/local/lib -pthread -lc' 'LIBS=' 'CPPFLAGS=-I/usr/local/include/speex ' 'CPP=cpp' 'CXX=c++' 'CXXFLAGS=-pipe -g'
[...]
[0x801439670] main interface debug: TIMER module_need() : 2.469 ms - Total 2.469 ms / 1 intvls (Avg 2.469 ms)
[0x801439770] main interface debug: looking for interface module: 1 candidate
[0x801439770] main interface debug: using interface module "globalhotkeys"
[0x801439770] main interface debug: TIMER module_need() : 12.141 ms - Total 12.141 ms / 1 intvls (Avg 12.141 ms)
[0x8014451b0] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[0x801439870] main interface debug: looking for interface module: 3 candidates
[0x80143d3f0] main playlist debug: Activated
[0x80143d3f0] main playlist debug: rebuilding array of current - root Playlist
[0x80143d3f0] main playlist debug: rebuild done - 0 items, index -1
Blocked: call to setlocale(0, "")
Blocked: call to sigaction(20, 0x7fffff9fcc40, 0x7fffff9fcc60)
[0x81a52b270] main generic debug: looking for extension module: 0 candidates
[0x81a52b270] main generic debug: no extension module matched "any"
[0x81a52b270] main generic debug: TIMER module_need() : 0.210 ms - Total 0.210 ms / 1 intvls (Avg 0.210 ms)
[0x801439870] qt4 interface error: Unable to load extensions module
[0x801439870] main interface debug: using interface module "qt4"
[0x801439870] main interface debug: TIMER module_need() : 161.527 ms - Total 161.527 ms / 1 intvls (Avg 161.527 ms)
Warning: call to rand()
Warning: call to rand()
Warning: call to rand()
Warning: call to rand()
[0x8014451b0] main libvlc debug: deactivating the playlist
[0x80143d3f0] main playlist debug: Deactivate
[0x8016856f0] main playlist export debug: saving Media Library to file /home/fk/.local/share/vlc/ml.xspf
[0x8016856f0] main playlist export debug: looking for playlist export module: 1 candidate
[0x8016856f0] main playlist export debug: using playlist export module "export"
[0x8016856f0] main playlist export debug: TIMER module_need() : 0.499 ms - Total 0.499 ms / 1 intvls (Avg 0.499 ms)
[0x8016856f0] main playlist export debug: removing module "export"
[0x80143d3f0] main playlist debug: Deactivated
[0x8014451b0] main libvlc debug: removing all services discovery tasks
[0x8014451b0] main libvlc debug: removing all interfaces
[0x801439870] main interface debug: skipped removal of module "qt4"
[0x801439770] main interface debug: removing module "globalhotkeys"
[0x801439670] main interface debug: removing module "signals"
[0x801439470] main interface debug: removing module "hotkeys"
[0x80143d3f0] main playlist debug: destroying
[0x8014451b0] main libvlc debug: TIMER ML Load : Total 3.241 ms / 1 intvls (Avg 3.241 ms)
[0x8014451b0] main libvlc debug: TIMER Items array build : Total 0.138 ms / 1 intvls (Avg 0.138 ms)
[0x8014451b0] main libvlc debug: TIMER ML Dump : Total 1.120 ms / 1 intvls (Avg 1.120 ms)
[0x8014451b0] main libvlc debug: removing stats
[0x8014451b0] main libvlc debug: removing module "dummy"
QObject::killTimers: timers cannot be stopped from another thread
Blocked: call to sigaction(20, 0x7fffffffe4a0, 0x7fffffffe4c0)
Blocked: call to sigaction(20, 0x7fffffffe4c0, 0x0)
fk at r500 ~ $

Fabian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vlc-1.1.5-abort-workaround.diff
Type: text/x-patch
Size: 1165 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20101120/cfcacd05/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20101120/cfcacd05/attachment.sig>


More information about the vlc-devel mailing list