savonet / liquidsoap

Liquidsoap is a statically typed scripting general-purpose language with dedicated operators and backend for all thing media, streaming, file generation, automation, HTTP backend and more.
http://liquidsoap.info
GNU General Public License v2.0
1.4k stars 130 forks source link

Liquidsoap freezes with some files - only when in daemon mode #53

Closed mkonecny closed 6 years ago

mkonecny commented 11 years ago

The script:

path = "/home/martin/tmp"
set("log.file.path", string.concat([path, "hang.log"]))
set("server.telnet", true)
set("server.telnet.port", 1234)
set("init.daemon.pidfile.path", string.concat([path, "hang.pid"]))

queue = request.equeue(id="queue")
output.pulseaudio(fallible=true, queue)

The file: https://dl.dropbox.com/u/256410/airtime/rayj.mp3

Instructions:

Part 1: Run as regular process

Run

$ liquidsoap hang.liq

Telnet in and do

queue.push rayj.mp3

Notice music is playing.

Part 2: Run as daemon

Run

$ liquidsoap -d hang.liq

Telnet in and do

queue.push rayj.mp3

Liquidsoap process compiled from 36f750a is now frozen

toots commented 11 years ago

I can totally reproduce on a linux box.

toots commented 11 years ago

@smimram Can you reproduce? I think you know pulseaudio better than me, maybe you have an insight of the bug?

Also, @mkonecny, can you possibly use output.ao to mitigate the issue while we look for a fix?

Thanks y'all!

smimram commented 11 years ago

Here it's more fun. Without -d it works as expected. With -d I get:

$ ./liquidsoap -v -d hang.liq
environment reference count went negative

Never seen this one yet... but it's a good starting point for investigation...

smimram commented 11 years ago

However, sorry but Liquidsoap works as expected with -d here (apart from the above message)...

toots commented 11 years ago

Have you pushed the track through telnet after starting the daemon?

smimram commented 11 years ago

Yes...

toots commented 11 years ago

:poop:

smimram commented 11 years ago

Can't you have a stacktrace on your side ?

toots commented 11 years ago

Yeah, I'm gonna look at it very closely ASAP. I was hoping you could repro because my linux box is actually a virtual machine now..

mkonecny commented 11 years ago

Hey Romain, I don't think it's related to PulseAudio. I just made that output type for convenience purposes. It should crash with output.icecast as well. I'll verify this for you as soon as I can.

smimram commented 11 years ago

A dummy output would be even better! Le 4 avr. 2013 17:23, "Martin Konecny" notifications@github.com a écrit :

Hey Romain, I don't think it's related to PulseAudio. I just made that output type for convenience purposes. It should crash with output.icecast as well. I'll verify this for you as soon as I can.

— Reply to this email directly or view it on GitHubhttps://github.com/savonet/liquidsoap/issues/53#issuecomment-15903917 .

mkonecny commented 11 years ago

Confirmed that it hangs/freezes with output.dummy. I'm sure you guys are seeing this in non-daemon mode as output:

...
TagLib: String::prepare() - Unicode conversion error.
TagLib: String::prepare() - Unicode conversion error.
TagLib: String::prepare() - Unicode conversion error.
TagLib: String::prepare() - Unicode conversion error.
TagLib: String::prepare() - Unicode conversion error.
...

?

smimram commented 11 years ago

Not sure but it should not be a real problem. Could you please try to do the following while the liquidsoap process is hanged?

Find the PID of liquidsoap:

$ ps ux | grep liq
smimram  27092  0.7  0.3 1128876 31268 ?       Sl   19:23   0:00 ./liquidsoap -d hang.liq

(it's 27092 here).

Attach gdb to the process:

gdb --pid=27092

Show the stacktrace for all processes and send us the output:

(gdb) thread apply all bt
Thread 7 (Thread 0x7fde25edb700 (LWP 27093)):
#0  0x00007fde559d4573 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00000000007fc8d6 in unix_select ()
#2  0x000000000080f434 in caml_c_call ()
#3  0x000000000309ae00 in ?? ()
#4  0x0000000000000001 in ?? ()
...

(please send us all pages obtained by pressing enter).

Thanks!

mkonecny commented 11 years ago

Samuel, I get a lot of output saying "no debugging symbols found". I'm sure I need to compile Liquidsoap with debugging enabled. but it looks like it is being compiled with the "-g" param???

ocamlc -c -cc "gcc" -ccopt "-fPIC -g -O2 -I.. -g -Wall -O3 \

Little confused here... Here's the output atm:

http://dpaste.org/e5fXs/raw/

mkonecny commented 11 years ago

Sorry, I missed the "thread apply all bt"

(gdb) thread apply all bt

Thread 6 (Thread 0xb67f7b40 (LWP 20315)):
#0  0xb7782424 in __kernel_vsyscall ()
#1  0xb71a596b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x0827bc11 in caml_condition_wait ()
#3  0x081dcb87 in camlDuppy__queue_1183 ()
#4  0xb683c1ec in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 5 (Thread 0xb55ffb40 (LWP 20317)):
#0  0xb7782424 in __kernel_vsyscall ()
#1  0xb71a596b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x0827bc11 in caml_condition_wait ()
#3  0x081dcb87 in camlDuppy__queue_1183 ()
#4  0xb683c1d4 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 4 (Thread 0xb4bffb40 (LWP 20318)):
#0  0xb7782424 in __kernel_vsyscall ()
#1  0xb70b4d61 in select () at ../sysdeps/unix/syscall-template.S:82
#2  0x0827ed0f in unix_select ()
#3  0x081da71d in camlDuppy__f_1161 ()
#4  0xb683bbbc in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 3 (Thread 0xb41ffb40 (LWP 20319)):
#0  0xb7782424 in __kernel_vsyscall ()
#1  0xb71a596b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x0827bc11 in caml_condition_wait ()
#3  0x081a911f in camlTutils__fun_1441 ()
#4  0xb6cdd818 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 2 (Thread 0xb37ffb40 (LWP 20320)):
#0  0xb7782424 in __kernel_vsyscall ()
#1  0xb70b4d61 in select () at ../sysdeps/unix/syscall-template.S:82
#2  0x0827ed0f in unix_select ()
#3  0x08228681 in camlThread__delay_1049 ()
#4  0x00000001 in ?? ()
#5  0x00000001 in ?? ()
#6  0xb6def10c in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 1 (Thread 0xb6e11700 (LWP 20314)):
#0  0xb7782424 in __kernel_vsyscall ()
#1  0xb71a9be1 in do_sigwait (set=0x82a5ff4, sig=0xbf9044fc) at ../nptl/sysdeps/unix/sysv/linux/../../../../../sysdeps/unix/sysv/linux/sigwait.c:63
#2  0xb71a9c75 in __sigwait (set=0xbf90447c, sig=0xbf9044fc) at ../nptl/sysdeps/unix/sysv/linux/../../../../../sysdeps/unix/sysv/linux/sigwait.c:100
#3  0x0827b3a5 in caml_wait_signal ()
#4  0x081e2556 in camlDtools__wait_signal_1337 ()
#5  0xb6dbfc64 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
mkonecny commented 11 years ago

May be related:

http://comments.gmane.org/gmane.comp.audio.liquidsoap.user/1439

Similar symptoms (telnet interface hangs), as well as running with -d flag.

mkonecny commented 11 years ago

Just ran one more time, and now I get different message:

(gdb) thread apply all bt

Thread 6 (Thread 0xb67f7b40 (LWP 20315)):
#0  0xb7782424 in __kernel_vsyscall ()
#1  0xb71a596b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x0827a969 in st_masterlock_acquire ()
#3  0x0827ac85 in caml_thread_leave_blocking_section ()
#4  0x082828b8 in caml_leave_blocking_section ()
#5  0x0827bc18 in caml_condition_wait ()
#6  0x081dcb87 in camlDuppy__queue_1183 ()
#7  0xb683c1ec in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 5 (Thread 0xb55ffb40 (LWP 20317)):
#0  0xb7782424 in __kernel_vsyscall ()
#1  0xb71a85a2 in __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S:142
#2  0xb71ab740 in _L_cond_lock_682 () from /lib/i386-linux-gnu/libpthread.so.0
#3  0xb71ab4c1 in __pthread_mutex_cond_lock (mutex=0x84e5df0) at ../nptl/pthread_mutex_lock.c:61
#4  0xb71a5a1c in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:255
#5  0x0827bc11 in caml_condition_wait ()
#6  0x081dcb87 in camlDuppy__queue_1183 ()
#7  0xb683c1d4 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 4 (Thread 0xb4bffb40 (LWP 20318)):
#0  0xb7782424 in __kernel_vsyscall ()
#1  0xb70ab46b in write () at ../sysdeps/unix/syscall-template.S:82
#2  0xb703dba5 in _IO_new_file_write (f=0xb7173980, data=0xb7672737, n=8) at fileops.c:1289
#3  0xb703da84 in new_do_write (fp=0xb7173980, data=0xb7672737 "TagLib: ", to_do=8) at fileops.c:543
#4  0xb703e79a in _IO_new_file_xsputn (n=8, data=0xb7672737, f=0xb7173980) at fileops.c:1383
#5  _IO_new_file_xsputn (f=0xb7173980, data=0xb7672737, n=8) at fileops.c:1305
#6  0xb70337f8 in _IO_fwrite (buf=0xb7672737, size=1, count=8, fp=0xb7173980) at iofwrite.c:45
#7  0xb754e076 in __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::xsputn(char const*, int) () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#8  0xb754f9ab in std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int) ()
   from /usr/lib/i386-linux-gnu/libstdc++.so.6
#9  0xb754fc3e in std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*) () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#10 0xb7649de6 in ?? () from /usr/lib/i386-linux-gnu/libtag.so.1
#11 0xb764285f in TagLib::String::prepare(TagLib::String::Type) () from /usr/lib/i386-linux-gnu/libtag.so.1
#12 0xb7640521 in TagLib::String::String(TagLib::ByteVector const&, TagLib::String::Type) () from /usr/lib/i386-linux-gnu/libtag.so.1
#13 0xb76436a6 in TagLib::StringList::StringList(TagLib::ByteVectorList const&, TagLib::String::Type) () from /usr/lib/i386-linux-gnu/libtag.so.1
#14 0xb763dbcd in TagLib::APE::Item::parse(TagLib::ByteVector const&) () from /usr/lib/i386-linux-gnu/libtag.so.1
#15 0xb763aabf in TagLib::APE::Tag::parse(TagLib::ByteVector const&) () from /usr/lib/i386-linux-gnu/libtag.so.1
#16 0xb763a7d8 in TagLib::APE::Tag::read() () from /usr/lib/i386-linux-gnu/libtag.so.1
#17 0xb7639691 in TagLib::APE::Tag::Tag(TagLib::File*, long) () from /usr/lib/i386-linux-gnu/libtag.so.1
#18 0xb760d7bb in TagLib::MPEG::File::read(bool, TagLib::AudioProperties::ReadStyle) () from /usr/lib/i386-linux-gnu/libtag.so.1
#19 0xb760c306 in TagLib::MPEG::File::File(char const*, bool, TagLib::AudioProperties::ReadStyle) () from /usr/lib/i386-linux-gnu/libtag.so.1
#20 0xb766e6c0 in TagLib::FileRef::create(char const*, bool, TagLib::AudioProperties::ReadStyle) () from /usr/lib/i386-linux-gnu/libtag.so.1
#21 0x08263255 in caml_taglib_file_new ()
#22 0x081b29f6 in camlTaglib__open_file_1070 ()
#23 0x3c140e65 in ?? ()
#24 0xb6dea7c8 in ?? ()
#25 0x616d2f65 in ?? ()
#26 0x6e697472 in ?? ()
#27 0x706d742f in ?? ()
#28 0x7961722f in ?? ()
#29 0x706d2e6a in ?? ()
#30 0x02000033 in ?? ()
#31 0x00000700 in ?? ()
---Type <return> to continue, or q <return> to quit---
#32 0x082a689c in caml_bucket_Division_by_zero ()
#33 0x000030f7 in ?? ()
#34 0x080d9260 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 3 (Thread 0xb41ffb40 (LWP 20319)):
#0  0xb7782424 in __kernel_vsyscall ()
#1  0xb71a596b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x0827bc11 in caml_condition_wait ()
#3  0x081a911f in camlTutils__fun_1441 ()
#4  0xb6cdd818 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 2 (Thread 0xb37ffb40 (LWP 20320)):
#0  0xb7782424 in __kernel_vsyscall ()
#1  0xb71a596b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x0827a969 in st_masterlock_acquire ()
#3  0x0827ac85 in caml_thread_leave_blocking_section ()
#4  0x082828b8 in caml_leave_blocking_section ()
#5  0x0827ed16 in unix_select ()
#6  0x08228681 in camlThread__delay_1049 ()
#7  0x00000001 in ?? ()
#8  0x00000001 in ?? ()
#9  0xb6dd45a8 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 1 (Thread 0xb6e11700 (LWP 20314)):
#0  0xb7782424 in __kernel_vsyscall ()
#1  0xb71a9be1 in do_sigwait (set=0x82a5ff4, sig=0xbf9044fc) at ../nptl/sysdeps/unix/sysv/linux/../../../../../sysdeps/unix/sysv/linux/sigwait.c:63
#2  0xb71a9c75 in __sigwait (set=0xbf90447c, sig=0xbf9044fc) at ../nptl/sysdeps/unix/sysv/linux/../../../../../sysdeps/unix/sysv/linux/sigwait.c:100
#3  0x0827b3a5 in caml_wait_signal ()
#4  0x081e2556 in camlDtools__wait_signal_1337 ()
#5  0xb6dbfc64 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
toots commented 11 years ago

Hi @mkonecny

I believe that savonet/ocaml-taglib@4c28e5d should fix this issue. Could you please confirm?

Thanks!

mkonecny commented 11 years ago

Hey Romain, confirmed fixed! So the problem was taglib writing too much output which causes a deadlock? Interesting problem, still doesn't explain to me why it only happened in daemon mode. Is it because no tty reading the output buffer, it hangs when the output buffer is full???

toots commented 11 years ago

Great news! Honestly, the whole issue is a bit worrisome so I will try to keep an eye on it. The reason it appears in daemon mode and not in regular mode is this: https://github.com/savonet/liquidsoap/blob/master/src/tools/tutils.ml#L238 This a duppy tasks that reads data from stderr and stdout and redirects it to the proper logs.

This seems to conflict with ocaml-duppy writting a lot of data to stderr while having the OCaml runtime lock. Releasing the runtime before printing this data fixed that deadlock.

This is not satisfying tho as I do not understand why this deadlock happen. I looked at taglib's code and it is really simple:

void TagLib::debug(const String &s)
{
  std::cerr << "TagLib: " << s << std::endl;
}

Also, the deadlock does not happen if I write a small amount of data to stderr, like a single line.

Thus, it seems to me that we are still at risk of any other binding or similar C code spitting out a lot of data to stderr in daemon mode while holding the OCaml runtime lock.

@dbaelde, @smimram: do you have an idea on this?

smimram commented 11 years ago

No idea unfortunately... Anyway, most of the bindings are in blocking sections aren't they?

dbaelde commented 11 years ago

Nice catch! It makes it really crucial to make sure we release the OCaml runtime lock whenever something non-trivial happens. Like Sam says, this should already be the case, so this is not so bad and we may not need any radical change here... Otherwise the only ideas I have is (1) lame, but we may be able to increase stderr's buffer (2) heavier, re-route stderr like we do, but to a pipe to another process.. where the whole dtools logger would run :|

On Mon, Apr 8, 2013 at 9:24 AM, Samuel Mimram notifications@github.comwrote:

No idea unfortunately... Anyway, most of the bindings are in blocking sections aren't they?

— Reply to this email directly or view it on GitHubhttps://github.com/savonet/liquidsoap/issues/53#issuecomment-16036107 .

David

Smarre commented 11 years ago

Hi,

I got similar error, but this time related to FLAC (should be open new ticket instead?)

I’m not running this in daemon mode, but I do have additional log in use in addition to stdout logging. I’m going to try this without the log now.

Thread 8 (Thread 0x7f4c6c3f8700 (LWP 17555)):
#0  0x00007f4c6d550924 in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00000000007fb3c0 in caml_condition_wait ()
#2  0x00000000007414b2 in camlDuppy__queue_1114 ()
#3  0x0000000000702d1e in camlTutils__queue_1188 ()
#4  0x00000000007025ca in camlTutils__fun_1345 ()
#5  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#6  0x0000000000813146 in caml_start_program ()
#7  0x00000000007fa7be in caml_thread_start ()
#8  0x00007f4c6d54cdce in start_thread () from /lib64/libpthread.so.0
#9  0x00007f4c6ce6932d in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7f4c6bbf7700 (LWP 17556)):
#0  0x00007f4c6ce62213 in select () from /lib64/libc.so.6
#1  0x00000000007fa381 in caml_thread_tick ()
#2  0x00007f4c6d54cdce in start_thread () from /lib64/libpthread.so.0
#3  0x00007f4c6ce6932d in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7f4c6b3f6700 (LWP 17557)):
#0  0x00007f4c6d550924 in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00000000007fb3c0 in caml_condition_wait ()
#2  0x00000000007414b2 in camlDuppy__queue_1114 ()
#3  0x0000000000702d1e in camlTutils__queue_1188 ()
#4  0x00000000007025ca in camlTutils__fun_1345 ()
#5  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#6  0x0000000000813146 in caml_start_program ()
#7  0x00000000007fa7be in caml_thread_start ()
#8  0x00007f4c6d54cdce in start_thread () from /lib64/libpthread.so.0
#9  0x00007f4c6ce6932d in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7f4c6abf5700 (LWP 17558)):
#0  0x00007f4c6ce62213 in select () from /lib64/libc.so.6
#1  0x00000000007fda7e in unix_select ()
#2  0x000000000073e7b3 in camlDuppy__f_1092 ()
#3  0x0000000000740e04 in camlDuppy__process_1083 ()
#4  0x0000000000741426 in camlDuppy__queue_1114 ()
#5  0x0000000000702cdb in camlTutils__queue_1188 () 
#6  0x00000000007025ca in camlTutils__fun_1345 ()
#7  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#8  0x0000000000813146 in caml_start_program ()
#9  0x00000000007fa7be in caml_thread_start ()
#10 0x00007f4c6d54cdce in start_thread () from /lib64/libpthread.so.0
#11 0x00007f4c6ce6932d in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7f4c6a3f4700 (LWP 17559)):
#0  0x00007f4c6d550924 in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00000000007fb3c0 in caml_condition_wait ()
#2  0x00000000007414b2 in camlDuppy__queue_1114 ()
#3  0x0000000000702cdb in camlTutils__queue_1188 ()
#4  0x00000000007025ca in camlTutils__fun_1345 ()
#5  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#6  0x0000000000813146 in caml_start_program ()
#7  0x00000000007fa7be in caml_thread_start ()
#8  0x00007f4c6d54cdce in start_thread () from /lib64/libpthread.so.0
#9  0x00007f4c6ce6932d in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f4c69bf3700 (LWP 17560)):
#0  0x00007f4c6d550924 in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00000000007fb3c0 in caml_condition_wait ()
#2  0x000000000070300a in camlTutils__fun_1424 ()
#3  0x0000000000703420 in camlTutils__mutexify_1081 ()
#4  0x0000000000745575 in camlDtools__thread_1318 ()
#5  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#6  0x0000000000813146 in caml_start_program ()
#7  0x00000000007fa7be in caml_thread_start ()
#8  0x00007f4c6d54cdce in start_thread () from /lib64/libpthread.so.0
#9  0x00007f4c6ce6932d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f4c53817700 (LWP 17575)):
#0  0x00007f4c6d5533bd in read () from /lib64/libpthread.so.0
#1  0x00000000007fd66b in unix_read ()
#2  0x000000000079d2af in camlUnix__read_1130 () at unix.ml:170
#3  0x00000000006f2530 in camlDecoder__read_1186 ()
#4  0x0000000000813146 in caml_start_program ()
#5  0x0000000000810409 in caml_callback ()
#6  0x00000000007e76c5 in dec_read_callback (decoder=<optimized out>, buffer=0x79d2af <camlUnix__read_1130+79> "L\213\035\272\b0", bytes=0x7f4c4df65f48, client_data=0x7f4c4c1d9208) at flac_stubs.c:350
#7  0x00007f4c6e716cb7 in read_callback_ () from /usr/lib64/libFLAC.so.8
#8  0x00007f4c6e6f4738 in bitreader_read_from_client_ () from /usr/lib64/libFLAC.so.8
#9  0x00007f4c6e6f53a8 in FLAC__bitreader_read_raw_int32 () from /usr/lib64/libFLAC.so.8
#10 0x00007f4c6e717c33 in read_residual_partitioned_rice_ () from /usr/lib64/libFLAC.so.8
#11 0x00007f4c6e718e63 in read_frame_.part.4 () from /usr/lib64/libFLAC.so.8
#12 0x00007f4c6e71c0ac in FLAC__stream_decoder_process_single () from /usr/lib64/libFLAC.so.8
#13 0x00000000007e86f9 in ocaml_flac_decoder_process (d=139965686128624, c=139965699939672) at flac_stubs.c:546
#14 0x0000000000626c9d in camlFlac_decoder__fun_1357 ()
#15 0x00000000006f2730 in camlDecoder__fill_1198 ()
#16 0x00000000006adf64 in camlRequest_source__fun_1595 ()
#17 0x0000000000703420 in camlTutils__mutexify_1081 ()
#18 0x0000000000703420 in camlTutils__mutexify_1081 ()
#19 0x00000000006ae6ff in camlRequest_source__fun_1620 ()
#20 0x00000000006aefe6 in camlRequest_source__fun_1935 ()
#21 0x00000000006e91c2 in camlSource__fun_2034 ()
#22 0x00000000006778eb in camlSwitch__fun_1970 ()
#23 0x00000000006e91c2 in camlSource__fun_2034 ()
#24 0x00000000006589a3 in camlSetvol__fun_1174 ()
#25 0x00000000006e8f6a in camlSource__fun_2034 ()
#26 0x000000000068d4dd in camlOutput__fun_1601 ()
#27 0x00000000006e543f in camlClock__fun_1917 ()
#28 0x00000000007a6de7 in camlList__fold_left_1073 () at list.ml:86
#29 0x00000000006e61b1 in camlClock__fun_1882 ()
#30 0x00000000006e5bd2 in camlClock__loop_1351 ()
#31 0x00000000006e6922 in camlClock__fun_2143 ()
#32 0x00000000007025ca in camlTutils__fun_1345 ()
#33 0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#34 0x0000000000813146 in caml_start_program ()
#35 0x00000000007fa7be in caml_thread_start ()
#36 0x00007f4c6d54cdce in start_thread () from /lib64/libpthread.so.0
#37 0x00007f4c6ce6932d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f4c6fac0740 (LWP 17549)):
#0  0x00007f4c6d553ee9 in do_sigwait () from /lib64/libpthread.so.0
#1  0x00007f4c6d553f7b in sigwait () from /lib64/libpthread.so.0
#2  0x00000000007fab56 in caml_wait_signal ()
#3  0x0000000000748147 in camlDtools__wait_signal_1309 ()
#4  0x0000000000748291 in camlDtools__main_1313 ()
#5  0x000000000074841c in camlDtools__catch_1324 ()
#6  0x000000000060cdbc in camlMain__Make_1285 ()
#7  0x0000000000609a5f in camlRunner__entry ()
#8  0x0000000000601679 in caml_program ()
#9  0x0000000000813146 in caml_start_program ()
#10 0x00000000007fff49 in caml_main ()
#11 0x00000000006004ac in main ()
toots commented 11 years ago

Hi! Thanks for the report.. Any chance you could attach a file and instructions to reproduce?

Smarre commented 11 years ago

It happens like after a day or so, I don’t know if it is related to exact file.

I’ll wait for few days to see whether it crashes without a log, then I’ll switch it back on and wait until it crashes and see whether I can produce it with a specific file.

My config is as following

set("log.file.path", "/tmp/liquidsoap-nyan.log")
set("log.stdout", true)
set("log.level", 4)
set("server.telnet", true)
set("audio.converter.samplerate.libsamplerate.quality","best")

enable_replaygain_metadata()

default = single("foobar.flac")

main = playlist("/music/dir")

        #request.queue(id="request"),
radio = fallback([
        main,
        default
])

radio = amplify(1., override="replay_gain", radio)

output.icecast(%vorbis.abr(bitrate=64),
    host="localhost", port=8000, password="funkysourcepassword", mount="lqnyan.ogg", radio)
output.icecast(%vorbis.abr(bitrate=320),
    host="localhost", port=8000, password="funkysourcepassword", mount="nyan.ogg", radio)
output.icecast(%ogg(%flac),
    host="localhost", port=8000, password="funkysourcepassword", mount="nyan.flac", radio)
Smarre commented 11 years ago

Okay, I managed to reproduce this without the log.

Output from console:

2013/05/26 20:44:34 [decoder:4] Trying method "META" for "foobar.flac"...
2013/05/26 20:44:34 [decoder:4] Trying method "WAV" for "foobar.flac"...
2013/05/26 20:44:34 [decoder.wav:4] Invalid file extension for "foobar.flac"!
2013/05/26 20:44:34 [decoder:4] Trying method "MIDI" for "foobar.flac"...
2013/05/26 20:44:34 [decoder:4] Trying method "IMAGE" for "foobar.flac"...
2013/05/26 20:44:34 [decoder:4] Trying method "FLAC" for "foobar.flac"...
2013/05/26 20:44:34 [decoder.flac:4] Libflac recognizes "foobar.flac" as FLAC (44100Hz,2 channels).
2013/05/26 20:44:34 [decoder:3] Method "FLAC" accepted "foobar.flac".
2013/05/26 20:44:34 [metadata.mp4:4] Invalid file extension for "foobar.flac"!
2013/05/26 20:44:34 [decoder.ogg:4] Invalid file extension for "foobar.flac"!
2013/05/26 20:44:34 [decoder.taglib:4] Invalid file extension for "foobar.flac"!
2013/05/26 20:44:34 [decoder.taglib:4] Error while decoding file tags: Invalid file
2013/05/26 20:44:34 [decoder.taglib:4] Backtrace:
Raised at file "hashtbl.ml", line 161, characters 14-23
Called from file "hashtbl.ml", line 169, characters 18-34

Interestingly, when I put this track as single(), it doesn’t halt liquidsoap, but output it failed anyway. It seems to have started to actually play the track though.

2013/05/27 01:18:58 >>> LOG START
2013/05/27 01:18:57 [protocols.external:3] Found "/usr/bin/wget".
2013/05/27 01:18:57 [main:3] Liquidsoap 1.1.1+scm (git://github.com/savonet/liquidsoap.git@7477f177bfc6e92040903fa1cca40d2a20901da6:20130518:145539)
2013/05/27 01:18:57 [main:3] Using: pcre=6.2.5 dtools=0.3.1 duppy=0.5.1 duppy.syntax=0.5.1 cry=0.2.2 mm=0.2.1 ogg=0.4.5 vorbis=0.6.1 mad=0.4.4 flac=0.1.1 flac.ogg=0.1.1 dynlink=[distributed with Ocaml] lame=0.3.2 ao=0.2.0 taglib=0.3.1 camomile=0.8.4 faad=0.3.2
2013/05/27 01:18:57 [main:2] 
2013/05/27 01:18:57 [main:2] DISCLAIMER: This version of Liquidsoap has been
2013/05/27 01:18:57 [main:2] compiled from a snapshot of the development code.
2013/05/27 01:18:57 [main:2] As such, it should not be used in production
2013/05/27 01:18:57 [main:2] unless you know what you are doing!
2013/05/27 01:18:57 [main:2] 
2013/05/27 01:18:57 [main:2] We are, however, very interested in any feedback
2013/05/27 01:18:57 [main:2] about our development code and committed to fix
2013/05/27 01:18:57 [main:2] issues as soon as possible.
2013/05/27 01:18:57 [main:2] 
2013/05/27 01:18:57 [main:2] If you are interested in collaborating to
2013/05/27 01:18:57 [main:2] the development of Liquidsoap, feel free to
2013/05/27 01:18:57 [main:2] drop us a mail at <savonet-devl@lists.sf.net>
2013/05/27 01:18:57 [main:2] or to join the #savonet IRC channel on Freenode.
2013/05/27 01:18:57 [main:2] 
2013/05/27 01:18:57 [main:2] Please send any bug report or feature request
2013/05/27 01:18:57 [main:2] at <https://github.com/savonet/liquidsoap/issues>.
2013/05/27 01:18:57 [main:2] 
2013/05/27 01:18:57 [main:2] We hope you enjoy this snapshot build of Liquidsoap!
2013/05/27 01:18:57 [main:2] 
2013/05/27 01:18:57 [dynamic.loader:3] Could not find dynamic module for aacplus encoder.
2013/05/27 01:18:58 [lang:2] WARNING: there is no configuration key named "audio.converter.samplerate.libsamplerate.quality"!
2013/05/27 01:18:58 [decoder:4] Trying method "META" for "foobar.flac"...
2013/05/27 01:18:58 [decoder:4] Trying method "WAV" for "foobar.flac"...
2013/05/27 01:18:58 [decoder.wav:4] Invalid file extension for "foobar.flac"!
2013/05/27 01:18:58 [decoder:4] Trying method "MIDI" for "foobar.flac"...
2013/05/27 01:18:58 [decoder:4] Trying method "IMAGE" for "foobar.flac"...
2013/05/27 01:18:58 [decoder:4] Trying method "FLAC" for "foobar.flac"...
2013/05/27 01:18:58 [decoder.flac:4] Libflac recognizes "foobar.flac" as FLAC (44100Hz,2 channels).
2013/05/27 01:18:58 [decoder:3] Method "FLAC" accepted "foobar.flac".
2013/05/27 01:18:58 [metadata.mp4:4] Invalid file extension for "foobar.flac"!
2013/05/27 01:18:58 [decoder.ogg:4] Invalid file extension for "foobar.flac"!
2013/05/27 01:18:58 [decoder.taglib:4] Invalid file extension for "foobar.flac"!
2013/05/27 01:18:58 [decoder.taglib:4] Error while decoding file tags: Invalid file
2013/05/27 01:18:58 [decoder.taglib:4] Backtrace:
Raised at file "hashtbl.ml", line 161, characters 14-23
Called from file "hashtbl.ml", line 165, characters 24-43
Called from file "hashtbl.ml", line 165, characters 24-43
Called from file "hashtbl.ml", line 165, characters 24-43
Called from file "hashtbl.ml", line 169, characters 18-34

2013/05/27 01:18:58 [single:3] "foobar.flac" is static, resolving once for all...
2013/05/27 01:18:58 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz master.
2013/05/27 01:18:58 [frame:3] Frame size must be a multiple of 1764 ticks = 1764 audio samples = 1 video samples.
2013/05/27 01:18:58 [frame:3] Targetting 'frame.duration': 0.04s = 1764 audio samples = 1764 ticks.
2013/05/27 01:18:58 [frame:3] Frames last 0.04s = 1764 audio samples = 1 video samples = 1764 ticks.
2013/05/27 01:18:58 [video.converter:4] Couldn't find preferred video converter: gavl.
2013/05/27 01:18:58 [audio.converter:4] Couldn't find preferred samplerate converter: libsamplerate.
2013/05/27 01:18:58 [audio.converter:4] Using native samplerate converter
2013/05/27 01:18:58 [threads:3] Created thread "generic queue #1".
2013/05/27 01:18:58 [threads:3] Created thread "generic queue #2".
2013/05/27 01:18:58 [threads:3] Created thread "non-blocking queue #1".
2013/05/27 01:18:58 [threads:3] Created thread "non-blocking queue #2".
2013/05/27 01:18:58 [clock:4] Currently 1 clocks allocated.
2013/05/27 01:18:58 [clock.wallclock_main:4] Starting 3 sources...
2013/05/27 01:18:58 [source:4] Source output.icecast_4791 gets up.
2013/05/27 01:18:58 [source:4] Source amplify_4789 gets up.
2013/05/27 01:18:58 [amplify_4789:4] Content kind is {audio=2;video=0;midi=0}.
2013/05/27 01:18:58 [source:4] Source fallback_4787 gets up.
2013/05/27 01:18:58 [source:4] Source playlist_4785 gets up.
2013/05/27 01:18:58 [Musiikki:3] Loading playlist...
2013/05/27 01:18:58 [Musiikki:3] Playlist is a directory.
2013/05/27 01:19:27 [Musiikki:3] Successfully loaded a playlist of 91272 tracks.
2013/05/27 01:19:27 [Musiikki:4] Content kind is {audio=2;video=0;midi=0}.
2013/05/27 01:19:27 [Musiikki:4] Activations changed: static=[], dynamic=[fallback_4787:amplify_4789:lqnyan(dot)ogg:lqnyan(dot)ogg].
2013/05/27 01:19:27 [decoder:4] Trying method "META" for "another.mp3"...
2013/05/27 01:19:27 [decoder:4] Trying method "WAV" for "another.mp3"...
2013/05/27 01:19:27 [decoder.wav:4] Invalid file extension for "another.mp3"!
2013/05/27 01:19:27 [decoder:4] Trying method "MIDI" for "another.mp3"...
2013/05/27 01:19:27 [decoder:4] Trying method "IMAGE" for "another.mp3"...
2013/05/27 01:19:27 [decoder:4] Trying method "FLAC" for "another.mp3"...
2013/05/27 01:19:27 [decoder.flac:4] Invalid file extension for "another.mp3"!
2013/05/27 01:19:27 [decoder:4] Trying method "AAC" for "another.mp3"...
2013/05/27 01:19:27 [decoder.aac:4] Invalid file extension for "another.mp3"!
2013/05/27 01:19:27 [decoder:4] Trying method "MP4" for "another.mp3"...
2013/05/27 01:19:27 [decoder.mp4:4] Invalid file extension for "another.mp3"!
2013/05/27 01:19:27 [decoder:4] Trying method "OGG" for "another.mp3"...
2013/05/27 01:19:27 [decoder.ogg:4] Invalid file extension for "another.mp3"!
2013/05/27 01:19:27 [decoder:4] Trying method "MAD" for "another.mp3"...
2013/05/27 01:19:27 [source:4] Source single_4783 gets up.
2013/05/27 01:19:27 [single_4783:4] Content kind is {audio=2;video=0;midi=0}.
2013/05/27 01:19:27 [single_4783:4] Activations changed: static=[], dynamic=[fallback_4787:amplify_4789:lqnyan(dot)ogg:lqnyan(dot)ogg].
2013/05/27 01:19:27 [fallback_4787:4] Activations changed: static=[amplify_4789:lqnyan(dot)ogg:lqnyan(dot)ogg], dynamic=[].
2013/05/27 01:19:27 [amplify_4789:4] Activations changed: static=[lqnyan(dot)ogg:lqnyan(dot)ogg], dynamic=[].
2013/05/27 01:19:27 [decoder.mad:4] Libmad recognizes "another.mp3" as mpeg audio (layer III, 192kbps, 44100Hz, 2 channels).
2013/05/27 01:19:27 [decoder:3] Method "MAD" accepted "another.mp3".
2013/05/27 01:19:27 [metadata.flac:4] Invalid file extension for "another.mp3"!
2013/05/27 01:19:27 [metadata.mp4:4] Invalid file extension for "another.mp3"!
2013/05/27 01:19:27 [decoder.ogg:4] Invalid file extension for "another.mp3"!
2013/05/27 01:19:27 [single_4783:3] Prepared "foobar.flac" (RID 0).
2013/05/27 01:19:27 [lqnyan(dot)ogg:4] Activations changed: static=[lqnyan(dot)ogg], dynamic=[].
2013/05/27 01:19:27 [lqnyan(dot)ogg:4] Enabling caching mode: active source.
2013/05/27 01:19:27 [source:4] Source output.icecast_4792 gets up.
2013/05/27 01:19:27 [amplify_4789:4] Activations changed: static=[nyan(dot)ogg:nyan(dot)ogg, lqnyan(dot)ogg:lqnyan(dot)ogg], dynamic=[].
2013/05/27 01:19:27 [amplify_4789:4] Enabling caching mode: two static activations.
2013/05/27 01:19:27 [nyan(dot)ogg:4] Activations changed: static=[nyan(dot)ogg], dynamic=[].
2013/05/27 01:19:27 [nyan(dot)ogg:4] Enabling caching mode: active source.
2013/05/27 01:19:27 [source:4] Source output.icecast_4793 gets up.
2013/05/27 01:19:27 [amplify_4789:4] Activations changed: static=[nyan(dot)flac:nyan(dot)flac, nyan(dot)ogg:nyan(dot)ogg, lqnyan(dot)ogg:lqnyan(dot)ogg], dynamic=[].
2013/05/27 01:19:27 [nyan(dot)flac:4] Activations changed: static=[nyan(dot)flac], dynamic=[].
2013/05/27 01:19:27 [nyan(dot)flac:4] Enabling caching mode: active source.
2013/05/27 01:19:27 [lqnyan(dot)ogg:3] Connecting mount lqnyan.ogg for source@localhost...
2013/05/27 01:19:27 [lqnyan(dot)ogg:3] Connection setup was successful.
2013/05/27 01:19:27 [nyan(dot)ogg:3] Connecting mount nyan.ogg for source@localhost...
2013/05/27 01:19:27 [nyan(dot)ogg:3] Connection setup was successful.
2013/05/27 01:19:27 [nyan(dot)flac:3] Connecting mount nyan.flac for source@localhost...
2013/05/27 01:19:27 [nyan(dot)flac:3] Connection setup was successful.
2013/05/27 01:19:27 [threads:3] Created thread "wallclock_main" (1 total).
2013/05/27 01:19:27 [clock:4] Main phase starts.
2013/05/27 01:19:27 [clock.wallclock_main:3] Streaming loop starts, synchronized with wallclock.
2013/05/27 01:19:27 [fallback_4787:3] Switch to single_4783.
2013/05/27 01:19:27 [single_4783:4] Activations changed: static=[fallback_4787:amplify_4789:lqnyan(dot)ogg:lqnyan(dot)ogg], dynamic=[fallback_4787:amplify_4789:lqnyan(dot)ogg:lqnyan(dot)ogg].
2013/05/27 01:19:27 [amplify_4789:3] Overriding amplification: 0.374542.
2013/05/27 01:19:27 [ogg.muxer:4] lqnyan(dot)ogg: Starting all streams
2013/05/27 01:19:27 [ogg.muxer:4] nyan(dot)ogg: Starting all streams
2013/05/27 01:19:27 [ogg.muxer:4] nyan(dot)flac: Starting all streams
2013/05/27 01:19:28 [Musiikki:4] Remaining: 0.0s, queued: 0.0s, adding: 30.0s (RID 2)

This seems to only happen with FLACs. Need any other information? The track is copyrighted so I don’t think I could attach it here :P

smimram commented 11 years ago

Could you please send me the flac file on my mail smimram (at) gmail.com? Please use wetransfer or whatever if the file is big!

Smarre commented 11 years ago

Done.

To recap, this happens without log too, without daemon mode, and now it seems that without ”log.level 4” which I used to debug things. It’s always a flac that causes Liquidsoap to freeze.

Output without any logs is slightly different, so I’ll attach it here:


Thread 8 (Thread 0x7f17c5f98700 (LWP 10873)):
#0  0x00007f17c70f0924 in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00000000007fb3c0 in caml_condition_wait ()
#2  0x00000000007414b2 in camlDuppy__queue_1114 ()
#3  0x0000000000702d1e in camlTutils__queue_1188 ()
#4  0x00000000007025ca in camlTutils__fun_1345 ()
#5  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#6  0x0000000000813146 in caml_start_program ()
#7  0x00000000007fa7be in caml_thread_start ()
#8  0x00007f17c70ecdce in start_thread () from /lib64/libpthread.so.0
#9  0x00007f17c6a0932d in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7f17c5797700 (LWP 10874)):
#0  0x00007f17c6a02213 in select () from /lib64/libc.so.6
#1  0x00000000007fa381 in caml_thread_tick ()
#2  0x00007f17c70ecdce in start_thread () from /lib64/libpthread.so.0
#3  0x00007f17c6a0932d in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7f17c4f96700 (LWP 10875)):
#0  0x00007f17c70f0924 in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00000000007fb3c0 in caml_condition_wait ()
#2  0x00000000007414b2 in camlDuppy__queue_1114 ()
#3  0x0000000000702d1e in camlTutils__queue_1188 ()
#4  0x00000000007025ca in camlTutils__fun_1345 ()
#5  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#6  0x0000000000813146 in caml_start_program ()
#7  0x00000000007fa7be in caml_thread_start ()
#8  0x00007f17c70ecdce in start_thread () from /lib64/libpthread.so.0
#9  0x00007f17c6a0932d in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7f17bffff700 (LWP 10876)):
#0  0x00007f17c6a02213 in select () from /lib64/libc.so.6
#1  0x00000000007fda7e in unix_select ()
#2  0x000000000073e7b3 in camlDuppy__f_1092 ()
#3  0x0000000000740e04 in camlDuppy__process_1083 ()
#4  0x0000000000741426 in camlDuppy__queue_1114 ()
#5  0x0000000000702cdb in camlTutils__queue_1188 ()
---Type <return> to continue, or q <return> to quit---
#6  0x00000000007025ca in camlTutils__fun_1345 ()
#7  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#8  0x0000000000813146 in caml_start_program ()
#9  0x00000000007fa7be in caml_thread_start ()
#10 0x00007f17c70ecdce in start_thread () from /lib64/libpthread.so.0
#11 0x00007f17c6a0932d in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7f17bf7fe700 (LWP 10877)):
#0  0x00007f17c70f0924 in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00000000007fb3c0 in caml_condition_wait ()
#2  0x00000000007414b2 in camlDuppy__queue_1114 ()
#3  0x0000000000702cdb in camlTutils__queue_1188 ()
#4  0x00000000007025ca in camlTutils__fun_1345 ()
#5  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#6  0x0000000000813146 in caml_start_program ()
#7  0x00000000007fa7be in caml_thread_start ()
#8  0x00007f17c70ecdce in start_thread () from /lib64/libpthread.so.0
#9  0x00007f17c6a0932d in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f17beffd700 (LWP 10878)):
#0  0x00007f17c70f0924 in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00000000007fb3c0 in caml_condition_wait ()
#2  0x000000000070300a in camlTutils__fun_1424 ()
#3  0x0000000000703420 in camlTutils__mutexify_1081 ()
#4  0x0000000000745575 in camlDtools__thread_1318 ()
#5  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#6  0x0000000000813146 in caml_start_program ()
#7  0x00000000007fa7be in caml_thread_start ()
#8  0x00007f17c70ecdce in start_thread () from /lib64/libpthread.so.0
#9  0x00007f17c6a0932d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f17bd0a8700 (LWP 10885)):
#0  0x00000000008028e3 in mark_slice ()
#1  0x0000000000802fb6 in caml_major_collection_slice ()
#2  0x00000000008038ad in caml_minor_collection ()
#3  0x0000000000803aad in caml_check_urgent_gc ()
#4  0x0000000000804985 in caml_alloc_string ()
#5  0x00000000006f2504 in camlDecoder__read_1186 ()
---Type <return> to continue, or q <return> to quit---
#6  0x0000000000813146 in caml_start_program ()
#7  0x0000000000810409 in caml_callback ()
#8  0x00000000007e76c5 in dec_read_callback (decoder=<optimized out>, buffer=0x6f2504 <camlDecoder__read_1186+52> "L\213\035e\266:", bytes=0x7f17a506afa8, client_data=0x7f17a47a0698) at flac_stubs.c:350
#9  0x00007f17c82b6cb7 in read_callback_ () from /usr/lib64/libFLAC.so.8
#10 0x00007f17c8294738 in bitreader_read_from_client_ () from /usr/lib64/libFLAC.so.8
#11 0x00007f17c82953a8 in FLAC__bitreader_read_raw_int32 () from /usr/lib64/libFLAC.so.8
#12 0x00007f17c82b7c5a in read_residual_partitioned_rice_ () from /usr/lib64/libFLAC.so.8
#13 0x00007f17c82b8e63 in read_frame_.part.4 () from /usr/lib64/libFLAC.so.8
#14 0x00007f17c82bc0ac in FLAC__stream_decoder_process_single () from /usr/lib64/libFLAC.so.8
#15 0x00000000007e86f9 in ocaml_flac_decoder_process (d=139739529654280, c=139739537882576) at flac_stubs.c:546
#16 0x0000000000626c9d in camlFlac_decoder__fun_1357 ()
#17 0x00000000006f2730 in camlDecoder__fill_1198 ()
#18 0x00000000006adf64 in camlRequest_source__fun_1595 ()
#19 0x0000000000703420 in camlTutils__mutexify_1081 ()
#20 0x0000000000703420 in camlTutils__mutexify_1081 ()
#21 0x00000000006ae6ff in camlRequest_source__fun_1620 ()
#22 0x00000000006aefe6 in camlRequest_source__fun_1935 ()
#23 0x00000000006e91c2 in camlSource__fun_2034 ()
#24 0x00000000006778eb in camlSwitch__fun_1970 ()
#25 0x00000000006e91c2 in camlSource__fun_2034 ()
#26 0x00000000006589a3 in camlSetvol__fun_1174 ()
#27 0x00000000006e8f6a in camlSource__fun_2034 ()
#28 0x000000000068d4dd in camlOutput__fun_1601 ()
#29 0x00000000006e543f in camlClock__fun_1917 ()
#30 0x00000000007a6de7 in camlList__fold_left_1073 () at list.ml:86
#31 0x00000000006e61b1 in camlClock__fun_1882 ()
#32 0x00000000006e5bd2 in camlClock__loop_1351 ()
#33 0x00000000006e6922 in camlClock__fun_2143 ()
#34 0x00000000007025ca in camlTutils__fun_1345 ()
#35 0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#36 0x0000000000813146 in caml_start_program ()
#37 0x00000000007fa7be in caml_thread_start ()
#38 0x00007f17c70ecdce in start_thread () from /lib64/libpthread.so.0
#39 0x00007f17c6a0932d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f17c9660740 (LWP 10867)):
#0  0x00007f17c70f3ee9 in do_sigwait () from /lib64/libpthread.so.0
#1  0x00007f17c70f3f7b in sigwait () from /lib64/libpthread.so.0
---Type <return> to continue, or q <return> to quit---
#2  0x00000000007fab56 in caml_wait_signal ()
#3  0x0000000000748147 in camlDtools__wait_signal_1309 ()
#4  0x0000000000748291 in camlDtools__main_1313 ()
#5  0x000000000074841c in camlDtools__catch_1324 ()
#6  0x000000000060cdbc in camlMain__Make_1285 ()
#7  0x0000000000609a5f in camlRunner__entry ()
#8  0x0000000000601679 in caml_program ()
#9  0x0000000000813146 in caml_start_program ()
#10 0x00000000007fff49 in caml_main ()
#11 0x00000000006004ac in main ()

I’m starting to be out of ideas what to test :)

smimram commented 11 years ago

I did not get your flac file. I'd need it to reproduce... Does it always happen with a specific file? Any flac file?

smimram commented 11 years ago

Also, can you post the "minimized" script with which the error still occurs?

Smarre commented 11 years ago

It seems to happen with any flac file. The stranger thing is that sometimes the freeze is not triggered, I usually can get half day to day play time before anything happens.

I’ll test the most minimum script I can produce. I guess it just needs a flac in and nothing else is relevant.

I’m starting to suspect that it’s somehow related to my system. Otherwise it would happen to everyone... I have taglib-1.8 and FLAC-1.2.1. And ocaml-4.00.1.

Smarre commented 11 years ago

Oh and, I did sent a mail to your gmail address. Could you check your spam box? Might be that Gmail is hating me again.

Smarre commented 11 years ago

Okay, yet another:


Thread 6 (Thread 0x7f4bac14d700 (LWP 21908)):
#0  0x00007f4bacbb7213 in select () from /lib64/libc.so.6
#1  0x00000000007fda7e in unix_select ()
#2  0x000000000073e7b3 in camlDuppy__f_1092 ()
#3  0x0000000000740e04 in camlDuppy__process_1083 ()
#4  0x0000000000741426 in camlDuppy__queue_1114 ()
#5  0x0000000000702d1e in camlTutils__queue_1188 ()
#6  0x00000000007025ca in camlTutils__fun_1345 ()
#7  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#8  0x0000000000813146 in caml_start_program ()
#9  0x00000000007fa7be in caml_thread_start ()
#10 0x00007f4bad2a1dce in start_thread () from /lib64/libpthread.so.0
#11 0x00007f4bacbbe32d in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7f4bab94c700 (LWP 21909)):
#0  0x00007f4bacbb7213 in select () from /lib64/libc.so.6
#1  0x00000000007fa381 in caml_thread_tick ()
#2  0x00007f4bad2a1dce in start_thread () from /lib64/libpthread.so.0
#3  0x00007f4bacbbe32d in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7f4bab14b700 (LWP 21910)):
#0  0x00007f4bad2a5924 in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00000000007fb3c0 in caml_condition_wait ()
#2  0x00000000007414b2 in camlDuppy__queue_1114 ()
#3  0x0000000000702d1e in camlTutils__queue_1188 ()
#4  0x00000000007025ca in camlTutils__fun_1345 ()
#5  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#6  0x0000000000813146 in caml_start_program ()
#7  0x00000000007fa7be in caml_thread_start ()
#8  0x00007f4bad2a1dce in start_thread () from /lib64/libpthread.so.0
#9  0x00007f4bacbbe32d in clone () from /lib64/libc.so.6

---Type <return> to continue, or q <return> to quit---
Thread 3 (Thread 0x7f4baa94a700 (LWP 21911)):
#0  0x00007f4bad2a5924 in pthread_cond_wait () from /lib64/libpthread.so.0
#1  0x00000000007fb3c0 in caml_condition_wait ()
#2  0x000000000070300a in camlTutils__fun_1424 ()
#3  0x0000000000703420 in camlTutils__mutexify_1081 ()
#4  0x0000000000745575 in camlDtools__thread_1318 ()
#5  0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#6  0x0000000000813146 in caml_start_program ()
#7  0x00000000007fa7be in caml_thread_start ()
#8  0x00007f4bad2a1dce in start_thread () from /lib64/libpthread.so.0
#9  0x00007f4bacbbe32d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f4b9bfff700 (LWP 21913)):
#0  0x000000000080293b in mark_slice ()
#1  0x0000000000802fb6 in caml_major_collection_slice ()
#2  0x00000000008038ad in caml_minor_collection ()
#3  0x0000000000803aad in caml_check_urgent_gc ()
#4  0x0000000000804985 in caml_alloc_string ()
#5  0x00000000006f2504 in camlDecoder__read_1186 ()
#6  0x0000000000813146 in caml_start_program ()
#7  0x0000000000810409 in caml_callback ()
#8  0x00000000007e76c5 in dec_read_callback (decoder=<optimized out>, buffer=0x6f2504 <camlDecoder__read_1186+52> "L\213\035e\266:", bytes=0x7f4b94f49cb0, 
    client_data=0x7f4b940607f8) at flac_stubs.c:350
#9  0x00007f4bae46bcb7 in read_callback_ () from /usr/lib64/libFLAC.so.8
#10 0x00007f4bae449738 in bitreader_read_from_client_ () from /usr/lib64/libFLAC.so.8
#11 0x00007f4bae44a3a8 in FLAC__bitreader_read_raw_int32 () from /usr/lib64/libFLAC.so.8
#12 0x00007f4bae46cc5a in read_residual_partitioned_rice_ () from /usr/lib64/libFLAC.so.8
#13 0x00007f4bae46de63 in read_frame_.part.4 () from /usr/lib64/libFLAC.so.8
#14 0x00007f4bae4710ac in FLAC__stream_decoder_process_single () from /usr/lib64/libFLAC.so.8
#15 0x00000000007e86f9 in ocaml_flac_decoder_process (d=139962598333656, c=139962611039112) at flac_stubs.c:546
#16 0x0000000000626c9d in camlFlac_decoder__fun_1357 ()
#17 0x00000000006f2730 in camlDecoder__fill_1198 ()
#18 0x00000000006adf64 in camlRequest_source__fun_1595 ()
---Type <return> to continue, or q <return> to quit---
#19 0x0000000000703420 in camlTutils__mutexify_1081 ()
#20 0x0000000000703420 in camlTutils__mutexify_1081 ()
#21 0x00000000006ae6ff in camlRequest_source__fun_1620 ()
#22 0x00000000006aefe6 in camlRequest_source__fun_1935 ()
#23 0x00000000006e91c2 in camlSource__fun_2034 ()
#24 0x00000000006778eb in camlSwitch__fun_1970 ()
#25 0x00000000006e91c2 in camlSource__fun_2034 ()
#26 0x000000000068d4dd in camlOutput__fun_1601 ()
#27 0x00000000006e543f in camlClock__fun_1917 ()
#28 0x00000000007a6de7 in camlList__fold_left_1073 () at list.ml:86
#29 0x00000000006e61b1 in camlClock__fun_1882 ()
#30 0x00000000006e5bd2 in camlClock__loop_1351 ()
#31 0x00000000006e6922 in camlClock__fun_2143 ()
#32 0x00000000007025ca in camlTutils__fun_1345 ()
#33 0x000000000079afba in camlThread__fun_1083 () at thread.ml:39
#34 0x0000000000813146 in caml_start_program ()
#35 0x00000000007fa7be in caml_thread_start ()
#36 0x00007f4bad2a1dce in start_thread () from /lib64/libpthread.so.0
#37 0x00007f4bacbbe32d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f4baf815740 (LWP 21907)):
#0  0x00007f4bad2a8ee9 in do_sigwait () from /lib64/libpthread.so.0
#1  0x00007f4bad2a8f7b in sigwait () from /lib64/libpthread.so.0
#2  0x00000000007fab56 in caml_wait_signal ()
#3  0x0000000000748147 in camlDtools__wait_signal_1309 ()
#4  0x0000000000748291 in camlDtools__main_1313 ()
#5  0x000000000074841c in camlDtools__catch_1324 ()
#6  0x000000000060cdbc in camlMain__Make_1285 ()
#7  0x0000000000609a5f in camlRunner__entry ()
#8  0x0000000000601679 in caml_program ()
#9  0x0000000000813146 in caml_start_program ()
#10 0x00000000007fff49 in caml_main ()
#11 0x00000000006004ac in main ()

cli output:

 liquidsoap nyan-test.liq
TagLib: MPEG::Header::parse() -- Invalid sample rate.
TagLib: ID3v2.4 no longer supports the frame type RVAD.  It will be discarded from the tag.

liq script:


set("log.file", false)
set("log.stdout", false)

default = single("foobar.flac")

main = playlist("/mnt/store/Musiikki")

radio = fallback([
        main,
        default
])

output.icecast(%ogg(%flac),
    host="localhost", port=8000, password="funkysourcepassword", mount="nyan.flac", radio)
smimram commented 11 years ago

I'll try to have a look at the code. In the meatime, what version of liquidsoap are you using exactly? Did you compile from git, or is it packages? In the latest case, which distro and more importantly do you have ocaml-taglib 0.3.1?

Smarre commented 11 years ago

From git, few days old trunk. How can I find version of ocaml-taglib? If you refer the one from git tree, its revision is 03040e2330e4921db4b1e4fd638e8a703b0c2975

smimram commented 11 years ago

Ok, that's "fine" then (i.e. the old taglib is not the cause...)

On Tue, May 28, 2013 at 6:49 PM, Smarre notifications@github.com wrote:

From git, few days old trunk. How can I find version of ocaml-taglib? If you refer the one from git tree, its revision is 03040e2https://github.com/savonet/liquidsoap/commit/03040e2330e4921db4b1e4fd638e8a703b0c2975

— Reply to this email directly or view it on GitHubhttps://github.com/savonet/liquidsoap/issues/53#issuecomment-18563757 .

smimram commented 10 years ago

From the ML, JD reported the following which seems to be related:

Sometimes when I do a call to the LS server via a unix socket connection I don't get any response from the LS server, and then attaching GDB to it I get this stack trace.

Can anyone maybe help interpret this stack trace?

Thread 14 (Thread 0x7ff252f67700 (LWP 5443)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x000000000071f160 in caml_condition_wait ()
#2  0x0000000000734884 in caml_c_call ()
#3  0x00007ff255424230 in ?? ()
#4  0x00007ff230022168 in ?? ()
#5  0x0000000000a928c8 in camlDuppy__29 ()
#6  0x0000000000a65d70 in camlTutils__56 ()
#7  0x00007ff2303fc300 in ?? ()
#8  0x00000000006026fe in camlTutils__queue_1213 ()
#9  0x00007ff252f66ce0 in ?? ()
#10 0x000000000060253d in camlTutils__queue_1213 ()
#11 0x00007ff230023ea8 in ?? ()
#12 0x0000000000000000 in ?? ()

Thread 13 (Thread 0x7ff252766700 (LWP 5444)):
#0  0x00007ff257a83de3 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x000000000071e73e in caml_thread_tick ()
#2  0x00007ff25bd21f6e in start_thread (arg=0x7ff252766700) at pthread_create.c:311
#3  0x00007ff257a8b9cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 12 (Thread 0x7ff251f65700 (LWP 5445)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x000000000071f160 in caml_condition_wait ()
#2  0x0000000000734884 in caml_c_call ()
#3  0x00007ff255423470 in ?? ()
#4  0x00007ff230022180 in ?? ()
#5  0x0000000000a928c8 in camlDuppy__29 ()
#6  0x0000000000a65d70 in camlTutils__56 ()
#7  0x00007ff2303fc300 in ?? ()
#8  0x00000000006026fe in camlTutils__queue_1213 ()
#9  0x00007ff251f64ce0 in ?? ()
#10 0x000000000060253d in camlTutils__queue_1213 ()
#11 0x00007ff230023e28 in ?? ()
#12 0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7ff251764700 (LWP 5446)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x000000000071f160 in caml_condition_wait ()
#2  0x0000000000734884 in caml_c_call ()
#3  0x00007ff255423b50 in ?? ()
#4  0x00007ff230022198 in ?? ()
#5  0x0000000000a65d40 in camlTutils__53 ()
#6  0x0000000000a65d70 in camlTutils__56 ()
---Type <return> to continue, or q <return> to quit---
#7  0x00007ff2303fc300 in ?? ()
#8  0x00000000006026bb in camlTutils__queue_1213 ()
#9  0x00007ff251763ce0 in ?? ()
#10 0x000000000060253d in camlTutils__queue_1213 ()
#11 0x00007ff230023da8 in ?? ()
#12 0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7ff250f63700 (LWP 5447)):
#0  0x00007ff257a83de3 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x0000000000721998 in unix_select ()
#2  0x0000000000734884 in caml_c_call ()
#3  0x00007ff250f62cb0 in ?? ()
#4  0x0000000000645eee in camlDuppy__f_1157 ()
#5  0x000000000000000b in ?? ()
#6  0x0000000000000003 in ?? ()
#7  0x0000000000000001 in ?? ()
#8  0x00007ff2554217c0 in ?? ()
#9  0x0000000000a65d70 in camlTutils__56 ()
#10 0x0000000000a92d10 in camlDuppy__58 ()
#11 0x0000000000a928e0 in camlDuppy__36 ()
#12 0x0000000000000001 in ?? ()
#13 0x00007ff230937930 in ?? ()
#14 0x0000000000648334 in camlDuppy__process_1148 ()
#15 0x00007ff2303ff000 in ?? ()
#16 0x0000000000a65d70 in camlTutils__56 ()
#17 0x00007ff250f62cb0 in ?? ()
#18 0x000000000071f046 in caml_mutex_unlock ()
#19 0x00000000006488ea in camlDuppy__queue_1179 ()
#20 0x00007ff230937908 in ?? ()
#21 0x00007ff2300221b0 in ?? ()
#22 0x0000000000a65d40 in camlTutils__53 ()
#23 0x0000000000a65d70 in camlTutils__56 ()
#24 0x00007ff2303fc300 in ?? ()
#25 0x00000000006026bb in camlTutils__queue_1213 ()
#26 0x00007ff250f62ce0 in ?? ()
#27 0x000000000060253d in camlTutils__queue_1213 ()
#28 0x00007ff230023d18 in ?? ()
#29 0x0000000000001000 in ?? ()
#30 0x0000000000b0b560 in ?? ()
#31 0x0000000000602016 in camlTutils__fun_1372 ()
#32 0x00007ff250f62d20 in ?? ()
#33 0x0000000000601cae in camlTutils__fun_1372 ()
#34 0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7ff250762700 (LWP 5448)):
---Type <return> to continue, or q <return> to quit---
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x000000000071f160 in caml_condition_wait ()
#2  0x0000000000734884 in caml_c_call ()
#3  0x00007ff230021bb0 in ?? ()
#4  0x0000000000602d08 in camlTutils__mutexify_1103 ()
#5  0x00007ff250761ce0 in ?? ()
#6  0x0000000000602cd6 in camlTutils__mutexify_1103 ()
#7  0x00007ff25552e070 in ?? ()
#8  0x0000000000000001 in ?? ()
#9  0x00007ff230405e10 in ?? ()
#10 0x000000000064c745 in camlDtools__thread_1346 ()
#11 0x00007ff250761d20 in ?? ()
#12 0x000000000064c693 in camlDtools__thread_1346 ()
#13 0x0000000000000001 in ?? ()
#14 0x00007ff25df4b4e8 in ?? ()
#15 0x00007ff230042c38 in ?? ()
#16 0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7ff24ff61700 (LWP 5449)):
#0  0x00007ff257a83de3 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x0000000000721998 in unix_select ()
#2  0x0000000000734884 in caml_c_call ()
#3  0x00007ff230042f10 in ?? ()
#4  0x00000000005e3bca in camlClock__usleep_1305 ()
#5  0x00007ff24ff60ce0 in ?? ()
#6  0x00000000005e3b89 in camlClock__usleep_1305 ()
#7  0x00007ff230040c80 in ?? ()
#8  0x00000000005e21e8 in camlClock__loop_1352 ()
#9  0x00007ff25552d8f8 in ?? ()
#10 0x00007ff230021c40 in ?? ()
#11 0x00007ff25ded0890 in ?? ()
#12 0x00000000005e2f9e in camlClock__method_run_1522 ()
#13 0x00007ff25552e060 in ?? ()
#14 0x00007ff25552e050 in ?? ()
#15 0x00007ff25552e030 in ?? ()
#16 0x00007ff25552e000 in ?? ()
#17 0x00007ff25552e010 in ?? ()
#18 0x00007ff25552dfc0 in ?? ()
#19 0x00007ff2303d72b0 in ?? ()
#20 0x00007ff230040c80 in ?? ()
#21 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7ff24e1df700 (LWP 5537)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ff25a387617 in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#2  0x00007ff25a8df34c in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#3  0x00007ff25a36cab6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ff25a36c0f5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ff25bd21f6e in start_thread (arg=0x7ff24e1df700) at pthread_create.c:311
#6  0x00007ff257a8b9cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 6 (Thread 0x7ff22ffff700 (LWP 5538)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ff25a387617 in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ff256655ff2 in ?? () from /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0
#3  0x00007ff25665740e in gst_data_queue_pop () from /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0
#4  0x00007ff24f152ff4 in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so
#5  0x00007ff25a8df189 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#6  0x00007ff25a36cab6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007ff25a36c0f5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007ff25bd21f6e in start_thread (arg=0x7ff22ffff700) at pthread_create.c:311
#9  0x00007ff257a8b9cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 5 (Thread 0x7ff22f7fe700 (LWP 5539)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ff25a387617 in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ff25a8df34c in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#3  0x00007ff25a36cab6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ff25a36c0f5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ff25bd21f6e in start_thread (arg=0x7ff22f7fe700) at pthread_create.c:311
#6  0x00007ff257a8b9cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 4 (Thread 0x7ff226e9b700 (LWP 5540)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ff25a387617 in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ff25a8df34c in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#3  0x00007ff25a36cab6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ff25a36c0f5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ff25bd21f6e in start_thread (arg=0x7ff226e9b700) at pthread_create.c:311
#6  0x00007ff257a8b9cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 3 (Thread 0x7ff225e99700 (LWP 5547)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ff25a387617 in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ff256655ff2 in ?? () from /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0
#3  0x00007ff25665740e in gst_data_queue_pop () from /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0
#4  0x00007ff24f152ff4 in ?? () from /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstcoreelements.so
#5  0x00007ff25a8df189 in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#6  0x00007ff25a36cab6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007ff25a36c0f5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#8  0x00007ff25bd21f6e in start_thread (arg=0x7ff225e99700) at pthread_create.c:311
#9  0x00007ff257a8b9cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x7ff22669a700 (LWP 5548)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ff25a387617 in g_cond_wait () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007ff25a8df34c in ?? () from /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
#3  0x00007ff25a36cab6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007ff25a36c0f5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007ff25bd21f6e in start_thread (arg=0x7ff22669a700) at pthread_create.c:311
#6  0x00007ff257a8b9cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x7ff25df36740 (LWP 5441)):
#0  do_sigwait (sig=0x7fffb11218ac, set=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/../../../../../sysdeps/unix/sysv/linux/sigwait.c:64
#1  __sigwait (set=<optimized out>, sig=0x7fffb11218ac) at ../nptl/sysdeps/unix/sysv/linux/../../../../../sysdeps/unix/sysv/linux/sigwait.c:99
#2  0x000000000071e9ce in caml_wait_signal ()
#3  0x0000000000734884 in caml_c_call ()
#4  0x00007fffb1121980 in ?? ()
#5  0x000000000064f029 in camlDtools__wait_signal_1337 ()
#6  0x000000000072a5cc in caml_string_notequal ()
#7  0x000000000064f217 in camlDtools__main_1341 ()
#8  0x00000000009635e0 in camlMain__77 ()
#9  0x00007ff2553cd058 in ?? ()
#10 0x00007ff2303ba510 in ?? ()
#11 0x000000000064f39c in camlDtools__catch_1352 ()
#12 0x00007fffb1121a00 in ?? ()
#13 0x000000000064f2c5 in camlDtools__catch_1352 ()
#14 0x00007ff2303ba4b8 in ?? ()
#15 0x00000000009635e0 in camlMain__77 ()
#16 0x0000000000a95458 in camlDtools__71 ()
#17 0x00000000004da800 in camlMain__Make_1286 ()
#18 0x0000000000963610 in camlMain__92 ()
#19 0x0000000000963658 in camlMain__98 ()
#20 0x0000000000963640 in camlMain__94 ()
#21 0x00000000004db662 in camlMain__entry ()
#22 0x00000000009635e0 in camlMain__77 ()
#23 0x00000000004d764f in camlRunner__entry ()
#24 0x00007ff2553fd198 in ?? ()
#25 0x00000000004d3639 in caml_program ()
#26 0x000000000074894d in ?? ()
#27 0x00000000007348da in caml_start_program ()
#28 0x0000000000000000 in ?? ()
dbaelde commented 10 years ago

This time there's a lot of gstreamer stuff. If the unix socket server does not respond, there must be a deadlock somewhere: either in one of the duppy light threads, or the global caml lock as before in this issue...

toots commented 6 years ago

Hi,

Unfurtunately, this issue is so old that I don't think we'll be able to reproduce and/or fix in the current codebase. Closing here now..