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 709210 - Hangs on startup getting PulseAudio volume
Hangs on startup getting PulseAudio volume
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 1.2.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-10-01 16:49 UTC by Bastien Nocera
Modified: 2013-10-10 10:31 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Bastien Nocera 2013-10-01 16:49:00 UTC
Launching Totem with an mp3 on the command-line sometimes hangs with the following bt.

The file has a cover image, and visualisation is enabled.

Thread 14 (Thread 0x7fffd3977700 (LWP 6567))

  • #0 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S line 135
  • #1 _L_lock_874
    from /lib64/libpthread.so.0
  • #2 __GI___pthread_mutex_lock
    at ../nptl/pthread_mutex_lock.c line 114
  • #3 gst_play_sink_vis_blocked
    at gstplaysink.c line 910
  • #4 probe_hook_marshal
    at gstpad.c line 3058
  • #5 g_hook_list_marshal
    at ghook.c line 676
  • #6 do_probe_callbacks
    at gstpad.c line 3152
  • #7 gst_pad_push_data
    at gstpad.c line 3924
  • #8 gst_pad_push
    at gstpad.c line 4044
  • #9 gst_queue_push_one
    at gstqueue.c line 1119
  • #10 gst_queue_loop
    at gstqueue.c line 1248
  • #11 gst_task_func
    at gsttask.c line 316
  • #12 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #13 g_thread_proxy
    at gthread.c line 798
  • #14 start_thread
    at pthread_create.c line 309
  • #15 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 10 (Thread 0x7fffd67fd700 (LWP 6563))

  • #0 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S line 135
  • #1 _L_lock_874
    from /lib64/libpthread.so.0
  • #2 __GI___pthread_mutex_lock
    at ../nptl/pthread_mutex_lock.c line 114
  • #3 gst_pad_stop_task
    at gstpad.c line 5470
  • #4 gst_pad_activate_mode
    at gstpad.c line 1081
  • #5 gst_pad_set_active
    at gstpad.c line 967
  • #6 activate_pads
    at gstelement.c line 2687
  • #7 gst_iterator_fold
    at gstiterator.c line 614
  • #8 iterator_activate_fold_with_resync
    at gstelement.c line 2707
  • #9 gst_element_pads_activate
    at gstelement.c line 2743
  • #10 gst_element_change_state_func
    at gstelement.c line 2815
  • #11 gst_element_change_state
    at gstelement.c line 2602
  • #12 gst_element_set_state_func
    at gstelement.c line 2558
  • #13 gst_bin_element_set_state
    at gstbin.c line 2325
  • #14 gst_bin_change_state_func
    at gstbin.c line 2648
  • #15 gst_element_change_state
    at gstelement.c line 2602
  • #16 gst_element_continue_state
    at gstelement.c line 2312
  • #17 gst_element_change_state
    at gstelement.c line 2639
  • #18 gst_element_set_state_func
    at gstelement.c line 2558
  • #19 activate_chain
    at gstplaysink.c line 1136
  • #20 activate_chain
    at gstplaysink.c line 3379
  • #21 gst_play_sink_do_reconfigure
    at gstplaysink.c line 3369
  • #22 sinkpad_blocked_cb
    at gstplaysink.c line 3922
  • #23 probe_hook_marshal
    at gstpad.c line 3058
  • #24 g_hook_list_marshal
    at ghook.c line 676
  • #25 do_probe_callbacks
    at gstpad.c line 3152
  • #26 gst_pad_push_data
    at gstpad.c line 3924
  • #27 gst_pad_push
    at gstpad.c line 4044
  • #28 gst_proxy_pad_chain_default
    at gstghostpad.c line 128
  • #29 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #30 gst_pad_push_data
    at gstpad.c line 3941
  • #31 gst_pad_push
    at gstpad.c line 4044
  • #32 gst_selector_pad_chain
    at gstinputselector.c line 1087
  • #33 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #34 gst_pad_push_data
    at gstpad.c line 3941
  • #35 gst_pad_push
    at gstpad.c line 4044
  • #36 gst_proxy_pad_chain_default
    at gstghostpad.c line 128
  • #37 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #38 gst_pad_push_data
    at gstpad.c line 3941
  • #39 gst_pad_push
    at gstpad.c line 4044
  • #40 gst_proxy_pad_chain_default
    at gstghostpad.c line 128
  • #41 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #42 gst_pad_push_data
    at gstpad.c line 3941
  • #43 gst_pad_push
    at gstpad.c line 4044
  • #44 gst_audio_decoder_push_forward
    at gstaudiodecoder.c line 876
  • #45 gst_audio_decoder_output
    at gstaudiodecoder.c line 952
  • #46 gst_audio_decoder_finish_frame
    at gstaudiodecoder.c line 1156
  • #47 gst_mad_handle_frame
    from /usr/lib64/gstreamer-1.0/libgstmad.so
  • #48 gst_audio_decoder_push_buffers
    at gstaudiodecoder.c line 1301
  • #49 gst_audio_decoder_chain_forward
    at gstaudiodecoder.c line 1404
  • #50 gst_audio_decoder_chain
    at gstaudiodecoder.c line 1672
  • #51 gst_pad_chain_data_unchecked
    at gstpad.c line 3711
  • #52 gst_pad_push_data
    at gstpad.c line 3941
  • #53 gst_pad_push
    at gstpad.c line 4044
  • #54 gst_base_parse_push_frame
    at gstbaseparse.c line 2280
  • #55 gst_base_parse_handle_and_push_frame
    at gstbaseparse.c line 2102
  • #56 gst_base_parse_finish_frame
    at gstbaseparse.c line 2406
  • #57 gst_mpeg_audio_parse_handle_frame
    from /usr/lib64/gstreamer-1.0/libgstaudioparsers.so
  • #58 gst_base_parse_handle_buffer
    at gstbaseparse.c line 1956
  • #59 gst_base_parse_scan_frame
    at gstbaseparse.c line 3047
  • #60 gst_base_parse_loop
    at gstbaseparse.c line 3120
  • #61 gst_task_func
    at gsttask.c line 316
  • #62 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #63 g_thread_proxy
    at gthread.c line 798
  • #64 start_thread
    at pthread_create.c line 309
  • #65 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 111

Thread 1 (Thread 0x7ffff70cd9c0 (LWP 6550))

  • #0 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S line 135
  • #1 _L_lock_874
    from /lib64/libpthread.so.0
  • #2 __GI___pthread_mutex_lock
    at ../nptl/pthread_mutex_lock.c line 114
  • #3 gst_play_sink_get_volume
    at gstplaysink.c line 1036
  • #4 gst_play_bin_get_property
    at gstplaybin2.c line 2522
  • #5 object_get_property
    at gobject.c line 1303
  • #6 g_object_get_valist
    at gobject.c line 2193
  • #7 g_object_get
    at gobject.c line 2283
  • #8 gst_stream_volume_get_volume
    at streamvolume.c line 111
  • #9 notify_volume_idle_cb
    at bacon-video-widget.c line 5196
  • #10 g_main_dispatch
    at gmain.c line 3065
  • #11 g_main_context_dispatch
    at gmain.c line 3641
  • #12 g_main_context_iterate
    at gmain.c line 3712
  • #13 g_main_context_iteration
    at gmain.c line 3773
  • #14 g_application_run
    at gapplication.c line 1635
  • #15 main
    at totem.c line 284

Comment 1 Sebastian Dröge (slomo) 2013-10-02 13:04:10 UTC
ommit dd4fe544bcafcf0f00660811d6c5d2b68b69ca25
Author: Sebastian Dröge <slomo@circular-chaos.org>
Date:   Wed Oct 2 15:02:44 2013 +0200

    playsink: If the visualisation is changing and reconfiguration is pending, do it all during reconfiguration
    
    Otherwise we will have two pad blocks that want to use the same mutex
    and block each other via the streamlock.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=709210