Summary: | Files media source add unplayable file to list and amarok crash if the next song in the list is unplayable | ||
---|---|---|---|
Product: | [Unmaintained] phonon-backend-gstreamer | Reporter: | Wujun Zhou <zwj.echo> |
Component: | general | Assignee: | Rohan Garg <rohan> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | matej, myriam, romain.perier, sitter, tdfischer |
Priority: | NOR | ||
Version: | 4.6.3 | ||
Target Milestone: | 4.7 | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | The whole backtrace |
Description
Wujun Zhou
2013-06-16 08:23:46 UTC
Please install debugging symbols for the phonon-backend-gstreamer, this is not a problem with Amarok, but with that backend. Created attachment 80566 [details]
The whole backtrace
Yes. I know the crash problem is more likely a upstream problem and I will file bug report to them once I find more info. (I don't want to file something like "crash unknown reason"). I suspect the problem may be related to crossfade, because play the unplayable file is fine. But the first one, "Unplayable file enter the playlist (using Files media source)", may be a bug of amarok. (That's why I choose the bug component to "File Browser") I find that the "Files" media source can ignore 0 size file, but not anything else. For my case, I have some ._xxx.m4a created by another Apple computer. (My collection is on a NFS and shard by my Linux and my wife's Apple. The apple will create these ._abc.mp3 for each abc.mp3) When I use "replace the playlist" of "Files", it adds these unplayable ._xxx.m4a into my playlist. Which makes my list not very usable. (Playback will stop on these unplayable files even upstream fix the crash problem) Thus, I hope the amarok can fix this by implementing a general filter to exclude files based on regex, or just filtering files starting with ._, as I have mentioned. PS: additional info on the "Steps to Reproduce": The created ._XX.mp3 must have non-zero size. I also fine some additional info on the terminal: (amarok:14322): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT (object)' failed KCrash: Application 'amarok' crashing... KCrash: Attempting to start /usr/lib64/kde4/libexec/drkonqi from kdeinit sock_file=/home/wujun/.kde4/socket-g/kdeinit4__0 I also reproduce a backtrace with missing symbol fixed. I think the related is following: (The attachment is the whole backtrace in case I'm wrong) Thread 1 (Thread 0x7f2192861780 (LWP 1186)): [KCrash Handler] #5 g_value_set_object (value=0x7fff08d53990, v_object=0xffffffff) at gobject.c:3411 #6 0x00007f2179bd12d8 in gst_play_bin_get_property (object=0x11ba1b0, prop_id=<optimized out>, value=0x7fff08d53990, pspec=<optimized out>) at gstplaybin2.c:2018 #7 0x00007f2182147cae in object_get_property (value=0x7fff08d53990, pspec=<optimized out>, object=0x11ba1b0) at gobject.c:1289 #8 g_object_get_valist (object=object@entry=0x11ba1b0, first_property_name=first_property_name@entry=0x7f217b78c86d "source", var_args=var_args@entry=0x7fff08d53a38) at gobject.c:2014 #9 0x00007f2182148127 in g_object_get (_object=0x11ba1b0, first_property_name=0x7f217b78c86d "source") at gobject.c:2104 #10 0x00007f217b781adb in Phonon::Gstreamer::Pipeline::cb_setupSource (playbin=<optimized out>, param=<optimized out>, data=0x1199410) at /var/tmp/portage/media-libs/phonon-gstreamer-4.6.3/work/phonon-backend-gstreamer-4.6.3/gstreamer/pipeline.cpp:828 #11 0x00007f2182140510 in g_closure_invoke (closure=0x11bd8c0, return_value=0x0, n_param_values=2, param_values=0x7fff08d53e20, invocation_hint=0x7fff08d53dc0) at gclosure.c:777 #12 0x00007f2182150f20 in signal_emit_unlocked_R (node=node@entry=0xdfd1f0, detail=detail@entry=1817, instance=instance@entry=0x11ba1b0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fff08d53e20) at gsignal.c:3551 #13 0x00007f2182158b4a in g_signal_emit_valist (instance=0x11ba1b0, signal_id=<optimized out>, detail=1817, var_args=var_args@entry=0x7fff08d54078) at gsignal.c:3300 #14 0x00007f2182158d0a in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3356 #15 0x00007f2182144d51 in g_object_dispatch_properties_changed (object=0x11ba1b0, n_pspecs=2, pspecs=0x0) at gobject.c:1041 #16 0x00007f21823a7db4 in ?? () from /usr/lib64/libgstreamer-0.10.so.0 #17 0x00007f21821465fb in g_object_notify_by_spec_internal (pspec=0x11b6280, object=0x11ba1b0) at gobject.c:1133 #18 g_object_notify (object=object@entry=0x11ba1b0, property_name=property_name@entry=0x7f2179bf4b2b "source") at gobject.c:1175 #19 0x00007f2179bcd89f in notify_source_cb (uridecodebin=<optimized out>, pspec=<optimized out>, group=<optimized out>) at gstplaybin2.c:3445 #20 0x00007f2182140510 in g_closure_invoke (closure=0x7f20b80187c0, return_value=0x0, n_param_values=2, param_values=0x7fff08d54420, invocation_hint=0x7fff08d543c0) at gclosure.c:777 #21 0x00007f2182150f20 in signal_emit_unlocked_R (node=node@entry=0xdfd1f0, detail=detail@entry=1817, instance=instance@entry=0x2fba930, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fff08d54420) at gsignal.c:3551 #22 0x00007f2182158b4a in g_signal_emit_valist (instance=0x2fba930, signal_id=<optimized out>, detail=1817, var_args=var_args@entry=0x7fff08d54678) at gsignal.c:3300 #23 0x00007f2182158d0a in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3356 #24 0x00007f2182144d51 in g_object_dispatch_properties_changed (object=0x2fba930, n_pspecs=2, pspecs=0x0) at gobject.c:1041 #25 0x00007f21823a7db4 in ?? () from /usr/lib64/libgstreamer-0.10.so.0 #26 0x00007f21821465fb in g_object_notify_by_spec_internal (pspec=0x11b7720, object=0x2fba930) at gobject.c:1133 #27 g_object_notify (object=object@entry=0x2fba930, property_name=property_name@entry=0x7f20c7ffe549 "source") at gobject.c:1175 #28 0x00007f20c7ffa2d3 in setup_source (decoder=0x2fba930) at gsturidecodebin.c:2015 #29 gst_uri_decode_bin_change_state (element=0x2fba930, transition=<optimized out>) at gsturidecodebin.c:2493 #30 0x00007f21823c100c in gst_element_change_state () from /usr/lib64/libgstreamer-0.10.so.0 #31 0x00007f21823c1958 in ?? () from /usr/lib64/libgstreamer-0.10.so.0 #32 0x00007f21823af2b7 in ?? () from /usr/lib64/libgstreamer-0.10.so.0 #33 0x00007f21823def85 in ?? () from /usr/lib64/libgstreamer-0.10.so.0 #34 0x00007f2179bcf871 in gst_play_bin_change_state (element=0x11ba1b0, transition=GST_STATE_CHANGE_READY_TO_PAUSED) at gstplaybin2.c:3936 #35 0x00007f21823c100c in gst_element_change_state () from /usr/lib64/libgstreamer-0.10.so.0 #36 0x00007f21823c1958 in ?? () from /usr/lib64/libgstreamer-0.10.so.0 #37 0x00007f217b77ffc6 in Phonon::Gstreamer::Pipeline::setState (this=0x1199410, state=GST_STATE_PLAYING) at /var/tmp/portage/media-libs/phonon-gstreamer-4.6.3/work/phonon-backend-gstreamer-4.6.3/gstreamer/pipeline.cpp:242 #38 0x00007f217b778102 in Phonon::Gstreamer::MediaObject::requestState (this=this@entry=0xf90940, state=state@entry=Phonon::PlayingState) at /var/tmp/portage/media-libs/phonon-gstreamer-4.6.3/work/phonon-backend-gstreamer-4.6.3/gstreamer/mediaobject.cpp:828 #39 0x00007f217b7783d4 in Phonon::Gstreamer::MediaObject::play (this=0xf90940) at /var/tmp/portage/media-libs/phonon-gstreamer-4.6.3/work/phonon-backend-gstreamer-4.6.3/gstreamer/mediaobject.cpp:234 #40 0x00007f219182b07b in EngineController::playUrl(KUrl const&, unsigned int) () from /usr/lib64/libamaroklib.so.1 #41 0x00007f219182c6bc in EngineController::play(KSharedPtr<Meta::Track>, unsigned int) () from /usr/lib64/libamaroklib.so.1 #42 0x00007f21914b1eef in Playlist::Actions::play(unsigned long long, bool) () from /usr/lib64/libamaroklib.so.1 #43 0x00007f21914b253f in Playlist::Actions::play(QModelIndex const&) () from /usr/lib64/libamaroklib.so.1 We would need a backtrace with the latest Phonon-backend-gstreamer 4.7.2 or later *** This bug has been marked as a duplicate of bug 290706 *** |