[Gluster-users] open() issues on 3.0.0

Brian Smith
2010-01-17T16:13:28Z

Hi,

I'm new to Gluster, so please forgive any ignorance on my part.  I've
tried reading over everything I could find to resolve this myself.

I'm having an issue building executables on our gluster volume (there
are some other similar issues as well, but we'll deal with this one
first).  I have the presta infiniband utilities extracted into a
directory in my glusterfs volume and I'm attempting to build them.  One
of the source files, util.c (coincidentally, the first one referenced in
the make file) fails to build.  I get an error message:

Catastrophic error: could not open source file "util.c"

Some further investigating reveals the command that causes the issue:

icc -I/opt/priv/openmpi-1.4.1/intel-10.1.018/include -pthread
-L/opt/priv/mx/lib -L/opt/priv/openmpi-1.4.1/intel-10.1.018/lib -lmpi
-lopen-rte -lopen-pal -lmyriexpress -libverbs -lpsm_infinipath -lnuma
-ldl -Wl,--export-dynamic -lnsl -lutil -c util.c
Catastrophic error: could not open source file "util.c"

compilation aborted for util.c (code 4)

And further, we see an strace of the command:
...
2717 6601  brk(0x957b000)                    = 0x957b000
2718 6601  open("util.c", O_RDONLY)          = 3
2719 6601  stat64("util.c", {st_mode=S_IFREG|0600, st_size=14370,
...})
= 0
2720 6601  close(3)                          = 0
2721 6601  fstat64(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136,
1), ...}) = 0
2722 6601  mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|
MAP_ANONYMOUS, -1, 0x1000) = 0xfffffffff0bce000
2723 6601  write(2, "Catastrophic error: could not open source file
\"util.c\"\n", 56) = 56
2724 6601  write(2, "\n", 1)                 = 1
2725 6601  exit_group(4)
...

We can also see that the file is indeed present:

$ ls -l util.c
-rw------- 1 brs users 14370 Apr  8  2002 util.c
$ stat util.c
  File: `util.c'
  Size: 14370     	Blocks: 32         IO Block: 4096   regular file
Device: 18h/24d	Inode: 4295774314  Links: 1
Access: (0600/-rw-------)  Uid: (1229806/     brs)   Gid: (10001/
users)
Access: 2010-01-17 00:27:43.000000000 -0500
Modify: 2002-04-08 21:13:57.000000000 -0400
Change: 2010-01-17 00:27:43.000000000 -0500

If I extract the tar-ball in /tmp, a local ext3 fs, the compile line
above works correctly.

diff /work/b/brs/presta1.2/util.c /tmp/presta1.2/util.c

also appears clean.  Any ideas what is happening here?  Is there an
issue with mmap2() and glusterfs?

Many thanks in advance,

-Brian



--
Brian Smith
Senior Systems Administrator
IT Research Computing, University of South Florida
4202 E. Fowler Ave. ENB308
Office Phone: +1 813 974-1467
Organization URL: http://rc.usf.edu