Hide Forgot
(In reply to comment #0) > # glusterfs -f /dev/stdin /mnt/gluster0 <<EOF s@/mnt/gluster0@/mnt/gluster@
Do the following: prior to mounting glusterfs on /mnt/gluster, start this: $ while :; do touch /mnt/gluster/x || break; done then mount a remote glusterfs volume, eg. # glusterfs -f /dev/stdin /mnt/gluster0 <<EOF volume client type protocol/client option transport-type tcp option remote-host localhost option remote-subvolume brick-0 end-volume EOF The mount will be succesfull and soon you can use the fs. However, in the shell where you had the loop, you'll see it has terminated with touch: cannot touch `/mnt/gluster/x': Transport endpoint is not connected That is, there was an interim period when the mount was already in place but not yet usable. (Note, remote subvolume is needed for this, a simple posix mount does not have the defunct window). Access to the fs should be synchronized with connection to the server. If we fail to do this, a lot of stuff, automount, SELinux hooks, various event notification systems might break havoc (yet again).
patch http://patches.gluster.com/patch/4566/ fixes this issue. It was happening because the fuse_thread_proc() was started before handshake is complete.
PATCH: http://patches.gluster.com/patch/4566 in master (changes in fuse proc thread initialization)
PATCH: http://patches.gluster.com/patch/4641 in master (in case of failures, don't hang fuse mount)
PATCH: http://patches.gluster.com/patch/4650 in master (fuse: suppress wrong/confusing log message about graph setup failure)