[Gluster-devel] glfsheal test failures

Jeff Darcy jdarcy at redhat.com
Thu Dec 11 13:00:49 UTC 2014


> What exactly is the failure that you are observing (and on what .t file)?

The one that always fails for me is basic/self-heald.t:

}}} /usr/sbin/glfsheal: error while loading shared libraries: afr.so: cannot open shared object file: No such file or directory
}}} (repeats a few dozen times)

> Currently the only way glfsheal gets invoked is when you run 'gluster vol
> heal <volname> info`,
> which just calls the glfsheal binary with <volname> as the argument.
> The tests which do so  pass on my system (for eg
> tests/bugs//bug-861015-log.t) and I haven't
> explicitly added anything to  LD_LIBRARY_PATH.
> 
> Running glfsheal does seem to locate afr.so:
> ----------------------
> [root at ravi4 ~]# strace /usr/local/sbin/glfsheal 2>&1 |grep afr.so -A6
> open("/usr/local/lib/afr.so", O_RDONLY) = -1 ENOENT (No such file or
> directory)
> open("/usr/local/lib/glusterfs/3.7dev/xlator/cluster/afr.so", O_RDONLY) = 3
> read(3,
> "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\324\0\0\0\0\0\0"..., 832)
> = 832
> fstat(3, {st_mode=S_IFREG|0755, st_size=1201900, ...}) = 0
> mmap(NULL, 2580288, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
> 0x7f9f51273000
> mprotect(0x7f9f512e3000, 2097152, PROT_NONE) = 0
> mmap(0x7f9f514e3000, 24576, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x70000) = 0x7f9f514e3000
> close(3)  

Even easier:

}}} ldd /usr/sbin/glfsheal
}}} 	linux-vdso.so.1 =>  (0x00007fffb9709000)
}}} 	libglusterfs.so.0 => /lib64/libglusterfs.so.0 (0x00007ff1330e8000)
}}} 	libreadline.so.6 => /lib64/libreadline.so.6 (0x00007ff132ea1000)
}}} 	libncurses.so.5 => /lib64/libncurses.so.5 (0x00007ff132c7a000)
}}} 	libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007ff132a50000)
}}} 	libgfxdr.so.0 => /lib64/libgfxdr.so.0 (0x00007ff132838000)
}}} 	libgfrpc.so.0 => /lib64/libgfrpc.so.0 (0x00007ff13261c000)
}}} 	libgfapi.so.0 => /lib64/libgfapi.so.0 (0x00007ff132402000)
}}} 	afr.so => not found
}}} 	libxml2.so.2 => /lib64/libxml2.so.2 (0x00007ff132098000)

Running ldconfig doesn't fix it.  This is a Fedora 20 system, BTW.
Explicitly linking a translator's .so from the makefile is the wrong
thing to do anyway.  It's not how any of our daemons load them, and
I know from having written my own heal scripts that it's not needed.
When it works, it's by accident.


More information about the Gluster-devel mailing list