After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 761234 - souphttpsrc crashes when used more than once (not re-used, a new element)
souphttpsrc crashes when used more than once (not re-used, a new element)
Status: RESOLVED INVALID
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.6.3
Other Mac OS
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-01-28 11:51 UTC by Florian Zwoch
Modified: 2016-02-02 22:41 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
souphttpsrc stack trace (3.53 KB, text/plain)
2016-01-28 11:51 UTC, Florian Zwoch
Details

Description Florian Zwoch 2016-01-28 11:51:18 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.
Comment 1 Sebastian Dröge (slomo) 2016-01-28 12:27:19 UTC
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?
Comment 2 Florian Zwoch 2016-01-28 13:04:31 UTC
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

..
Comment 3 Florian Zwoch 2016-02-02 22:01:06 UTC
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.
Comment 4 Tim-Philipp Müller 2016-02-02 22:41:00 UTC
Thanks for letting us know!