GNOME Bugzilla – Bug 761234
souphttpsrc crashes when used more than once (not re-used, a new element)
Last modified: 2016-02-02 22:41:00 UTC
Created attachment 319917 [details] souphttpsrc stack trace I see crashes in libsouphttpsrc when using the element a second time. This is not reusing the element but creating a new pipeline. I'm using a playbin to the create the pipline: pipeline parse_launch playbin uri="http://...m3u8" pipeline state PLAYING pipeline state NULL pipeline unref start from parse_launch again. The stack trace shows a lot of glib/gio involvement so perhaps the error is found there? At least it always happens at the strlen(). I _think_ this worked just fine on 1.6.0 but saw it happening on 1.6.2 as well. So I would suspect the error was introduced in 1.6.1 or 1.6.2 changes.
There was no change between 1.6.0 and 1.6.2/3 in glib or libsoup. It looks like a bug in glib though. Can you get a backtrace with line numbers, and also any output you get on the terminal about this? There are probably some assertions/warnings?
There is no warning or assert unfortunately. It plainly crashes with a Segmentation fault: 11 I'm mostly using the official binary release of GStreamer because of ease of use so I'm not sure on how to easily generate a release with debugging symbols in them :/ Or is there a way to grab the debugging symbols for the release? I may try to do so.. but I'm not sure how quickly I can provide further details. In the meantime this is some info from the debugger, maybe it gives some more hints? * thread #17: tid = 0x23ab0, 0x00007fff9d720152 libsystem_c.dylib`strlen + 18, name = 'souphttpsrc3:src', stop reason = EXC_BAD_ACCESS (code=1, address=0x700000633ed0) frame #0: 0x00007fff9d720152 libsystem_c.dylib`strlen + 18 libsystem_c.dylib`strlen: -> 0x7fff9d720152 <+18>: pcmpeqb (%rdi), %xmm0 0x7fff9d720156 <+22>: pmovmskb %xmm0, %esi 0x7fff9d72015a <+26>: andq $0xf, %rcx 0x7fff9d72015e <+30>: orq $-0x1, %rax (lldb) bt * thread #17: tid = 0x23ab0, 0x00007fff9d720152 libsystem_c.dylib`strlen + 18, name = 'souphttpsrc3:src', stop reason = EXC_BAD_ACCESS (code=1, address=0x700000633ed0) * frame #0: 0x00007fff9d720152 libsystem_c.dylib`strlen + 18 frame #1: 0x0000000100a02f8d libglib-2.0.0.dylib`g_strdup + 29 frame #2: 0x00000001009d8894 libglib-2.0.0.dylib`g_error_new_literal + 58 frame #3: 0x00000001009d8b19 libglib-2.0.0.dylib`g_set_error_literal + 64 frame #4: 0x0000000100861554 libgio-2.0.0.dylib`g_socket_receive_with_blocking + 333 frame #5: 0x0000000100857a6a libgio-2.0.0.dylib`g_pollable_input_stream_read_nonblocking + 169 frame #6: 0x0000000100857a6a libgio-2.0.0.dylib`g_pollable_input_stream_read_nonblocking + 169 frame #7: 0x00000001007826fb libsoup-2.4.1.dylib`soup_filter_input_stream_read_until + 237 frame #8: 0x0000000100782608 libsoup-2.4.1.dylib`soup_filter_input_stream_read_line + 57 frame #9: 0x000000010078b3f4 libsoup-2.4.1.dylib`io_read + 213 frame #10: 0x000000010078a2db libsoup-2.4.1.dylib`io_run_until + 355 frame #11: 0x000000010078af28 libsoup-2.4.1.dylib`io_run + 146 ..
I'm closing this. Indeed my glib install seemed wonky and it picked up the wrong libraries when linking my application. I moved the wrongly picked up libraries away and rebuild my application. And indeed the issue went away immediately. My bad, and sorry for the noise.
Thanks for letting us know!