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 602140 - context: segfault from libwebkit or in python bindings?
context: segfault from libwebkit or in python bindings?
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: Plugins (other)
HEAD
Other Linux
: High critical
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
: 602974 603726 603945 603957 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-11-16 21:20 UTC by John Daiker
Modified: 2009-12-07 09:55 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description John Daiker 2009-11-16 21:20:16 UTC
Was listening to some local mp3's and noticed Rhythmbox had randomly died.  Restarted from inside a gdb session, and noticed the following crasher/hanger (apparently) from the context plugin.  The currently playing song was 1 second away from changing to another song in the same auto playlist, by the same artist.  Shuffle and repeat were not active.

I have a feeling that 'Thread 28' is somehow the culprit.

A gdb backtrace:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffce57f910 (LWP 14657)]
0x00007fffdf137d18 in ?? () from /usr/lib/libwebkit-1.0.so.2
(gdb) thread apply all bt

Thread 28 (Thread 0x7fffce57f910 (LWP 14657))

  • #0 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #1 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #2 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #3 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #4 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #5 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #6 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #7 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #8 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #9 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #10 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #11 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #12 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #13 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #14 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #15 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #16 ??
    from /usr/lib/libwebkit-1.0.so.2
  • #17 ??
    from /usr/lib/pymodules/python2.6/gtk-2.0/webkit.so
  • #18 PyEval_EvalFrameEx
    from /usr/lib/libpython2.6.so.1.0
  • #19 PyEval_EvalFrameEx
    from /usr/lib/libpython2.6.so.1.0
  • #20 PyEval_EvalFrameEx
    from /usr/lib/libpython2.6.so.1.0
  • #21 PyEval_EvalCodeEx
    from /usr/lib/libpython2.6.so.1.0
  • #22 ??
    from /usr/lib/libpython2.6.so.1.0
  • #23 PyObject_Call
    from /usr/lib/libpython2.6.so.1.0
  • #24 ??
    from /usr/lib/libpython2.6.so.1.0
  • #25 PyObject_Call
    from /usr/lib/libpython2.6.so.1.0
  • #26 PyEval_CallObjectWithKeywords
    from /usr/lib/libpython2.6.so.1.0
  • #27 ??
    from /usr/lib/pymodules/python2.6/gtk-2.0/gobject/_gobject.so
  • #28 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #29 ??
    from /usr/lib/libgobject-2.0.so.0
  • #30 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #31 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #32 playing_stream_cb
    at rb-shell-player.c line 3423
  • #33 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #34 ??
    from /usr/lib/libgobject-2.0.so.0
  • #35 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #36 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #37 impl_play
    at rb-player-gst.c line 806
  • #38 rb_shell_player_open_location
    at rb-shell-player.c line 1555
  • #39 rb_shell_player_set_playing_entry
    at rb-shell-player.c line 1671
  • #40 rb_shell_player_do_next_internal
    at rb-shell-player.c line 2125
  • #41 rb_shell_player_handle_eos_unlocked
    at rb-shell-player.c line 834
  • #42 rb_shell_player_handle_eos
    at rb-shell-player.c line 899
  • #43 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #44 ??
    from /usr/lib/libgobject-2.0.so.0
  • #45 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #46 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #47 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #48 ??
    from /usr/lib/libgobject-2.0.so.0
  • #49 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #50 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #51 ??
    from /usr/lib/gstreamer-0.10/libgstplaybin.so
  • #52 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #53 ??
    from /usr/lib/libgobject-2.0.so.0
  • #54 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #55 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #56 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #57 ??
    from /usr/lib/libgobject-2.0.so.0
  • #58 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #59 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #60 ??
    from /usr/lib/gstreamer-0.10/libgstdecodebin2.so
  • #61 gst_marshal_BOOLEAN__POINTER
    from /usr/lib/libgstreamer-0.10.so.0
  • #62 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #63 ??
    from /usr/lib/libgobject-2.0.so.0
  • #64 ??
    from /usr/lib/libgstreamer-0.10.so.0
  • #65 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #66 gst_pad_send_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #67 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #68 gst_pad_event_default
    from /usr/lib/libgstreamer-0.10.so.0
  • #69 ??
    from /usr/lib/gstreamer-0.10/libgstflump3dec.so
  • #70 gst_pad_send_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #71 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #72 ??
    from /usr/lib/gstreamer-0.10/libgstmpegaudioparse.so
  • #73 gst_pad_send_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #74 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #75 gst_pad_event_default
    from /usr/lib/libgstreamer-0.10.so.0
  • #76 ??
    from /usr/lib/libgsttag-0.10.so.0
  • #77 gst_pad_send_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #78 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #79 ??
    from /usr/lib/gstreamer-0.10/libgstcoreelements.so
  • #80 gst_pad_send_event
  • #81 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #82 gst_pad_send_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #83 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #84 ??
    from /usr/lib/libgstbase-0.10.so.0
  • #85 ??
    from /usr/lib/libgstreamer-0.10.so.0
  • #86 ??
    from /lib/libglib-2.0.so.0
  • #87 ??
    from /lib/libglib-2.0.so.0
  • #88 start_thread
    from /lib/libpthread.so.0
  • #89 clone
    from /lib/libc.so.6
  • #90 ??

Comment 1 Jonathan Matthew 2009-11-16 21:29:42 UTC
Thanks for taking the time to report this bug.
Unfortunately, that stack trace is missing some elements that will help a lot to solve the problem, so it will be hard for the developers to fix that crash. Can you get us a stack trace with debugging symbols? Please see http://live.gnome.org/GettingTraces for more information on how to do so and reopen this bug or report a new one. Thanks in advance!
Comment 2 John Daiker 2009-11-16 21:44:11 UTC
For your viewing pleasure, a stacktrace with webkit, gtk, and glib debug packages installed.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffcd93f910 (LWP 15385)]
push_heap<WebCore::TimerHeapIterator> (this=<value optimized out>) at /usr/include/c++/4.4/bits/stl_heap.h:168
168	      _ValueType __value = _GLIBCXX_MOVE(*(__last - 1));
Current language:  auto
The current source language is "auto; currently c++".
(gdb) thread apply all bt

Thread 22 (Thread 0x7fffcd93f910 (LWP 15385))

  • #0 push_heap<WebCore::TimerHeapIterator>
    at /usr/include/c++/4.4/bits/stl_heap.h line 168
  • #1 WebCore::TimerBase::heapDecreaseKey
    at ../WebCore/platform/Timer.cpp line 235
  • #2 WebCore::TimerBase::heapPop
    at ../WebCore/platform/Timer.cpp line 275
  • #3 WebCore::TimerBase::heapDelete
    at ../WebCore/platform/Timer.cpp line 242
  • #4 WebCore::TimerBase::setNextFireTime
    at ../WebCore/platform/Timer.cpp line 305
  • #5 WebCore::MainResourceLoader::didCancel
    at ../WebCore/loader/MainResourceLoader.cpp line 90
  • #6 WebCore::ResourceLoader::cancel
    at ../WebCore/loader/ResourceLoader.cpp line 350
  • #7 WebCore::ResourceLoader::cancel
    at ../WebCore/loader/ResourceLoader.cpp line 340
  • #8 WebCore::DocumentLoader::stopLoading
    at ../WebCore/loader/DocumentLoader.cpp line 294
  • #9 WebCore::FrameLoader::stopAllLoaders
    at ../WebCore/loader/FrameLoader.cpp line 2773
  • #10 WebCore::FrameLoader::continueLoadAfterNavigationPolicy
    at ../WebCore/loader/FrameLoader.cpp line 4121
  • #11 WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy
    at ../WebCore/loader/FrameLoader.cpp line 4078
  • #12 WebCore::PolicyCheck::call
    at ../WebCore/loader/FrameLoader.cpp line 5138
  • #13 WebCore::FrameLoader::continueAfterNavigationPolicy
    at ../WebCore/loader/FrameLoader.cpp line 4071
  • #14 WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction
  • #15 WebCore::FrameLoader::checkNavigationPolicy
    at ../WebCore/loader/FrameLoader.cpp line 4040
  • #16 WebCore::FrameLoader::loadWithDocumentLoader
    at ../WebCore/loader/FrameLoader.cpp line 2498
  • #17 WebCore::FrameLoader::load
    at ../WebCore/loader/FrameLoader.cpp line 2459
  • #18 WebCore::FrameLoader::load
    at ../WebCore/loader/FrameLoader.cpp line 2400
  • #19 webkit_web_frame_load_data
    at ../WebKit/gtk/webkit/webkitwebframe.cpp line 533
  • #20 ??
    from /usr/lib/pymodules/python2.6/gtk-2.0/webkit.so
  • #21 PyEval_EvalFrameEx
    from /usr/lib/libpython2.6.so.1.0
  • #22 PyEval_EvalFrameEx
    from /usr/lib/libpython2.6.so.1.0
  • #23 PyEval_EvalFrameEx
    from /usr/lib/libpython2.6.so.1.0
  • #24 PyEval_EvalCodeEx
    from /usr/lib/libpython2.6.so.1.0
  • #25 ??
    from /usr/lib/libpython2.6.so.1.0
  • #26 PyObject_Call
    from /usr/lib/libpython2.6.so.1.0
  • #27 ??
    from /usr/lib/libpython2.6.so.1.0
  • #28 PyObject_Call
    from /usr/lib/libpython2.6.so.1.0
  • #29 PyEval_CallObjectWithKeywords
    from /usr/lib/libpython2.6.so.1.0
  • #30 ??
    from /usr/lib/pymodules/python2.6/gtk-2.0/gobject/_gobject.so
  • #31 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.22.2/gobject/gclosure.c line 767
  • #32 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3247
  • #33 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 2980
  • #34 IA__g_signal_emit
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3037
  • #35 playing_stream_cb
    at rb-shell-player.c line 3423
  • #36 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.22.2/gobject/gclosure.c line 767
  • #37 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3247
  • #38 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 2980
  • #39 IA__g_signal_emit
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3037
  • #40 impl_play
    at rb-player-gst.c line 806
  • #41 rb_shell_player_open_location
    at rb-shell-player.c line 1555
  • #42 rb_shell_player_set_playing_entry
    at rb-shell-player.c line 1671
  • #43 rb_shell_player_do_next_internal
    at rb-shell-player.c line 2125
  • #44 rb_shell_player_handle_eos_unlocked
    at rb-shell-player.c line 834
  • #45 rb_shell_player_handle_eos
    at rb-shell-player.c line 899
  • #46 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.22.2/gobject/gclosure.c line 767
  • #47 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3247
  • #48 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 2980
  • #49 IA__g_signal_emit
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3037
  • #50 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.22.2/gobject/gclosure.c line 767
  • #51 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3247
  • #52 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 2980
  • #53 IA__g_signal_emit
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3037
  • #54 ??
    from /usr/lib/gstreamer-0.10/libgstplaybin.so
  • #55 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.22.2/gobject/gclosure.c line 767
  • #56 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3247
  • #57 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 2980
  • #58 IA__g_signal_emit
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3037
  • #59 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.22.2/gobject/gclosure.c line 767
  • #60 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3247
  • #61 IA__g_signal_emit_valist
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 2980
  • #62 IA__g_signal_emit
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3037
  • #63 ??
    from /usr/lib/gstreamer-0.10/libgstdecodebin2.so
  • #64 gst_marshal_BOOLEAN__POINTER
    from /usr/lib/libgstreamer-0.10.so.0
  • #65 IA__g_closure_invoke
    at /build/buildd/glib2.0-2.22.2/gobject/gclosure.c line 767
  • #66 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.22.2/gobject/gsignal.c line 3247
  • #67 ??
    from /usr/lib/libgstreamer-0.10.so.0
  • #68 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #69 gst_pad_send_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #70 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #71 gst_pad_event_default
    from /usr/lib/libgstreamer-0.10.so.0
  • #72 ??
    from /usr/lib/gstreamer-0.10/libgstflump3dec.so
  • #73 gst_pad_send_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #74 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #75 ??
    from /usr/lib/gstreamer-0.10/libgstmpegaudioparse.so
  • #76 gst_pad_send_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #77 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #78 gst_pad_event_default
    from /usr/lib/libgstreamer-0.10.so.0
  • #79 ??
    from /usr/lib/libgsttag-0.10.so.0
  • #80 gst_pad_send_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #81 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #82 ??
    from /usr/lib/gstreamer-0.10/libgstcoreelements.so
  • #83 gst_pad_send_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #84 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #85 gst_pad_send_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #86 gst_pad_push_event
    from /usr/lib/libgstreamer-0.10.so.0
  • #87 ??
    from /usr/lib/libgstbase-0.10.so.0
  • #88 ??
    from /usr/lib/libgstreamer-0.10.so.0
  • #89 g_thread_pool_thread_proxy
    at /build/buildd/glib2.0-2.22.2/glib/gthreadpool.c line 265
  • #90 g_thread_create_proxy
    at /build/buildd/glib2.0-2.22.2/glib/gthread.c line 635
  • #91 start_thread
    from /lib/libpthread.so.0
  • #92 clone
    from /lib/libc.so.6
  • #93 ??

Comment 3 Jonathan Matthew 2009-11-25 21:03:28 UTC
*** Bug 602974 has been marked as a duplicate of this bug. ***
Comment 4 Jonathan Matthew 2009-11-25 21:03:58 UTC
If you enable crossfading it'll probably stop crashing.
Comment 5 Jonathan Matthew 2009-11-26 21:18:44 UTC
fixed in commit e93fd2d7afe1411a5a60052a4adecd6a56db5b7b
Comment 6 Jonathan Matthew 2009-12-03 20:15:26 UTC
*** Bug 603726 has been marked as a duplicate of this bug. ***
Comment 7 Jonathan Matthew 2009-12-07 04:49:37 UTC
*** Bug 603945 has been marked as a duplicate of this bug. ***
Comment 8 Jonathan Matthew 2009-12-07 09:55:51 UTC
*** Bug 603957 has been marked as a duplicate of this bug. ***