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 140355 - Rhythmbox doesn't support gnome-vfs authentication
Rhythmbox doesn't support gnome-vfs authentication
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: general
0.7.1
Other Linux
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
: 172106 316376 (view as bug list)
Depends on:
Blocks: 168174
 
 
Reported: 2004-04-17 18:45 UTC by joshg
Modified: 2005-12-02 12:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
initial patch (9.25 KB, patch)
2005-10-28 16:27 UTC, James "Doc" Livingston
none Details | Review
updated patch (13.18 KB, patch)
2005-11-30 13:09 UTC, James "Doc" Livingston
none Details | Review

Description joshg 2004-04-17 18:45:23 UTC
Use Nautilus to mount an sftp location as a server... then try to open music
files using Rhythmbox... Nautilus reports that Rhythmbox can't open sftp
locations... try dragging the folders over to Rhythmbox, and they don't do
anything...
Comment 1 Christophe Fergeau 2004-04-17 19:57:31 UTC
data/rhythmbox.applications need to be fixed to look like:

rhythmbox
        command=rhythmbox
        name=Music Player
        can_open_multiple_files=true
        expects_uris=true
	startup_notify=true
        requires_terminal=false
      rhythmbox
        command=rhythmbox
        name=Music Player
        can_open_multiple_files=true
        expects_uris=false
	startup_notify=true
        uses_gnomevfs=true
        requires_terminal=false       
mime_types=x-directory/normal,application/x-ogg,application/ogg,audio/x-mp3,audio/x-scpls,audio/x-mp3,audio/x-mpeg,audio/mpeg,audio/x-mpegurl,application/x-flac


(I currently only have access to windows computers, so I can't commit that myself ;)
Comment 2 Christophe Fergeau 2004-04-17 19:58:44 UTC
ok, let's try again, the previous copy and paste exercise totally failed.

rhythmbox
        command=rhythmbox
        name=Music Player
        can_open_multiple_files=true
        expects_uris=true
	startup_notify=true
        uses_gnomevfs=true
        requires_terminal=false       
mime_types=x-directory/normal,application/x-ogg,application/ogg,audio/x-mp3,audio/x-scpls,audio/x-mp3,audio/x-mpeg,audio/mpeg,audio/x-mpegurl,application/x-flac


should work
Comment 3 joshg 2004-04-18 03:16:00 UTC
After the recommended modification, I tried to open the sftp resource again. RB
segv'd, and it segv's on every launch. Stack trace:

Thread 6 (Thread 46668720 (LWP 4557))

  • #0 strcmp
    from /lib/tls/libc.so.6
  • #1 rb_shell_sync_selected_source
    at rb-shell.c line 2355
  • #2 rb_shell_load_complete_cb
    at rb-shell.c line 2211
  • #3 g_cclosure_marshal_VOID__VOID
    from /usr/lib/libgobject-2.0.so.0
  • #4 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #5 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #6 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #7 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #8 rhythmdb_load_thread_main
    at rhythmdb.c line 1196
  • #9 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #10 start_thread
    from /lib/tls/libpthread.so.0
  • #11 clone
    from /lib/tls/libc.so.6

Comment 4 Christophe Fergeau 2004-04-19 21:17:12 UTC
I tried it and couldn't reproduce the crash. Can you remove your library
(~/.gnome2/rhythmbox/rhythmdb.xml) and try again ?
Comment 5 Christophe Fergeau 2004-04-20 08:59:05 UTC
The modifications to rhythmbox.applications should only help with this part of
the report:
« Use Nautilus to mount an sftp location as a server... then try to open music
files using Rhythmbox... Nautilus reports that Rhythmbox can't open sftp
locations... » ie when double clicking on a file from within Nautilus. The drag
and drop part should work even without that change I think.
Comment 6 joshg 2004-04-28 18:54:46 UTC
I removed the .gnome2/rhythmbox directory and tried again.

When I drag from Nautilus to the tracklist, nothing happens. When I drag from
Nautilus to the left pane, Rhythmbox segv's (stack trace attached). When I
double click from Nautilus, a Rhythmbox window appears and just as quickly
disappears. None of this modifies the contents of my .gnome2/rhythmbox/*.xml files.

(gdb) thread apply all bt
                                                                                

Thread 5 (Thread 57449392 (LWP 2153))

  • #0 _dl_sysinfo_int80
    from /lib/ld-linux.so.2
  • #1 pthread_cond_timedwait
    from /lib/tls/libpthread.so.0
  • #2 ??
    from /usr/lib/libgthread-2.0.so.0
  • #3 ??
  • #4 ??
  • #5 ??
  • #6 g_queue_peek_tail
    from /usr/lib/libglib-2.0.so.0
  • #7 g_async_queue_push_unlocked
    from /usr/lib/libglib-2.0.so.0
  • #8 g_async_queue_timed_pop
    from /usr/lib/libglib-2.0.so.0
  • #9 read_queue
    at rhythmdb.c line 1000
  • #10 action_thread_main
    at rhythmdb.c line 1120
  • #11 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #12 start_thread
    from /lib/tls/libpthread.so.0
  • #13 clone
    from /lib/tls/libc.so.6

Thread 4 (Thread 36330416 (LWP 2152))

  • #0 _dl_sysinfo_int80
    from /lib/ld-linux.so.2
  • #1 pthread_cond_timedwait
    from /lib/tls/libpthread.so.0
  • #2 ??
    from /usr/lib/libgthread-2.0.so.0
  • #3 ??
  • #4 ??
  • #5 ??
  • #6 g_queue_peek_tail
    from /usr/lib/libglib-2.0.so.0
  • #7 g_async_queue_push_unlocked
    from /usr/lib/libglib-2.0.so.0
  • #8 g_async_queue_timed_pop
    from /usr/lib/libglib-2.0.so.0
  • #9 read_queue
    at rhythmdb.c line 1000
  • #10 update_thread_main
    at rhythmdb.c line 1094
  • #11 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #12 start_thread
    from /lib/tls/libpthread.so.0
  • #13 clone
    from /lib/tls/libc.so.6

Thread 3 (Thread 77118384 (LWP 2151))

  • #0 _dl_sysinfo_int80
    from /lib/ld-linux.so.2
  • #1 pthread_cond_timedwait
    from /lib/tls/libpthread.so.0
  • #2 ??
    from /usr/lib/libgthread-2.0.so.0
  • #3 ??
  • #4 ??
  • #5 ??
  • #6 g_queue_peek_tail
    from /usr/lib/libglib-2.0.so.0
  • #7 g_async_queue_push_unlocked
    from /usr/lib/libglib-2.0.so.0
  • #8 g_async_queue_timed_pop
    from /usr/lib/libglib-2.0.so.0
  • #9 read_queue
    at rhythmdb.c line 1000
  • #10 add_thread_main
    at rhythmdb.c line 1016
  • #11 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #12 start_thread
    from /lib/tls/libpthread.so.0
  • #13 clone
    from /lib/tls/libc.so.6

Thread 2 (Thread 25840560 (LWP 2150))

  • #0 _dl_sysinfo_int80
    from /lib/ld-linux.so.2
  • #1 pthread_cond_wait
    from /lib/tls/libpthread.so.0
  • #2 g_async_queue_push_unlocked
    from /usr/lib/libglib-2.0.so.0
  • #3 g_async_queue_pop_unlocked
    from /usr/lib/libglib-2.0.so.0
  • #4 g_static_rw_lock_free
    from /usr/lib/libglib-2.0.so.0
  • #5 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #6 start_thread
    from /lib/tls/libpthread.so.0
  • #7 clone
    from /lib/tls/libc.so.6

Thread 1 (Thread -150583168 (LWP 2147))

  • #0 strcmp
    from /lib/tls/libc.so.6
  • #1 rb_shell_sync_selected_source
  • #2 gconf_client_change_set_from_current
    from /usr/lib/libgconf-2.so.4
  • #3 gconf_listeners_remove_if
    from /usr/lib/libgconf-2.so.4
  • #4 gconf_listeners_remove_if
    from /usr/lib/libgconf-2.so.4
  • #5 gconf_client_change_set_from_current
    from /usr/lib/libgconf-2.so.4
  • #6 gconf_client_change_set_from_current
    from /usr/lib/libgconf-2.so.4
  • #7 gconf_client_change_set_from_current
    from /usr/lib/libgconf-2.so.4
  • #8 g_child_watch_add
    from /usr/lib/libglib-2.0.so.0
  • #9 g_main_depth
    from /usr/lib/libglib-2.0.so.0
  • #10 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #11 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #12 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #13 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #14 main
    at main.c line 179

Comment 7 nick42 2004-09-14 00:55:12 UTC
Well it's been almost five months since this bug was filed, and still no fix.
Maybe not everyone has this problem, but it's affected me across multiple
versions and on two different distros...Does anyone have any further info on
this issue?

I'm not a very good programmer, but I'll do what I can to help.

Oh and by the way, it worked in the 0.6 series, and it worked in 0.8.2. Does
that information help at all?
Comment 8 Colin Walters 2004-09-14 02:51:23 UTC
I'm a bit confused by the backtrace, it looks like a problem switching sources.

Do these SFTP sources require authentication?
Comment 9 joshg 2004-09-14 07:20:03 UTC
Yes. Otherwise they wouldn't be very secure, would they? ;-)
Comment 10 Colin Walters 2004-09-14 13:13:24 UTC
What I mean is, is an authentication dialog required?  I use public ssh key
authentication, with ssh-agent so that after providing the passphrase to the
agent, I'm not prompted for it when logging in to other sites.  This means no
authentication dialog is required.

What I am getting at is that Rhythmbox doesn't support the authentication dialog
currently, and it's hard to fix, because it requires making every file open
asynchronous.
Comment 11 joshg 2004-09-14 15:33:34 UTC
Yes. The authentication dialog is required. I understand the asynchronous open
problem -- hopefully a clever gnome-vfs2/gnome-keyring-manager solution can be
found... but regardless, it shouldn't crash....
Comment 12 Joshua Ginsberg 2004-11-29 01:25:31 UTC
Taking my brand new FC3 out for a spin, I still am hopeful that a
gnome-vfs2/gnome-keyring-manager solution might be able to be found. I now find
myself trying to access a secure WebDAV resource which requires password
authentication. Colin -- any hope of looking at this again? Thanks!

-jag
Comment 13 Martin Alderson 2005-02-18 00:46:32 UTC
Any update on this? Would be helpful...
Comment 14 Olav Vitters 2005-05-09 20:20:37 UTC
*** Bug 172106 has been marked as a duplicate of this bug. ***
Comment 15 James "Doc" Livingston 2005-10-28 16:27:23 UTC
Created attachment 54000 [details] [review]
initial patch

This is an initial patch to add gnome-vfs authentication support, using
asynchronous get_info calls for remote files. I've tested this with local
files, remote files that don't require intevention, and remote files that need
a password entered/keyring authorisation. Radio still works.

The patch also has to make library tracks hidden until they have been stat'd,
which also prevent bug 318936.
Comment 16 James "Doc" Livingston 2005-10-30 04:21:40 UTC
Some notes on the above:
* tracks remain hidden until the stat has completed, because until then it may
be waiting on authentication from the user.
* tracks with the "hidden" property set MUST not have synchronous gnome-vfs
operations performed on them from the main thread, as it will block the UI.
* bug 125177 then becomes WONTFIX for files that are gnome-vfs remote.
* rb-podcast-manager currently only works is the "local" podcast episode storage
is gnome-vfs local.
Comment 17 Sebastien Bacher 2005-11-28 16:04:07 UTC
*** Bug 316376 has been marked as a duplicate of this bug. ***
Comment 18 James "Doc" Livingston 2005-11-30 13:09:07 UTC
Created attachment 55419 [details] [review]
updated patch

This is an updated version of the patch (same as posted to the ML), with a few
more fixes.

There are two known issues: 1) remote tracks will be removed from (normal)
playlists when RB is restarted, because of bug 319278, and 2) the UI will block
while for a while when importing remote tracks, because the metadata read is
done in the main thread.
Comment 19 James "Doc" Livingston 2005-12-02 12:44:22 UTC
I've committed the latest patch from the mailing list to cvs, so we now support
authentication gnome-vfs mounts. There are a few minor issues to sort out (like
importing remote files sometimes blocking the UI a bit), but it works.