Red Hat Bugzilla – Bug 52953
On a diskless workstation X server doesn't set correct permissions to unix socket
Last modified: 2007-04-18 12:36:46 EDT
Description of Problem:
On a diskless workstation (the root file system is mounted from a
roswell-based system with v3,nolock,rsize=8192,wsize=8192 flags) the X
server leave its unix socket (/tmp/.X11-unix/X0) with permissions 0755, and
only root-owned client can connect. If I do a chmod 777 by hand, the normal
behaviour is back. I've done a test mounting a nbd (network block device)
file system under tmp, and the normal behaviour reappeared. This appear as
a bug in nfs/knfsd code.
I've also tryed to mount a different nfs file system as tmp, with flags as
lock or noac, but nothing changed. The kernel running on the diskless
worstation is a standard (redhat) 2.4.6 kernel for i686 with compiled in
the network module (8139too) and the nfs client module, with nfs root
P.S.: My english is alpha version...
Version-Release number of selected component (if applicable):
kernel 2.4.6 redhat
Steps to Reproduce:
1. Configure a diskless workstation
2. login as normal user
X will start, but no application is started
normal X session (gnome, in my case) startup
Standard flags for a nfs root are obviously rw and no_root_squash. Apparently
any other service (as writing the mtab in /etc) runs well (xfs too).
Some more test done. I've updated the kernel on the diskless client to vanilla
2.4.9 without results, but the problem disappeared updating the server kernel to
the same vanilla (with jbd/ext3 patches only). (The original kernel was 2.4.6-3.1)
This sounds more like a kernel NFS issue than an XFree86 issue.
Does it occur with our current RHL 7.2 erratum kernel 2.4.9-21?
I'm using a kernel 2.4.9-21 recompiled using standard athlon config file with
added NFS root file system support and tulip, sis900 and rtl8139 drivers built in.
Just to confirm what you mean - aparently not what?
Does 2.4.9-21 work as supplied in binary form by Red Hat?
Our base kernel doesn't have NFS root so that is tricky to get him to check. I
agree it looks like a kernel issue. Firstly its a wonder it works at all because
AF_UNIX sockets are not defined over NFS 8)
The traditional workaround is to use localhost:0 as the socket.
Nevertheless I'd like to know why it failed. Is this reproducable on a
conventional box with /tmp NFS mounted.
I'm sorry, I've done a mistake. As I wrote in my first posting, the problem
appear to belongs to 2.4.6 kernel (roswell) knfsd. With different kernel on the
server (2.4.9 vanilla or RedHat) the problem vanished.
My last test was to upgrade _client_ kernel as described, but the server was
updated to standard RedHat 7.2 some months ago (without any problem).
Now, I think the right answer to Harris question is: the problem doesn't occour
with standard 7.2 kernel.
Alan, I don't know what to think: ls say that (on the server)
[root@roccia dl01]# ls -la tmp/.X11-unix/X0
srwxrwxrwx 1 root root 0 feb 10 12:32 tmp/.X11-unix/X0
and on the client:
[root@dl01 root]# ls -la /tmp/.X11-unix/X0
srwxrwxrwx 1 root root 0 feb 10 12:32 /tmp/.X11-unix/X0