[Bug 660331] New: souphttpsrc deadlocks under stress

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Sep 27 23:17:22 PDT 2011


https://bugzilla.gnome.org/show_bug.cgi?id=660331
  GStreamer | gst-plugins-good | 0.10.29

           Summary: souphttpsrc deadlocks under stress
    Classification: Platform
           Product: GStreamer
           Version: 0.10.29
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: mpaklin at hotmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


I have a simple app that builds a trivial pipeline souphttpsrc -> fakesink,
puts it into a running state, waits for a few seconds, stops the pipeline and
exits.
This app is run in the loop from two separate machines against custom HTTP
server running on another (3rd computer).

While stopping the pipeline the test locks up approximately once every two
days.
The lockup is observed on Linux machine running Fedora Core 15.
The core dump is available if necessary.
Here is the backtrace of all threads in the application.


(gdb) thread apply all  backtrace

Thread 3 (Thread 0xb78c06c0 (LWP 12718)):
#0  0x006d4416 in __kernel_vsyscall ()
#1  0x48cb4d52 in __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S:145
#2  0x48cb08c7 in _L_lock_600 () from /lib/libpthread-2.14.so
#3  0x48cb07b4 in __pthread_mutex_lock (mutex=0x9c64b08) at
pthread_mutex_lock.c:65
#4  0x413bb5ea in gst_base_src_set_flushing (basesrc=0x9d86068
[GstSoupHTTPSrc], flushing=1, live_play=0, unlock=1, playing=0x0) at
gstbasesrc.c:2843
#5  0x413bdea8 in gst_base_src_activate_push (pad=0x9d88010 [GstPad], active=0)
at gstbasesrc.c:2979
#6  0x414462d8 in gst_pad_activate_push (pad=0x9d88010 [GstPad], active=0) at
gstpad.c:953
#7  0x41447081 in gst_pad_set_active (pad=0x9d88010 [GstPad], active=0) at
gstpad.c:715
#8  0x41422e6d in activate_pads (pad=0x9d88010 [GstPad], ret=0xbf87bfcc,
active=0xbf87c02c) at gstelement.c:2802
#9  0x4143765b in gst_iterator_fold (it=0x9d9b870, func=0x41422e40
<activate_pads>, ret=0xbf87bfcc, user_data=0xbf87c02c) at gstiterator.c:549
#10 0x41422d8d in iterator_activate_fold_with_resync (iter=0x9d9b870,
func=0x41422e40 <activate_pads>, user_data=0xbf87c02c) at gstelement.c:2834
#11 0x41425882 in gst_element_pads_activate (element=0x9d86068
[GstSoupHTTPSrc], active=0) at gstelement.c:2870
#12 0x41425c39 in gst_element_change_state_func (element=0x9d86068
[GstSoupHTTPSrc], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at
gstelement.c:2960
#13 0x413c1834 in gst_base_src_change_state (element=0x9d86068
[GstSoupHTTPSrc], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at
gstbasesrc.c:3097
#14 0x41427c6c in gst_element_change_state (element=0x9d86068 [GstSoupHTTPSrc],
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstelement.c:2718
#15 0x41428725 in gst_element_set_state_func (element=0x9d86068
[GstSoupHTTPSrc], state=GST_STATE_READY) at gstelement.c:2674
#16 0x414279b1 in gst_element_set_state (element=0x9d86068 [GstSoupHTTPSrc],
state=GST_STATE_READY) at gstelement.c:2575
#17 0x41412be6 in gst_bin_element_set_state (next=GST_STATE_READY,
current=GST_STATE_PAUSED, start_time=0, base_time=0, element=0x9d86068
[GstSoupHTTPSrc], bin=
    0x9d81038 [GstPipeline]) at gstbin.c:2193
#18 gst_bin_change_state_func (element=0x9d81038 [GstPipeline],
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstbin.c:2489
#19 0x4144b281 in gst_pipeline_change_state (element=0x9d81038 [GstPipeline],
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstpipeline.c:482
#20 0x41427c6c in gst_element_change_state (element=0x9d81038 [GstPipeline],
transition=GST_STATE_CHANGE_PAUSED_TO_READY) at gstelement.c:2718
#21 0x41428725 in gst_element_set_state_func (element=0x9d81038 [GstPipeline],
state=GST_STATE_NULL) at gstelement.c:2674
#22 0x414279b1 in gst_element_set_state (element=0x9d81038 [GstPipeline],
state=GST_STATE_NULL) at gstelement.c:2575
#23 0x08049979 in MlsplayRunPipeline (grcDynamicURL=
    0xbf87e581
"http://10.0.0.121:8081/httpcd?instance_id=0&type=00000010&file=/dk/content/mp2ts-hd/MyCousinVinny.ts",
uTime=1, uPort=0, bUseAnalyzer=0, 
    pszSinkElement=0xbf87e578 "fakesink", ppszNameValues=<optimized out>) at
pipeline.c:398
#24 0x08049466 in main (argc=4, argv=0xbf87c5f4) at main.c:152

Thread 2 (Thread 0xb6cffb70 (LWP 12720)):
#0  0x006d4416 in __kernel_vsyscall ()
#1  0x48cb214c in pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:172
#2  0x48dc31fa in g_once_init_enter_impl (value_location=0x4901ad68) at
gthread.c:1117
#3  0x48f51830 in g_once_init_enter (value_location=0x4901ad68) at
../glib/gthread.h:350
#4  g_socket_address_get_type () at gsocketaddress.c:71
#5  0x48f527fe in g_socket_client_class_init (class=0xb6308fa0) at
gsocketclient.c:676
#6  g_socket_client_class_intern_init (klass=0xb6308fa0) at gsocketclient.c:73
#7  0x48ec6066 in type_class_init_Wm (pclass=0x9c600e0, node=0xb6308e70) at
gtype.c:2212
#8  g_type_class_ref (type=3056635504) at gtype.c:2912
#9  0x48ea9bcf in g_object_newv (object_type=3056635504, n_parameters=0,
parameters=0x0) at gobject.c:1384
#10 0x48eaa3f0 in g_object_new (object_type=3056635504,
first_property_name=0x0) at gobject.c:1308
#11 0x48f53435 in g_socket_client_new () at gsocketclient.c:176
#12 0x4d266c5c in soup_socket_connect_async (sock=0x9d8b278 [SoupSocket],
cancellable=0xb6301c40 [GCancellable], callback=0x4d243f90
<socket_connect_result>, 
    user_data=0xb6306140) at soup-socket.c:676
#13 0x4d243f82 in soup_connection_connect_async (conn=0x9d84ec0
[SoupConnection], cancellable=0xb6301c40 [GCancellable], callback=0x4d263ea0
<got_connection>, 
    user_data=0xb6301450) at soup-connection.c:491
#14 0x4d263a74 in process_queue_item (item=0xb6301450, should_prune=0xb6cfee6c,
loop=1) at soup-session-async.c:360
#15 0x4d263bf8 in run_queue (sa=<optimized out>) at soup-session-async.c:418
#16 0x4d259f44 in resolved_proxy (object=0x9d9ac08 [GProxyResolverGnome],
result=0xb6304128, data=0xb6305fb0) at soup-proxy-resolver-default.c:140
#17 0x48f4ce33 in g_simple_async_result_complete (simple=0xb6304128
[GSimpleAsyncResult]) at gsimpleasyncresult.c:747
#18 0x48f4cf5c in complete_in_idle_cb (data=0xb6304128) at
gsimpleasyncresult.c:757
---Type <return> to continue, or q <return> to quit---
#19 0x48d975d1 in g_idle_dispatch (source=0xb63084a0, callback=0x48f4cf40
<complete_in_idle_cb>, user_data=0xb6304128) at gmain.c:4558
#20 0x48d9b5bf in g_main_dispatch (context=0x9d8b588) at gmain.c:2441
#21 g_main_context_dispatch (context=0x9d8b588) at gmain.c:3014
#22 0x48d9bd30 in g_main_context_iterate (context=0x9d8b588, block=1222290048,
dispatch=1, self=0x9cbb6a8) at gmain.c:3092
#23 0x48d9c457 in g_main_loop_run (loop=0x9d89e40) at gmain.c:3300
#24 0x00115220 in gst_soup_http_src_create (psrc=0x9d86068 [GstSoupHTTPSrc],
outbuf=0xb6cff21c) at gstsouphttpsrc.c:1233
#25 0x413d42a1 in gst_push_src_create (bsrc=0x9d86068 [GstSoupHTTPSrc],
offset=0, length=4096, ret=0xb6cff21c) at gstpushsrc.c:117
#26 0x413bee92 in gst_base_src_get_range (src=0x9d86068 [GstSoupHTTPSrc],
offset=0, length=4096, buf=0xb6cff21c) at gstbasesrc.c:2145
#27 0x413c0cff in gst_base_src_loop (pad=0x9d88010 [GstPad]) at
gstbasesrc.c:2402
#28 0x414715f2 in gst_task_func (task=0x9d9c038 [GstTask]) at gsttask.c:318
#29 0x414727b9 in default_func (tdata=0x9d89f80, pool=0x9c60808 [GstTaskPool])
at gsttaskpool.c:70
#30 0x48dc5b07 in g_thread_pool_thread_proxy (data=0x9c60d00) at
gthreadpool.c:319
#31 0x48dc3535 in g_thread_create_proxy (data=0x9cbb6a8) at gthread.c:1955
#32 0x48caea2e in start_thread (arg=0xb6cffb70) at pthread_create.c:305
#33 0x48bf434e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133

Thread 1 (Thread 0xb769fb70 (LWP 12719)):
#0  0x006d4416 in __kernel_vsyscall ()
#1  0x48cb4d52 in __lll_lock_wait () at
../nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S:145
#2  0x48cb08c7 in _L_lock_600 () from /lib/libpthread-2.14.so
#3  0x48cb07b4 in __pthread_mutex_lock (mutex=0x48ee5d64) at
pthread_mutex_lock.c:65
#4  0x48dc39e5 in g_static_rec_mutex_lock (mutex=0x48ee5d60) at gthread.c:1443
#5  0x48ec88bc in g_type_add_interface_static (instance_type=3067104048,
interface_type=3056627696, info=0xb769eef4) at gtype.c:2807
#6  0x48f518b3 in g_socket_address_get_type () at gsocketaddress.c:71
#7  0x48f716d9 in g_unix_socket_address_get_type () at gunixsocketaddress.c:60
#8  0x48f71888 in g_unix_socket_address_new_with_type (path=0xb6d04c20
"/tmp/dbus-mKBFQTjyLa", path_len=<optimized out>,
type=G_UNIX_SOCKET_ADDRESS_ABSTRACT)
    at gunixsocketaddress.c:426
#9  0x48f884f0 in g_dbus_address_connect (error=0xb769f04c, cancellable=0x0,
key_value_pairs=0xb6d01e90 = {...}, transport_name=0xb6d04990 "unix", 
    address_entry=0xb6d05800
"unix:abstract=/tmp/dbus-mKBFQTjyLa,guid=15f2f23fb2e28adbe651a91d00000091") at
gdbusaddress.c:557
#10 g_dbus_address_try_connect_one (address_entry=0xb6d05800
"unix:abstract=/tmp/dbus-mKBFQTjyLa,guid=15f2f23fb2e28adbe651a91d00000091",
out_guid=0x0, 
    cancellable=0x0, error=0xb769f04c) at gdbusaddress.c:755
#11 0x48f89075 in g_dbus_address_get_stream_sync (address=0xb6d05850
"unix:abstract=/tmp/dbus-mKBFQTjyLa,guid=15f2f23fb2e28adbe651a91d00000091",
out_guid=0x0, 
    cancellable=0x0, error=0xb6d05088) at gdbusaddress.c:949
#12 0x48f9ac89 in initable_init (initable=0xb6d05050, cancellable=0x0,
error=0xb769f17c) at gdbusconnection.c:2312
#13 0x48f3a17a in g_initable_init (initable=0xb6d05050, cancellable=0x0,
error=0xb769f17c) at ginitable.c:106
#14 0x48f9b1b4 in g_bus_get_sync (bus_type=G_BUS_TYPE_SESSION, cancellable=0x0,
error=0xb769f17c) at gdbusconnection.c:6320
#15 0x004e394c in dconf_settings_backend_send (dcsb=0x9d6d908
[DConfSettingsBackend], dcem=0xb769f1b0, callback=0x4e44a0 <add_match_done>,
user_data=0x9cc1808)
    at dconfsettingsbackend.c:142
#16 0x004e3dc8 in dconf_settings_backend_subscribe_context_func
(data=0x9cc1808) at dconfsettingsbackend.c:585
#17 0x48d975d1 in g_idle_dispatch (source=0x9d9b6d0, callback=0x4e3d70
<dconf_settings_backend_subscribe_context_func>, user_data=0x9cc1808) at
gmain.c:4558
#18 0x48d9b5bf in g_main_dispatch (context=0x9cc0b08) at gmain.c:2441
#19 g_main_context_dispatch (context=0x9cc0b08) at gmain.c:3014
#20 0x48d9bd30 in g_main_context_iterate (context=0x9cc0b08, block=1222290048,
dispatch=1, self=0x9cc0b98) at gmain.c:3092
#21 0x48d9c457 in g_main_loop_run (loop=0xb6d00cb0) at gmain.c:3300
#22 0x004e3415 in dconf_context_thread (data=0x9cc0b08) at dconfcontext.c:11
#23 0x48dc3535 in g_thread_create_proxy (data=0x9cc0b98) at gthread.c:1955
#24 0x48caea2e in start_thread (arg=0xb769fb70) at pthread_create.c:305
#25 0x48bf434e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133
(gdb) 

I did not try to dig deeper, but on the surface it looks like a deadlock caused
by souphttpsrc.

Regards,
-- Max Paklin.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list