Bug #1156
Deadlock when playing a file that extends beyond end of segment
100%
Description
I'm using Arch Linux's build here:
https://archlinux.org/packages/extra/x86_64/audacious/
https://archlinux.org/packages/extra/x86_64/audacious-plugins/
Attached is a file that triggers this, as a workaround I reformatted these files to ogg using ffmpeg.
History
#1 Updated by Ketsui Tetsuo almost 3 years ago
To clarify, Audacious only hangs when reaching the end of these files.
#2 Updated by John Lindgren almost 3 years ago
I cannot reproduce any deadlock. The file simply fails to play with an error (ffplay gives the same error).
#3 Updated by John Lindgren almost 3 years ago
What is the backtrace when the hang occurs?
#4 Updated by Ketsui Tetsuo almost 3 years ago
@GLIBC_2.3.2 () at /usr/lib/libc.so.6
Thread 19 (Thread 0x7f8f9d6e7640 (LWP 36541) "audaciou:shlo1"):
#0 0x00007f8ff3aa615a in __futex_abstimed_wait_common () at /usr/lib/libc.so.6
#1 0x00007f8ff3aa8960 in pthread_cond_wait
#2 0x00007f8faa50b51c in () at /usr/lib/dri/radeonsi_dri.so
#3 0x00007f8faa50456c in () at /usr/lib/dri/radeonsi_dri.so
#4 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#5 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 18 (Thread 0x7f8fa8b2c640 (LWP 36540) "audaciou:shlo0"):
#0 0x00007f8ff3aa615a in __futex_abstimed_wait_common () at /usr/lib/libc.so.6
#1 0x00007f8ff3aa8960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2 0x00007f8faa50b51c in () at /usr/lib/dri/radeonsi_dri.so
#3 0x00007f8faa50456c in () at /usr/lib/dri/radeonsi_dri.so
#4 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#5 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 17 (Thread 0x7f8fa932d640 (LWP 36539) "audacious:sh2"):
#0 0x00007f8ff3aa615a in __futex_abstimed_wait_common () at /usr/lib/libc.so.6
#1 0x00007f8ff3aa8960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2 0x00007f8faa50b51c in () at /usr/lib/dri/radeonsi_dri.so
#3 0x00007f8faa50456c in () at /usr/lib/dri/radeonsi_dri.so
#4 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#5 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 16 (Thread 0x7f8fa9b2e640 (LWP 36538) "audacious:sh1"):
#0 0x00007f8ff3aa615a in __futex_abstimed_wait_common () at /usr/lib/libc.so.6
#1 0x00007f8ff3aa8960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2 0x00007f8faa50b51c in () at /usr/lib/dri/radeonsi_dri.so
#3 0x00007f8faa50456c in () at /usr/lib/dri/radeonsi_dri.so
#4 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#5 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 15 (Thread 0x7f8faa32f640 (LWP 36537) "audacious:sh0"):
#0 0x00007f8ff3aa615a in __futex_abstimed_wait_common () at /usr/lib/libc.so.6
#1 0x00007f8ff3aa8960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2 0x00007f8faa50b51c in () at /usr/lib/dri/radeonsi_dri.so
#3 0x00007f8faa50456c in () at /usr/lib/dri/radeonsi_dri.so
#4 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#5 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 14 (Thread 0x7f8fbcf8c640 (LWP 36536) "audacio:disk$0"):
#0 0x00007f8ff3aa615a in __futex_abstimed_wait_common () at /usr/lib/libc.so.6
#1 0x00007f8ff3aa8960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2 0x00007f8faa50b51c in () at /usr/lib/dri/radeonsi_dri.so
#3 0x00007f8faa50456c in () at /usr/lib/dri/radeonsi_dri.so
#4 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#5 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 13 (Thread 0x7f8fbd78d640 (LWP 36535) "audacious:cs0"):
#0 0x00007f8ff3aa615a in __futex_abstimed_wait_common () at /usr/lib/libc.so.6
#1 0x00007f8ff3aa8960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2 0x00007f8faa50b51c in () at /usr/lib/dri/radeonsi_dri.so
#3 0x00007f8faa50456c in () at /usr/lib/dri/radeonsi_dri.so
#4 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#5 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 12 (Thread 0x7f8fbdf8e640 (LWP 36534) "Thread (pooled)"):
#0 0x00007f8ff3aa615a in __futex_abstimed_wait_common () at /usr/lib/libc.so.6
#1 0x00007f8ff3aa8c64 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2 0x00007f8ff35ddc84 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt5Core.so.5
#3 0x00007f8ff35dab47 in () at /usr/lib/libQt5Core.so.5
#4 0x00007f8ff35d68cc in () at /usr/lib/libQt5Core.so.5
#5 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#6 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 11 (Thread 0x7f8fbe78f640 (LWP 36533) "Thread (pooled)"):
#0 0x00007f8ff3aa615a in __futex_abstimed_wait_common () at /usr/lib/libc.so.6
#1 0x00007f8ff3aa8c64 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2 0x00007f8ff35ddc84 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt5Core.so.5
#3 0x00007f8ff35dab47 in () at /usr/lib/libQt5Core.so.5
#4 0x00007f8ff35d68cc in () at /usr/lib/libQt5Core.so.5
#5 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#6 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 10 (Thread 0x7f8fbef90640 (LWP 36532) "Thread (pooled)"):
#0 0x00007f8ff3aa615a in __futex_abstimed_wait_common () at /usr/lib/libc.so.6
#1 0x00007f8ff3aa8c64 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2 0x00007f8ff35ddc84 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt5Core.so.5
#3 0x00007f8ff35dab47 in () at /usr/lib/libQt5Core.so.5
#4 0x00007f8ff35d68cc in () at /usr/lib/libQt5Core.so.5
#5 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#6 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 9 (Thread 0x7f8fbf791640 (LWP 36531) "Thread (pooled)"):
#0 0x00007f8ff3aa615a in __futex_abstimed_wait_common () at /usr/lib/libc.so.6
#1 0x00007f8ff3aa8c64 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2 0x00007f8ff35ddc84 in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt5Core.so.5
#3 0x00007f8ff35dab47 in () at /usr/lib/libQt5Core.so.5
#4 0x00007f8ff35d68cc in () at /usr/lib/libQt5Core.so.5
#5 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#6 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 8 (Thread 0x7f8fdb44c640 (LWP 36530) "QDBusConnection"):
#0 0x00007f8ff3b222af in poll () at /usr/lib/libc.so.6
#1 0x00007f8ff3f14086 in () at /usr/lib/libglib-2.0.so.0
#2 0x00007f8ff3ebb455 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3 0x00007f8ff37cb08a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4 0x00007f8ff377739b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5 0x00007f8ff35d9a56 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6 0x00007f8fdbe713a9 in () at /usr/lib/libQt5DBus.so.5
#7 0x00007f8ff35d68cc in () at /usr/lib/libQt5Core.so.5
#8 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#9 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 7 (Thread 0x7f8fdbd3f640 (LWP 36529) "QXcbEventQueue"):
#0 0x00007f8ff3b222af in poll () at /usr/lib/libc.so.6
#1 0x00007f8ff003063b in () at /usr/lib/libxcb.so.1
#2 0x00007f8ff003237b in xcb_wait_for_event () at /usr/lib/libxcb.so.1
#3 0x00007f8fdbf2fb12 in () at /usr/lib/libQt5XcbQpa.so.5
#4 0x00007f8ff35d68cc in () at /usr/lib/libQt5Core.so.5
#5 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#6 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 6 (Thread 0x7f8fe9d2c640 (LWP 36528) "audacious"):
#0 0x00007f8ff3b1e1ec in read () at /usr/lib/libc.so.6
#1 0x00007f8ff3aa12d8 in _GI_IO_file_xsgetn () at /usr/lib/libc.so.6
#2 0x00007f8ff3b3d250 in _fread_chk () at /usr/lib/libc.so.6
#3 0x00007f8ff420e22b in fread (_stream=<optimized out>, _n=4096, __size=1, __ptr=0x7f8fd404a400) at /usr/include/bits/stdio2.h:296
sz = 18446744073709551615
result = <optimized out>
#4 LocalFile::fread(void*, long, long) (this=0x7f8fd4046900, ptr=0x7f8fd404a400, size=1, nitems=4096) at /tmp/makepkg/audacious/src/audacious-4.1/src/libaudcore/vfs_local.cc:178
result = <optimized out>
#5 0x00007f8ff4201ca3 in ProbeBuffer::fread(void*, long, long) (this=0x7f8fd4044700, buffer=0x7f8fd404a400, size=1, count=<optimized out>) at /tmp/makepkg/audacious/src/audacious-4.1/src/libaudcore/probe-buffer.cc:84
total = 0
remain = 4096
#6 0x00007f8ff420dda1 in VFSFile::fread(void*, long, long) (this=0x7f8fe9d2bc90, ptr=<optimized out>, size=size@entry=1, nmemb=4096) at /tmp/makepkg/audacious/src/audacious-4.1/src/libaudcore/vfs.cc:128
readed = <optimized out>
#7 0x00007f8fbfeb5ac6 in read_cb(void*, unsigned char*, int) (file=<optimized out>, buf=<optimized out>, size=<optimized out>) at /tmp/makepkg/audacious-plugins/src/audacious-plugins-4.1/src/ffaudio/ffaudio-io.cc:26
#8 0x00007f8fa80f5879 in avio_r8 () at /usr/lib/libavformat.so.59
#9 0x00007f8fa8174a9c in () at /usr/lib/libavformat.so.59
#10 0x00007f8fa8177633 in () at /usr/lib/libavformat.so.59
#11 0x00007f8fa811abe6 in () at /usr/lib/libavformat.so.59
#12 0x00007f8fa811b4fb in () at /usr/lib/libavformat.so.59
#13 0x00007f8fa811c2f5 in av_read_frame () at /usr/lib/libavformat.so.59
#14 0x00007f8fbfeb63cf in FFaudio::play(char const*, VFSFile&) (this=<optimized out>, filename=<optimized out>, file=<optimized out>) at /tmp/makepkg/audacious-plugins/src/audacious-plugins-4.1/src/ffaudio/ffaudio-core.cc:546
seek_value = <optimized out>
pkt = {<AVPacket> = {buf = 0x0, pts = -9223372036854775808, dts = -9223372036854775808, data = 0x0, size = 0, stream_index = 0, flags = 0, side_data = 0x0, side_data_elems = 0, duration = 0, pos = -1, opaque = 0x0, opaque_ref = 0x0, time_base = {num = 0, den = 1}}, <No data fields>}
ret = <optimized out>
tmp = {buf = 0x7f8fd4110180, pts = 209034, dts = 209034, data = 0x7f8fd404c194 "\210\177", size = 403, stream_index = 0, flags = 1, side_data = 0x7f8fd4033e50, side_data_elems = 1, duration = 20, pos = 3505206, opaque = 0x0, opaque_ref = 0x0, time_base = {num = 0, den = 1}}
ic = {ptr = 0x7f8fd404bdc0}
cinfo = {stream_idx = 0, stream = 0x7f8fd40d17c0, codec = 0x7f8f7f9e34e0}
context = {ptr = 0x7f8fd40e8cc0}
out_fmt = <optimized out>
planar = <optimized out>
errcount = 0
eof = <optimized out>
buf = {<IndexBase> = {m_data = 0x7f8fd40f4850, m_len = 7680, m_size = 7680}, <No data fields>}
#15 0x00007f8ff41f4555 in run_playback () at ../libaudcore/objects.h:161
dec = {filename = {raw = 0x5611f999ee40 "file:///home/ketsui/Downloads/There%20Tonight-0SozLHr7NiI.webm"}, ip = 0x7f8fbfeba020 <aud_plugin_instance>, file = {m_filename = {raw = 0x5611f999ee40 "file:///home/ketsui/Downloads/There%20Tonight-0SozLHr7NiI.webm"}, m_error = {raw = 0x0}, m_impl = {ptr = 0x7f8fd4044700}}, error = {raw = 0x0}}
play = true
mh = {_M_device = 0x7f8ff422dca0 <_ZL5mutex.lto_priv.8>, _M_owns = false}
#16 playback_thread() () at /tmp/makepkg/audacious/src/audacious-4.1/src/libaudcore/playback.cc:412
play = true
mh = {_M_device = 0x7f8ff422dca0 <_ZL5mutex.lto_priv.8>, _M_owns = false}
#17 0x00007f8ff3d184d4 in std::execute_native_thread_routine(void*) (_p=0x5611f998f810) at /usr/src/debug/gcc/libstdc++-v3/src/c++11/thread.cc:82
#18 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#19 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 5 (Thread 0x7f8fea7fc640 (LWP 36527) "audacious"):
#0 0x00007f8ff3a5f24a in sigtimedwait () at /usr/lib/libc.so.6
#1 0x00007f8ff3a5e8ec in sigwait () at /usr/lib/libc.so.6
#2 0x00005611f7f7a189 in signal_thread() () at /tmp/makepkg/audacious/src/audacious-4.1/src/audacious/signals.cc:35
signal = 0
#3 0x00007f8ff3d184d4 in std::execute_native_thread_routine(void*) (__p=0x5611f992f560) at /usr/src/debug/gcc/libstdc++-v3/src/c++11/thread.cc:82
#4 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#5 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 4 (Thread 0x7f8feaffd640 (LWP 36526) "gdbus"):
#0 0x00007f8ff3b222af in poll () at /usr/lib/libc.so.6
#1 0x00007f8ff3f14086 in () at /usr/lib/libglib-2.0.so.0
#2 0x00007f8ff3ebd433 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#3 0x00007f8ff410914c in () at /usr/lib/libgio-2.0.so.0
#4 0x00007f8ff3eed815 in () at /usr/lib/libglib-2.0.so.0
#5 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#6 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 3 (Thread 0x7f8febfff640 (LWP 36524) "gmain"):
#0 0x00007f8ff3b222af in poll () at /usr/lib/libc.so.6
#1 0x00007f8ff3f14086 in () at /usr/lib/libglib-2.0.so.0
#2 0x00007f8ff3ebb455 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3 0x00007f8ff3ebb4a2 in () at /usr/lib/libglib-2.0.so.0
#4 0x00007f8ff3eed815 in () at /usr/lib/libglib-2.0.so.0
#5 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#6 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 2 (Thread 0x7f8ff09c4640 (LWP 36523) "audacious"):
#0 0x00007f8ff3b222af in poll () at /usr/lib/libc.so.6
#1 0x00007f8ff3f14086 in () at /usr/lib/libglib-2.0.so.0
#2 0x00007f8ff3ebd433 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#3 0x00005611f7f7b3ce in dbus_server_run() () at /tmp/makepkg/audacious/src/audacious-4.1/src/audacious/dbus-server.cc:1156
#4 0x00007f8ff3d184d4 in std::execute_native_thread_routine(void*) (__p=0x5611f992eb10) at /usr/src/debug/gcc/libstdc++-v3/src/c++11/thread.cc:82
#5 0x00007f8ff3aa95c2 in start_thread () at /usr/lib/libc.so.6
#6 0x00007f8ff3b2e584 in clone () at /usr/lib/libc.so.6
Thread 1 (Thread 0x7f8ff0db1040 (LWP 36522) "audacious"):
#0 0x00007f8ff3b222af in poll () at /usr/lib/libc.so.6
#1 0x00007f8ff3f14086 in () at /usr/lib/libglib-2.0.so.0
#2 0x00007f8ff3ebb455 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3 0x00007f8ff37cb08a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4 0x00007f8ff377739b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5 0x00007f8ff3782ad7 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#6 0x00007f8ff42031b5 in interface_run() () at /tmp/makepkg/audacious/src/audacious-4.1/src/libaudcore/interface.cc:162
autosave = {_running = true}
#7 aud_run() () at /tmp/makepkg/audacious/src/audacious-4.1/src/libaudcore/runtime.cc:348
autosave = {_running = true}
#8 0x00005611f7f77c5c in main(int, char**) (argc=<optimized out>, argv=0x7ffd177175c8) at /tmp/makepkg/audacious/src/audacious-4.1/src/audacious/main.cc:420
at_idle_func = {_running = false}
@
#5 Updated by John Lindgren almost 3 years ago
- % Done changed from 0 to 100
- Target version set to 4.2
- Status changed from New to Closed
- Category set to plugins/ffaudio
Okay I was able to reproduce this; it should be fixed now. Thanks for the report!
https://github.com/audacious-media-player/audacious-plugins/commit/f8d45931a3a3c2402dad5a1d045ec48d2d19dd12