If you are trying to use lstat+mkdir as a locking mechanism so that you can run multiple instances of the same program, it will probably fail more often on a Fuse filesystem than a local one. It should probably be using FLOCK or open a file with O_CREAT|O_EXCL. On Tue, 2014-05-20 at 11:58 +0200, Nicolas Greneche wrote: > Hello, > > I run a glusterfs architecture in 3.3.1 version : > > > # glusterd -V > glusterfs 3.3.1 built on Apr 29 2013 15:17:28 > Repository revision: git://git.gluster.com/glusterfs.git > Copyright (c) 2006-2011 Gluster Inc. <http://www.gluster.com> > GlusterFS comes with ABSOLUTELY NO WARRANTY. > You may redistribute copies of GlusterFS under the terms of the GNU > General Public License. > > I have an odd problem when I run a software. When I run it from the > local filesystem it works and when I copy it to a glusterfs share it > produce errors. > > Both instance of the program shares the same environement (the run on te > same instance of operating system with the same user). > > The only difference I noticed is with the syscall sequence. When It > works I have this sequence : > > write(1, "HRType: esh_gain \n", 19) = 19 > ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo > ...}) = 0 > write(1, "TILDE\n", 6) = 6 > stat64("/home/ngreneche/ubuntu1204/usr/local/ACE-ilProlog-1.2.20/linux/bin/tilde", > {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0 > ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo > ...}) = 0 > ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo > ...}) = 0 > write(1, "Discretization busy...\n", 23) = 23 > > And when it doesn't work (running from a glusterfs share), I have this > sequence : > > write(1, "HRType: esh_gain \n", 19) = 19 > ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo > ...}) = 0 > write(1, "TILDE\n", 6) = 6 > stat64("/home/dist/db/ubuntu1204/usr/local/ACE-ilProlog-1.2.20/linux/bin/tilde", > {st_mode=S_IFDIR|0750, st_size=16384, ...}) = 0 > mkdir("/home/dist/db/ubuntu1204/usr/local/ACE-ilProlog-1.2.20/linux/bin/tilde", > 0755) = -1 EEXIST (File exists) > ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo > ...}) = 0 > ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo > ...}) = 0 > ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo > ...}) = 0 > ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo > ...}) = 0 > ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo > ...}) = 0 > write(1, "An error occurred during the exe"..., 49) = 49 > > The only difference is that a mkdir is performed just after the stat. > Whereas the stat check if the directory exists to trigger or not a mkdir. > > My underlying filesystem on the brick is ext4. > > Do you know if there are some issues with stat in the version of glusterfs ? > > Regards, > _______________________________________________ Gluster-users mailing list Gluster-users@xxxxxxxxxxx http://supercolony.gluster.org/mailman/listinfo/gluster-users