Ticket #1487 (closed defect: fixed)

Opened 3 months ago

Last modified 1 week ago

Qt4 crashes upon input failure

Reported by: courmisch Assigned to: jb
Priority: normal Milestone: 0.9.0-test1
Component: Qt interface Version: master
Severity: critical Keywords:
Cc: funman, ivoire Platform(s): all
Difficulty: unknown Work status: Not started

Description (Last modified by courmisch)

Running

vlc dccp://127.0.0.1:1234

results in the following crash. It appears that Qt4 crashes when "no suitable access2" module error occurs. I am pretty we had this problem earlier...

[00000346] main access error: connection failed: Connection refused
[00000346] access_udp access error: cannot open socket
[00000348] access_directory access error: dccp://127.0.0.1:1234: No such file or directory
[00000348] access_file access error: cannot open file dccp://127.0.0.1:1234 (No such file or directory)
[00000344] main input error: open of `dccp://127.0.0.1:1234' failed: could not create access: no suitable access2 module
==6339==
==6339== Invalid read of size 4
==6339==    at 0x7F32FFC: ControlsWidget::updateInput() (input_manager.hpp:64)
==6339==    by 0x7E7F861: MainInterface::setStatus(int) (main_interface.cpp:911)
==6339==    by 0x7F490CD: MainInterface::qt_metacall(QMetaObject::Call, int, void**) (main_interface.moc.cpp:123)
==6339==    by 0x912236D: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==    by 0x9122D78: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==    by 0x7F49DD3: InputManager::statusChanged(int) (input_manager.moc.cpp:142)
==6339==    by 0x7E88AE4: InputManager::delInput() (input_manager.cpp:118)
==6339==    by 0x7E89977: InputManager::setInput(input_thread_t*) (input_manager.cpp:81)
==6339==    by 0x7F4A253: InputManager::qt_metacall(QMetaObject::Call, int, void**) (input_manager.moc.cpp:94)
==6339==    by 0x912236D: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==    by 0x9122D78: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==    by 0x7F49D30: MainInputManager::inputChanged(input_thread_t*) (input_manager.moc.cpp:221)
==6339==  Address 0x9d54ed8 is 168 bytes inside a block of size 232 free'd
==6339==    at 0x402265C: free (vg_replace_malloc.c:323)
==6339==    by 0x40CDA4E: __vlc_object_release (objects.c:457)
==6339==    by 0x40691C0: Destroy (input.c:302)
==6339==    by 0x4069296: input_DestroyThread (input.c:473)
==6339==    by 0x404A8AD: playlist_MainLoop (engine.c:285)
==6339==    by 0x4047200: RunControlThread (thread.c:196)
==6339==    by 0x423DF39: start_thread (pthread_create.c:297)
==6339==    by 0x41C431D: clone (in /usr/lib/debug/libc-2.7.so)
==6339==
==6339== Invalid read of size 4
==6339==    at 0x7E7F880: MainInterface::setStatus(int) (input_manager.hpp:64)
==6339==    by 0x7F490CD: MainInterface::qt_metacall(QMetaObject::Call, int, void**) (main_interface.moc.cpp:123)
==6339==    by 0x912236D: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==    by 0x9122D78: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==    by 0x7F49DD3: InputManager::statusChanged(int) (input_manager.moc.cpp:142)
==6339==    by 0x7E88AE4: InputManager::delInput() (input_manager.cpp:118)
==6339==    by 0x7E89977: InputManager::setInput(input_thread_t*) (input_manager.cpp:81)
==6339==    by 0x7F4A253: InputManager::qt_metacall(QMetaObject::Call, int, void**) (input_manager.moc.cpp:94)
==6339==    by 0x912236D: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==    by 0x9122D78: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==    by 0x7F49D30: MainInputManager::inputChanged(input_thread_t*) (input_manager.moc.cpp:221)
==6339==    by 0x7E8A122: MainInputManager::customEvent(QEvent*) (input_manager.cpp:514)
==6339==  Address 0x9d54ed8 is 168 bytes inside a block of size 232 free'd
==6339==    at 0x402265C: free (vg_replace_malloc.c:323)
==6339==    by 0x40CDA4E: __vlc_object_release (objects.c:457)
==6339==    by 0x40691C0: Destroy (input.c:302)
==6339==    by 0x4069296: input_DestroyThread (input.c:473)
==6339==    by 0x404A8AD: playlist_MainLoop (engine.c:285)
==6339==    by 0x4047200: RunControlThread (thread.c:196)
==6339==    by 0x423DF39: start_thread (pthread_create.c:297)
==6339==    by 0x41C431D: clone (in /usr/lib/debug/libc-2.7.so)
==6339==
==6339== Invalid read of size 4
==6339==    at 0x40D091D: __var_Get (variables.c:836)
==6339==    by 0x7E788E7: QVLCMenu::PopupMenuControlEntries(QMenu*, intf_thread_t*, input_thread_t*) (menus.cpp:497)
==6339==    by 0x7E7BCE4: QVLCMenu::updateSystrayMenu(MainInterface*, intf_thread_t*, bool) (menus.cpp:705)
==6339==    by 0x7E7F8B3: MainInterface::setStatus(int) (main_interface.cpp:916)
==6339==    by 0x7F490CD: MainInterface::qt_metacall(QMetaObject::Call, int, void**) (main_interface.moc.cpp:123)
==6339==    by 0x912236D: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==    by 0x9122D78: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==    by 0x7F49DD3: InputManager::statusChanged(int) (input_manager.moc.cpp:142)
==6339==    by 0x7E88AE4: InputManager::delInput() (input_manager.cpp:118)
==6339==    by 0x7E89977: InputManager::setInput(input_thread_t*) (input_manager.cpp:81)
==6339==    by 0x7F4A253: InputManager::qt_metacall(QMetaObject::Call, int, void**) (input_manager.moc.cpp:94)
==6339==    by 0x912236D: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==  Address 0x9d54e6c is 60 bytes inside a block of size 232 free'd
==6339==    at 0x402265C: free (vg_replace_malloc.c:323)
==6339==    by 0x40CDA4E: __vlc_object_release (objects.c:457)
==6339==    by 0x40691C0: Destroy (input.c:302)
==6339==    by 0x4069296: input_DestroyThread (input.c:473)
==6339==    by 0x404A8AD: playlist_MainLoop (engine.c:285)
==6339==    by 0x4047200: RunControlThread (thread.c:196)
==6339==    by 0x423DF39: start_thread (pthread_create.c:297)
==6339==    by 0x41C431D: clone (in /usr/lib/debug/libc-2.7.so)
==6339==
==6339== Invalid read of size 4
==6339==    at 0x423F2A0: pthread_mutex_lock (pthread_mutex_lock.c:51)
==6339==    by 0x41D0385: pthread_mutex_lock (forward.c:182)
==6339==    by 0x40D0929: __var_Get (vlc_threads_funcs.h:111)
==6339==    by 0x7E788E7: QVLCMenu::PopupMenuControlEntries(QMenu*, intf_thread_t*, input_thread_t*) (menus.cpp:497)
==6339==    by 0x7E7BCE4: QVLCMenu::updateSystrayMenu(MainInterface*, intf_thread_t*, bool) (menus.cpp:705)
==6339==    by 0x7E7F8B3: MainInterface::setStatus(int) (main_interface.cpp:916)
==6339==    by 0x7F490CD: MainInterface::qt_metacall(QMetaObject::Call, int, void**) (main_interface.moc.cpp:123)
==6339==    by 0x912236D: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==    by 0x9122D78: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.3.4)
==6339==    by 0x7F49DD3: InputManager::statusChanged(int) (input_manager.moc.cpp:142)
==6339==    by 0x7E88AE4: InputManager::delInput() (input_manager.cpp:118)
==6339==    by 0x7E89977: InputManager::setInput(input_thread_t*) (input_manager.cpp:81)
==6339==  Address 0x9d54e40 is 16 bytes inside a block of size 232 free'd
==6339==    at 0x402265C: free (vg_replace_malloc.c:323)
==6339==    by 0x40CDA4E: __vlc_object_release (objects.c:457)
==6339==    by 0x40691C0: Destroy (input.c:302)
==6339==    by 0x4069296: input_DestroyThread (input.c:473)
==6339==    by 0x404A8AD: playlist_MainLoop (engine.c:285)
==6339==    by 0x4047200: RunControlThread (thread.c:196)
==6339==    by 0x423DF39: start_thread (pthread_create.c:297)
==6339==    by 0x41C431D: clone (in /usr/lib/debug/libc-2.7.so)
LibVLC fatal error locking mutex in thread 163933072 at ../../src/misc/variables.c:838: 22
 Error message: Invalid argument

Change History

03/01/08 22:53:41 changed by courmisch

  • description changed.

03/11/08 06:42:27 changed by jb

  • cc set to funman, ivoire.

It doesn't seem to crash all the time.

In RC interface

[00000376] main playlist debug: finished input
[00000376] main playlist debug: dying input
[00000376] main playlist debug: dying input
[00000376] main playlist debug: dead input
[00000410] main input debug: thread 3003906960 joined (../../src/input/input.c:479)
[00000376] main playlist debug: starting new item
[00000376] main playlist debug: changing item without a request (current 0/1)
[00000376] main playlist debug: nothing to play

In Qt interface

[00000374] main playlist debug: finished input
[00000374] main playlist debug: dying input
[00000374] main playlist debug: dying input
[00000374] main playlist debug: dead input
[00000409] main input debug: thread 2992901008 joined (../../src/input/input.c:479)
[00000374] main playlist debug: starting new item
[00000374] main playlist debug: changing item without a request (current 0/1)
[00000374] main playlist debug: nothing to play
[00000406] qt4 interface debug: I am here
[00000406] qt4 interface debug: I was here, updating your status
[00000374] main playlist debug: starting new item
[00000374] main playlist debug: changing item without a request (current 1/1)
[00000374] main playlist debug: using item 2
[00000374] main playlist debug: nothing to play

Why does it start a new one ?

03/17/08 22:01:17 changed by jb

  • status changed from new to closed.
  • resolution set to fixed.

05/01/08 13:43:20 changed by courmisch

  • status changed from closed to reopened.
  • resolution deleted.

05/01/08 13:43:32 changed by courmisch

  • severity changed from normal to critical.

05/01/08 13:49:11 changed by courmisch

***************************************************
*** glibc version with broken libintl detected. ***
*** Messages localization will be disabled.     ***
***************************************************
VLC media player 0.9.0-git Grishenko
[00000001] main libvlc debug: VLC media player - version 0.9.0-git Grishenko - (c) 1996-2008 the VideoLAN team
[00000001] main libvlc debug: libvlc was configured with ../configure  '-C' 'CC=ccache gcc-4.3' 'CXX=ccache g++-4.3' 'CFLAGS=-O2 -g' 'CXXFLAGS=-O2 -g' 'LDFLAGS=-Wl,-z,defs,--as-needed,-Bsymbolic' '--enable--maintainer-mode' '--enable-debug' '--enable-libmpeg2' '--disable-mad' '--enable-dvd' '--enable-qt4' '--disable-faad' '--disable-skins2' '--disable-wxwidgets' '--enable-loader' '--enable-real' '--enable-ffmpeg' '--disable-glx' '--disable-fribidi'
[00000001] main libvlc debug: translation test: code is "C"
[00000001] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[00000354] access_directory access error: tot: No such file or directory
[00000354] access_file access error: cannot open file tot (No such file or directory)
[00000352] main input error: open of `tot' failed: could not create access: no suitable access module
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb5953b90 (LWP 3569)]
0xb7eba394 in playlist_NextItem (p_playlist=0x8159bc8)
    at ../../src/playlist/control.c:450
450             if( p_new != NULL && p_new->i_flags & PLAYLIST_SKIP_FLAG )
(gdb) bt
#0  0xb7eba394 in playlist_NextItem (p_playlist=0x8159bc8)
    at ../../src/playlist/control.c:450
#1  0xb7ebc0c3 in playlist_MainLoop (p_playlist=0x8159bc8)
    at ../../src/playlist/engine.c:356
#2  0xb7eb944c in RunControlThread (p_playlist=0x8159bc8)
    at ../../src/playlist/thread.c:153
#3  0xb7d2a4fb in start_thread () from /lib/i686/cmov/libpthread.so.0
#4  0xb7e14d7e in clone () from /lib/i686/cmov/libc.so.6

Pseudo-randomly. Sometimes it works and displays the error interaction dialog. Not reproducible without Qt4 interface, but it could be a playlist core error. Not reproducible under valgrind, however:

==3533== Thread 6:
==3533== Conditional jump or move depends on uninitialised value(s)
==3533==    at 0x404638E: playlist_NextItem (control.c:450)
==3533==    by 0x40480C2: playlist_MainLoop (engine.c:356)
==3533==    by 0x404544B: RunControlThread (thread.c:153)
==3533==    by 0x4230FD2: start_thread (pthread_create.c:297)
==3533==    by 0x41BAA8D: clone (in /usr/lib/debug/libc-2.7.so)
==3533==
==3533== Conditional jump or move depends on uninitialised value(s)
==3533==    at 0x40480C5: playlist_MainLoop (engine.c:358)
==3533==    by 0x404544B: RunControlThread (thread.c:153)
==3533==    by 0x4230FD2: start_thread (pthread_create.c:297)
==3533==    by 0x41BAA8D: clone (in /usr/lib/debug/libc-2.7.so)

05/06/08 23:54:41 changed by funman

  • status changed from reopened to closed.
  • resolution set to fixed.