GNOME Bugzilla – Bug 711285
Cannot play remote files (sftp/gvfs) in library
Last modified: 2013-11-08 13:37:21 UTC
On my laptop I use a remote folder as music library (i.e. it is configured to use sftp://local-nas/path/to/Music) using GVFS. Since 3.0 (and/or the switch to GStreamer 1.0) I cannot play any of the files in the library. Everything is imported/scanned ok, put double clicking on a track it stays in pause mode. It also seems that rhythmbox --debug doesn't reveal any issues. P.S. I use the crossfading backend.
What exact versions of gstreamer, gst-plugins-base, gst-plugins-good etc. are you using? What types of files are you playing? Does gst-launch-1.0 playbin uri=sftp://etc/ work? Please attach output from 'rhythmbox -D player' when trying to play such files.
Created attachment 258838 [details] Log file when playing a track over sftp
I'm using Debian unstable, so at the moment this means gstreamer, gst-plugins* are all on version 1.2.0. I usually play FLAC files, but the same happens with Ogg Vorbis and MP3s and I can use gst-launch-1.0 (or gst123) with the sftp URI to play them. I have attached the log.
> (rhythmbox:27007): GLib-CRITICAL **: g_main_context_push_thread_default: assertion 'acquired_context' failed > (rhythmbox:27007): GLib-CRITICAL **: g_main_context_pop_thread_default: assertion 'g_queue_peek_head (stack) == context' failed stack traces from these would be helpful. run 'rhythmbox -D something' in gdb and it'll break on all warnings and criticals so you can do 'thread apply all bt' there.
Created attachment 258989 [details] Log of full traces Note that these CRITICAL events happen before I press play. They seem to be raised when the library is being checked/updated. When I continue through the exceptions and then press play, I don't get one.
but it still doesn't play?
in any case it looks like I need to rewrite rb_handle_uri_recursively_async to use async file enumerators rather than using a separate thread. kind of annoying.
Disabling library monitoring might help.
It still doesn't play, also disabling library monitoring didn't help. What _does_ help is to disable the crossfading backend, so that allows me at least play from my library :).
can you provide a log from 'GST_DEBUG=*:4 rhythmbox -D player' with crossfading enabled?
Created attachment 259210 [details] Log when running GST_DEBUG:*4 rhythmbox -D player
turns out this is just because we're expecting gstreamer to give us buffering events for sftp streams, but it doesn't do that any more.
fixed in commit f326f8e