Problems accessing files with gvfs-fuse-daemon
Gustau Pérez
gperez at entel.upc.edu
Sun Feb 7 20:07:15 UTC 2010
En/na Gustau Pérez ha escrit:
> Hi everyone,
>
> I'm having problems with gvfs-fuse-daemon. I'm trying to find out why
> apps like vlc are unable to read files
> in a samba share. As you may know, if you try to open a file in a share
> throu nautilus, if the apps is not gvfs-aware nautilus launches the apps
> passing a filename like :
>
> $HOME/.gvfs/share in server/file.avi
>
> then through it works through the gvfs-fuse-daemon which does the magic.
>
> Well, anytime I try this, the app seems to freeze. No matter which
> app I try. So I decided to open a terminal a did like this :
>
> # cp $HOME/.gvfs/share in server/file.avi /tmp
>
> Then, with tcpdump I saw a few packets were transferred between the
> server and the client then transfer stopped. In the terminal I got and
> Input/output error.
>
> Even the gvfs-* apps (like gvfs-cat, gvfs-copy) fail. The error with
> this apps comes from glib (gio part, when making a read syscall, so it
> makes me think that probably the error is in gvfs-fuse-daemon, when the
> kernel returns the read syscall to the fuse daemon that handles the
> reads in that mount point).
>
> I noticed that when I let gnome-session launch gvfs-fuse-daemon
> without arguments (normal situation) the transfer stops at 1Mb of size.
>
> If I try launching gvfs-fuse-daemon with "-o direct_io" in a
> different mount like (say .gvfs_tmp), then I'm able
> to copy files with both cp and gvfs-copy through that mount point. Even
> I'm able to play mp3 files with mpg123, but vlc, totem and other apps
> still fail to access that share (they transfer a little amount of data
> and then they stop).
>
> With this config (with .gvfs_tmp, -o direct_io), If I try to launch
> and mpg123 (which works) and then and vlc instance, everything freezes
> again. mpg123 stops playing until I kill vlc, then it can continue
> playing. The same with kaffeine and other friends not gvfs-aware.
>
> As I said, if I let gvfs-fuse-daemon without options (as
> gnome-session does) I can do nothing through .gvfs/. No cp, no mpg123,
> anything at all. -o direct_io allows me a few things.
>
> I'm yesterday updated (before the jpeg library update). gvfs is 1.4.3_1.
>
> My system is kernel and world updated too :
>
> FreeBSD gusiport 8.0-STABLE FreeBSD 8.0-STABLE #0: Fri Feb 5
> 18:50:54 CET 2010
> root at gusiport:/usr/obj/usr/src/sys/CUSTOM amd64
>
> Clean /etc/src.conf (no special options given there). The fuse
> module is update before the kernel and world were last updated.
>
> I'm puzzled because I saw anyone having such a problem. I checked
> /usr/ports/UPDATING, just I case I missed anything importa.
>
> Is anyone having such a problem ? Any idea where can I start
> debugging ? If I can provide any additional info, let me know.
>
> Regards,
>
> Gus
>
>
I debugged the daemon with truss. I got a very strange serie of
syscall with a lot of POLLs and READs to a channel returning "ERR#35
resource temporary unavailable). I discovered some socket call
returning a channel that then produce that read errors. Any idea ?
I posted the trace to pastebin :
http://pastebin.com/m79cf37f3
If you search for socket syscalls, you'll see it normally creates two,
and then it connects them to a unix socket in /var/tmp. For example I
see it connecting two sockets to
/var/tmp/gvfs-gus-B9lo36Ky/socket1
/var/tmp/gvfs-gus-B9lo36Ky/socket2
But only the second can be found. I can't see the first. So probably
this is the problem. Anyone has the same problem ? I can provide more info.
Regards,
Gus
--
PGP KEY : http://www-entel.upc.edu/gus/gus.asc
More information about the freebsd-gnome
mailing list