[Bugs] [Bug 1181500] Can't mount glusterfs
bugzilla at redhat.com
bugzilla at redhat.com
Wed Jan 14 09:29:41 UTC 2015
https://bugzilla.redhat.com/show_bug.cgi?id=1181500
Niels de Vos <ndevos at redhat.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |fharshav at redhat.com,
| |rgowdapp at redhat.com
Component|fuse |posix
Version|3.6.0 |3.6.1
OS|Linux |FreeBSD
--- Comment #5 from Niels de Vos <ndevos at redhat.com> ---
This seems to be an issue in the posix-xlator. For some reason the 3.4 client
is able to crash the brick process.
When posix_getxattr() gets called with an xattr that is not treated specially,
the posix-xlator will retrieve a list with all xattrs the file has. It then
goes through that list and fetches all xattrs. This is where things seem to go
wrong. The name of the xattr that gets fetched is not the name of a existing
xattr, but a string with the concatenated list of all xattrs.
[posix.c:3747:posix_getxattr] 0-rep-vol-posix: getxattr failed on
/mnt/test12/brick01/file0: key =
^\trusted.afr.rep-vol-client-0^Ltrusted.gfid^\t
rusted.afr.rep-vol-client-1 (Attribute not found)
>From xlators/storage/posix/src/posix.c:
size = sys_llistxattr (real_path, list, size);
if (size < 0) {
op_ret = -1;
op_errno = errno;
goto out;
}
remaining_size = size;
list_offset = 0;
while (remaining_size > 0) {
strcpy (keybuffer, list + list_offset);
size = sys_lgetxattr (real_path, keybuffer, NULL, 0);
if (size == -1) {
op_ret = -1;
op_errno = errno;
gf_log (this->name, GF_LOG_ERROR, "getxattr failed on "
"%s: key = %s (%s)", real_path, keybuffer,
strerror (op_errno));
break;
}
libglusterfs/src/syscall.c:sys_llistxattr() depends on the OS where the brick
process is running. So I suspect that the problem is related to how FreeBSD
returns the list of xattrs.
--
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.
More information about the Bugs
mailing list