Bug#730177: I can't really understand whats happening.

Simon McVittie smcv at debian.org
Fri Jan 3 11:05:48 UTC 2014


On 02/01/14 16:29, John Hughes wrote:
> The "Detected" message seems to be printed in response to
> ["/usr/bin/dbus-launch", "--exit-with-session",
> "/usr/bin/gnome-session", "--autostart",
> "/usr/share/gdm/greeter/autostart", "--debug"] receiving this message:
> 
> recvmsg(8, {msg_name(0)=NULL,
> msg_iov(1)=[{"l\4\1\1-\0\0\0f\0\0\0\211\0\0\0\1\1o\0\25\0\0\0/org/freedesktop/DBus\0\0\0\2\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0\3\1s\0\20\0\0\0NameOwnerChanged\0\0\0\0\0\0\0\0\7\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0\10\1g\0\3sss\0\0\0\0\0\0\0\0\25\0\0\0org.gnome.ScreenSaver\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0:1.7\0"...,
> 2048}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC)
> = 205

That'll actually be the /usr/bin/gnome-session process that was exec'd
by dbus-launch.

> This message was sent by a child of gdm3:
> 
> sendmsg(12, {msg_name(0)=NULL,
> msg_iov(2)=[{"l\4\1\1-\0\0\0f\0\0\0\211\0\0\0\1\1o\0\25\0\0\0/org/freedesktop/DBus\0\0\0\2\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0\3\1s\0\20\0\0\0NameOwnerChanged\0\0\0\0\0\0\0\0\7\1s\0\24\0\0\0org.freedesktop.DBus\0\0\0\0\10\1g\0\3sss\0\0\0\0\0\0\0\0",
> 160},
> {"\25\0\0\0org.gnome.ScreenSaver\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0:1.7\0",
> 45}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL)           = 205

That'll be the dbus-daemon that was exec'd by a child of dbus-launch, I
think.

> I've tried debugging the problem using fuse, and can replicate it by
> simply making /usr/local a fuse filesystem that returns EACCES for all
> operations.
> 
> Any ideas about how to go forwards?

If you have a strace log, looking for EACCES in that log might be
interesting. The correct pattern for a path search is something like this:

    open("/usr/local/foo/bar", ...) = -1 EACCES (Permission denied)
    open("/usr/foo/bar", ...) = 42

or

    open("/usr/local/share/a/b", ...) = -1 EACCES (Permission denied)
    open("/usr/share/a/b", ...) = -1 ENOENT (No such file or directory)
    open("/home/me/.local/share/a/b", ...) = -1 ENOENT (No such file or
directory)

and I think your failure mode is a pattern more like this:

    open("/usr/local/share/a/b", ...) = -1 EACCES (Permission denied)
    [ no attempt to fall back to /usr ]

I don't know which component to look for this failure mode in - perhaps
gnome-session? I had a quick look in dbus-daemon and it doesn't seem to
have this bug, although I might have missed something.

Could you share the source code of your FUSE filesystem, please?

Thanks,
    S



More information about the pkg-gnome-maintainers mailing list