Bug 265854 - Seeking fails and leads to a broken progress bar and crash on exit [@ Phonon::VLC::Backend::endConnectionChange]
Summary: Seeking fails and leads to a broken progress bar and crash on exit [@ Phonon:...
Status: RESOLVED FIXED
Alias: None
Product: phonon-backend-vlc
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 0.3.1
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Harald Sitter
URL:
Keywords:
: 268004 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-02-09 03:15 UTC by Sam Lade
Modified: 2011-11-23 14:04 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In: 0.3.2
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sam Lade 2011-02-09 03:15:58 UTC
Version:           2.4-GIT (using KDE 4.6.0) 
OS:                Linux

Attempting to seek causes the progress bar to fail (it simply sticks where left in the current song, and stays at 0:00 in subsequent songs). It doesn't actually seek. Playback is not affected.
Closing Amarok after triggering this bug causes a segfault (backtrace in comments).

Reproducible: Always

Steps to Reproduce:
Attempt to seek.

Actual Results:  
Progress bar sticks.
Crash on exit.

Expected Results:  
Seeking should work. Progress bar should not break. Should not crash on exit.

I am using the Phonon VLC backend with Amarok, VLC, phonon-vlc and Phonon all built from git. On Kubuntu 10.10.
Comment 1 Sam Lade 2011-02-09 03:17:13 UTC
gdb output:


[Thread 0x7fffbab3f700 (LWP 11660) exited]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5445f44 in QObject::metaObject (this=0x6c2cc0) at .moc/release-shared/moc_qobject.cpp:90
90      .moc/release-shared/moc_qobject.cpp: No such file or directory.
        in .moc/release-shared/moc_qobject.cpp
(gdb) thread apply all bt

Thread 16 (Thread 0x7fffba70e700 (LWP 9769)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff1454334 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x7ffff175f160)
    at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#2  0x00007ffff1454369 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0x7ffff176d234)
    at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#3  0x00007ffff0b50971 in start_thread (arg=<value optimised out>) at pthread_create.c:304
#4  0x00007ffff4b1492d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7fffbb3b3700 (LWP 9763)):
#0  0x00007ffff4b08203 in __poll (fds=<value optimised out>, nfds=<value optimised out>, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fffeeb9c009 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007fffeeb9c45c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007ffff5462193 in QEventDispatcherGlib::processEvents (this=0x1506c40, flags=<value optimised out>)
    at kernel/qeventdispatcher_glib.cpp:415
#4  0x00007ffff5434a02 in QEventLoop::processEvents (this=<value optimised out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
)
    at kernel/qeventloop.cpp:149
#5  0x00007ffff5434dec in QEventLoop::exec (this=0x7fffbb3b2d70, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:201
#6  0x00007ffff533f2fd in QThread::exec (this=<value optimised out>) at thread/qthread.cpp:490
#7  0x00007ffff54145f8 in QInotifyFileSystemWatcherEngine::run (this=0x14ad160)
    at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007ffff534227e in QThreadPrivate::start (arg=0x14ad160) at thread/qthread_unix.cpp:266
#9  0x00007ffff0b50971 in start_thread (arg=<value optimised out>) at pthread_create.c:304
#10 0x00007ffff4b1492d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7fffbd87e700 (LWP 9762)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff5342e3b in wait (this=<value optimised out>, mutex=0x125d870, time=18446744073709551615)
    at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimised out>, mutex=0x125d870, time=18446744073709551615)
    at thread/qwaitcondition_unix.cpp:160
#3  0x00007ffff28b1d64 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x125d520, th=
    0x1283700) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007ffff28b4f6b in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x1283700)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007ffff28b34df in ThreadWeaver::ThreadRunHelper::run (this=0x7fffbd87ddc0, parent=0x125d520, th=0x1283700)
    at ../../../threadweaver/Weaver/Thread.cpp:87
#6  0x00007ffff28b3a38 in ThreadWeaver::Thread::run (this=0x1283700) at ../../../threadweaver/Weaver/Thread.cpp:142
#7  0x00007ffff534227e in QThreadPrivate::start (arg=0x1283700) at thread/qthread_unix.cpp:266
#8  0x00007ffff0b50971 in start_thread (arg=<value optimised out>) at pthread_create.c:304
#9  0x00007ffff4b1492d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7fffbe07f700 (LWP 9761)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff5342e3b in wait (this=<value optimised out>, mutex=0x125d870, time=18446744073709551615)
    at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimised out>, mutex=0x125d870, time=18446744073709551615)
    at thread/qwaitcondition_unix.cpp:160
#3  0x00007ffff28b1d64 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x125d520, 
    th=0x1274920) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007ffff28b4f6b in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x1274920)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007ffff28b4f84 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x1274920)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007ffff28b4f84 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x1274920)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007ffff28b4f84 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x1274920)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#8  0x00007ffff28b4f84 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x1274920)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#9  0x00007ffff28b34df in ThreadWeaver::ThreadRunHelper::run (this=0x7fffbe07edc0, parent=0x125d520, th=0x1274920)
    at ../../../threadweaver/Weaver/Thread.cpp:87
#10 0x00007ffff28b3a38 in ThreadWeaver::Thread::run (this=0x1274920) at ../../../threadweaver/Weaver/Thread.cpp:142
#11 0x00007ffff534227e in QThreadPrivate::start (arg=0x1274920) at thread/qthread_unix.cpp:266
#12 0x00007ffff0b50971 in start_thread (arg=<value optimised out>) at pthread_create.c:304
#13 0x00007ffff4b1492d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#14 0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7fffbe880700 (LWP 9760)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff5342e3b in wait (this=<value optimised out>, mutex=0x125d870, time=18446744073709551615)
    at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimised out>, mutex=0x125d870, time=18446744073709551615)
    at thread/qwaitcondition_unix.cpp:160
#3  0x00007ffff28b1d64 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x125d520, 
    th=0x12680b0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007ffff28b4f6b in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x12680b0)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007ffff28b4f84 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x12680b0)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007ffff28b4f84 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x12680b0)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007ffff28b4f84 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x12680b0)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#8  0x00007ffff28b4f84 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x12680b0)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#9  0x00007ffff28b4f84 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x12680b0)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#10 0x00007ffff28b4f84 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x12680b0)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#11 0x00007ffff28b34df in ThreadWeaver::ThreadRunHelper::run (this=0x7fffbe87fdc0, parent=0x125d520, th=0x12680b0)
    at ../../../threadweaver/Weaver/Thread.cpp:87
#12 0x00007ffff28b3a38 in ThreadWeaver::Thread::run (this=0x12680b0) at ../../../threadweaver/Weaver/Thread.cpp:142
#13 0x00007ffff534227e in QThreadPrivate::start (arg=0x12680b0) at thread/qthread_unix.cpp:266
#14 0x00007ffff0b50971 in start_thread (arg=<value optimised out>) at pthread_create.c:304
#15 0x00007ffff4b1492d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#16 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7fffbf081700 (LWP 9759)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007ffff5342e3b in wait (this=<value optimised out>, mutex=0x125d870, time=18446744073709551615)
    at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimised out>, mutex=0x125d870, time=18446744073709551615)
    at thread/qwaitcondition_unix.cpp:160
#3  0x00007ffff28b1d64 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x125d520, 
    th=0x125dca0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007ffff28b4f6b in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x125dca0)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007ffff28b4f84 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1250300, th=0x125dca0)
    at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007ffff28b34df in ThreadWeaver::ThreadRunHelper::run (this=0x7fffbf080dc0, parent=0x125d520, th=0x125dca0)
    at ../../../threadweaver/Weaver/Thread.cpp:87
#7  0x00007ffff28b3a38 in ThreadWeaver::Thread::run (this=0x125dca0) at ../../../threadweaver/Weaver/Thread.cpp:142
#8  0x00007ffff534227e in QThreadPrivate::start (arg=0x125dca0) at thread/qthread_unix.cpp:266
#9  0x00007ffff0b50971 in start_thread (arg=<value optimised out>) at pthread_create.c:304
#10 0x00007ffff4b1492d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7fffca791700 (LWP 9758)):
#0  0x00007ffff4b08203 in __poll (fds=<value optimised out>, nfds=<value optimised out>, timeout=-1)
    at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fffeeb9c009 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007fffeeb9c45c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007ffff5462193 in QEventDispatcherGlib::processEvents (this=0xa3e150, flags=<value optimised out>)
    at kernel/qeventdispatcher_glib.cpp:415
#4  0x00007ffff5434a02 in QEventLoop::processEvents (this=<value optimised out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
)
    at kernel/qeventloop.cpp:149
#5  0x00007ffff5434dec in QEventLoop::exec (this=0x7fffca790d70, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:201
#6  0x00007ffff533f2fd in QThread::exec (this=<value optimised out>) at thread/qthread.cpp:490
#7  0x00007ffff54145f8 in QInotifyFileSystemWatcherEngine::run (this=0xd6a5a0)
    at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007ffff534227e in QThreadPrivate::start (arg=0xd6a5a0) at thread/qthread_unix.cpp:266
#9  0x00007ffff0b50971 in start_thread (arg=<value optimised out>) at pthread_create.c:304
#10 0x00007ffff4b1492d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fffcbabe700 (LWP 9754)):
#0  0x00007ffff4b0d2c3 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007ffff5411e8d in QProcessManager::run (this=0x7ffff5767f40) at io/qprocess_unix.cpp:245
#2  0x00007ffff534227e in QThreadPrivate::start (arg=0x7ffff5767f40) at thread/qthread_unix.cpp:266
#3  0x00007ffff0b50971 in start_thread (arg=<value optimised out>) at pthread_create.c:304
#4  0x00007ffff4b1492d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fffcc8c1700 (LWP 9752)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fffdc106162 in Thread () from /usr/lib/libvlccore.so.5
#2  0x00007ffff0b50971 in start_thread (arg=<value optimised out>) at pthread_create.c:304
#3  0x00007ffff4b1492d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fffe37037a0 (LWP 9717)):
#0  0x00007ffff5445f44 in QObject::metaObject (this=0x6c2cc0) at .moc/release-shared/moc_qobject.cpp:90
#1  0x00007fffdc1d3d8a in Phonon::VLC::Backend::endConnectionChange (this=0x6c8820, objects=...)
    at /media/disk2/home-expansion/devel/phonon-vlc/vlc/backend.cpp:517
#2  0x00007ffff7ec071c in Phonon::ConnectionTransaction::~ConnectionTransaction (this=0x7fffffffb8a0, 
    __in_chrg=<value optimised out>) at /media/disk2/home-expansion/devel/phonon/phonon/path.cpp:46
#3  0x00007ffff7ebfa5b in Phonon::PathPrivate::executeTransaction (this=0x6cb200, disconnections=..., 
    connections=...) at /media/disk2/home-expansion/devel/phonon/phonon/path.cpp:354
#4  0x00007ffff7ebfea1 in Phonon::PathPrivate::phononObjectDestroyed (this=0x6cb200, mediaNodePrivate=0x67e5a0)
    at /media/disk2/home-expansion/devel/phonon/phonon/path.cpp:408
#5  0x00007ffff7ebd0b9 in Phonon::MediaNodePrivate::~MediaNodePrivate (this=0x67e5a0, 
    __in_chrg=<value optimised out>) at /media/disk2/home-expansion/devel/phonon/phonon/medianode.cpp:71
#6  0x00007ffff7ebcdc1 in Phonon::MediaObjectPrivate::~MediaObjectPrivate (this=0x67e5a0, 
    __in_chrg=<value optimised out>) at /media/disk2/home-expansion/devel/phonon/phonon/mediaobject_p.h:42
#7  0x00007ffff7ebcf2e in Phonon::MediaNode::~MediaNode (this=0x673e60, __in_chrg=<value optimised out>)
    at /media/disk2/home-expansion/devel/phonon/phonon/medianode.cpp:57
#8  0x00007ffff7eb8aa1 in Phonon::MediaObject::~MediaObject (this=0x673e50, __in_chrg=<value optimised out>)
    at /media/disk2/home-expansion/devel/phonon/phonon/mediaobject.cpp:65
#9  0x00007ffff72af201 in EngineController::~EngineController (this=0x67f5f0, __in_chrg=<value optimised out>)
    at /media/disk2/home-expansion/devel/amarok/src/EngineController.cpp:113
#10 0x00007ffff73e0d12 in Amarok::DefaultApplicationController::shutdown (this=0x5ab5d0)
    at /media/disk2/home-expansion/devel/amarok/src/statemanagement/DefaultApplicationController.cpp:60
#11 0x00007ffff729c792 in App::~App (this=0x7fffffffbc00, __in_chrg=<value optimised out>)
    at /media/disk2/home-expansion/devel/amarok/src/App.cpp:276
#12 0x000000000040ce5d in main (argc=3, argv=0x7fffffffe128)
    at /media/disk2/home-expansion/devel/amarok/src/main.cpp:282
Comment 2 Myriam Schweingruber 2011-02-09 13:34:10 UTC
Did you build phonon from git master?
Comment 3 Sam Lade 2011-02-09 13:51:17 UTC
Yes, Phonon and the backend are built from git master.
Comment 4 Myriam Schweingruber 2011-02-10 12:38:02 UTC
Thank you for the feedback.
Comment 5 Harald Sitter 2011-02-24 10:17:19 UTC
I am pretty sure that happend right after you changed the backend and did not restart Amarok, right?
If so, then this is  a duplicate of https://bugs.kde.org/show_bug.cgi?id=210427
Comment 6 Sam Lade 2011-02-24 13:09:49 UTC
This wasn't linked to backend changes, no; it was a crash on exit regardless. It's been fixed in the last few days, though.
Comment 7 Myriam Schweingruber 2011-04-27 21:33:59 UTC
Reassigning to the new bugzilla product for better bug tracing of the various
backends. Sorry for the noise.
Comment 8 Myriam Schweingruber 2011-11-23 14:04:23 UTC
*** Bug 268004 has been marked as a duplicate of this bug. ***