[Gluster-devel] fchmod glitch in 1.4 tla?

Amar S. Tumballi amar at zresearch.com
Wed Jul 23 20:23:37 UTC 2008


Brent,
 When you say 'error is gone' you are telling about fchmod error? or the
setxattr logs?

A general rule on GNU/Linux system is, xattrs  supports only

"user.<anything>", "trusted.<anything>" and "system.<anything>", as key. and
with noacl, the "system.posix_acl_default" and "system.posix_acl_access"
keys too return EOPNOTSUP errno. Hence the log in afr_setxattr. (Actually
whenever this particular errno is returned to application, they neglect it,
and proceed, so user won't know about this). The right fix is to correct the
log entry for afr, not to show up if the errno is EOPNOTSUP. (which is done
in other places like unify, fuse, and posix). So, this error msg is
harmless.

I am concerned about the EIO for fchmod, is it reprodicible with noacl flag
set for backend fs?  (sorry for me not testing atm, my test nodes are down
as of now). So, I can have the right fix for it not before tomorrow.

Thanks for detailed bug report and finding out the cause for it.

Regards,
Amar

2008/7/23 Brent A Nelson <brent at phys.ufl.edu>:

> I think I've found the culprit.  It was due to having mounted with noacl.
> cp -a attempts ACL operations, which fail wiht noacl mounts, but GlusterFS
> was apparently remembering that error and passing it as the return for
> fchmod.  With the filesystems mounted with acl support, the error is gone.
>
> Here is the glusterfs log from "cp -a /bin/ls /beast" when the filesystems
> were mounted with noacl:
>
> 2008-07-23 15:59:19 D [fuse-bridge.c:363:fuse_entry_cbk] glusterfs-fuse:
> 34: (op_num=34) / => 1
> 2008-07-23 15:59:19 D [fuse-bridge.c:505:fuse_lookup] glusterfs-fuse: 35:
> LOOKUP /ls
> 2008-07-23 15:59:19 D [fuse-bridge.c:443:fuse_entry_cbk] glusterfs-fuse:
> 35: (op_num=34) /ls => -1 (No such file or directory)
> 2008-07-23 15:59:19 D [inode.c:397:__passive_inode] fuse/inode: purging
> inode(0) lru=5/0
> 2008-07-23 15:59:19 D [fuse-bridge.c:505:fuse_lookup] glusterfs-fuse: 36:
> LOOKUP /ls
> 2008-07-23 15:59:19 D [fuse-bridge.c:443:fuse_entry_cbk] glusterfs-fuse:
> 36: (op_num=34) /ls => -1 (No such file or directory)
> 2008-07-23 15:59:19 D [inode.c:397:__passive_inode] fuse/inode: purging
> inode(0) lru=5/0
> 2008-07-23 15:59:19 D [fuse-bridge.c:1511:fuse_create] glusterfs-fuse: 37:
> CREATE /ls
> 2008-07-23 15:59:19 D [fuse-bridge.c:1383:fuse_create_cbk] glusterfs-fuse:
> 37: (op_num=27) /ls => 0xb4b01170
> 2008-07-23 15:59:19 D [inode.c:569:__create_inode] fuse/inode: create
> inode(30044)
> 2008-07-23 15:59:19 D [inode.c:362:__active_inode] fuse/inode: activating
> inode(30044), lru=5/0
> 2008-07-23 15:59:19 D [inode.c:397:__passive_inode] fuse/inode: purging
> inode(0) lru=5/0
> 2008-07-23 15:59:19 D [fuse-bridge.c:1682:fuse_write] glusterfs-fuse: 38:
> WRITE (0xb4b01170, size=8192, offset=0)
> 2008-07-23 15:59:19 D [fuse-bridge.c:1644:fuse_writev_cbk] glusterfs-fuse:
> 38: WRITE => 8192/8192,0/8192
> 2008-07-23 15:59:19 D [fuse-bridge.c:1682:fuse_write] glusterfs-fuse: 39:
> WRITE (0xb4b01170, size=8192, offset=8192)
> 2008-07-23 15:59:19 D [fuse-bridge.c:1644:fuse_writev_cbk] glusterfs-fuse:
> 39: WRITE => 8192/8192,8192/16384
> 2008-07-23 15:59:19 D [fuse-bridge.c:1682:fuse_write] glusterfs-fuse: 40:
> WRITE (0xb4b01170, size=8192, offset=16384)
> 2008-07-23 15:59:19 D [fuse-bridge.c:1644:fuse_writev_cbk] glusterfs-fuse:
> 40: WRITE => 8192/8192,16384/24576
> 2008-07-23 15:59:19 D [fuse-bridge.c:1682:fuse_write] glusterfs-fuse: 41:
> WRITE (0xb4b01170, size=8192, offset=24576)
> 2008-07-23 15:59:19 D [fuse-bridge.c:1644:fuse_writev_cbk] glusterfs-fuse:
> 41: WRITE => 8192/8192,24576/32768
> 2008-07-23 15:59:19 D [fuse-bridge.c:1682:fuse_write] glusterfs-fuse: 42:
> WRITE (0xb4b01170, size=8192, offset=32768)
> 2008-07-23 15:59:19 D [fuse-bridge.c:1644:fuse_writev_cbk] glusterfs-fuse:
> 42: WRITE => 8192/8192,32768/40960
> 2008-07-23 15:59:19 D [fuse-bridge.c:1682:fuse_write] glusterfs-fuse: 43:
> WRITE (0xb4b01170, size=8192, offset=40960)
> 2008-07-23 15:59:19 D [fuse-bridge.c:1644:fuse_writev_cbk] glusterfs-fuse:
> 43: WRITE => 8192/8192,40960/49152
> 2008-07-23 15:59:19 D [fuse-bridge.c:1682:fuse_write] glusterfs-fuse: 44:
> WRITE (0xb4b01170, size=8192, offset=49152)
> 2008-07-23 15:59:19 D [fuse-bridge.c:1644:fuse_writev_cbk] glusterfs-fuse:
> 44: WRITE => 8192/8192,49152/57344
> 2008-07-23 15:59:19 D [fuse-bridge.c:1682:fuse_write] glusterfs-fuse: 45:
> WRITE (0xb4b01170, size=8192, offset=57344)
> 2008-07-23 15:59:19 D [fuse-bridge.c:1644:fuse_writev_cbk] glusterfs-fuse:
> 45: WRITE => 8192/8192,57344/65536
> 2008-07-23 15:59:19 D [fuse-bridge.c:1682:fuse_write] glusterfs-fuse: 46:
> WRITE (0xb4b01170, size=8192, offset=65536)
> 2008-07-23 15:59:19 D [fuse-bridge.c:1644:fuse_writev_cbk] glusterfs-fuse:
> 46: WRITE => 8192/8192,65536/73728
> 2008-07-23 15:59:19 D [fuse-bridge.c:1682:fuse_write] glusterfs-fuse: 47:
> WRITE (0xb4b01170, size=8192, offset=73728)
> 2008-07-23 15:59:19 D [fuse-bridge.c:1644:fuse_writev_cbk] glusterfs-fuse:
> 47: WRITE => 8192/8192,73728/81920
> 2008-07-23 15:59:19 D [fuse-bridge.c:1682:fuse_write] glusterfs-fuse: 48:
> WRITE (0xb4b01170, size=8192, offset=81920)
> 2008-07-23 15:59:19 D [fuse-bridge.c:1644:fuse_writev_cbk] glusterfs-fuse:
> 48: WRITE => 8192/8192,81920/90112
> 2008-07-23 15:59:19 D [fuse-bridge.c:1682:fuse_write] glusterfs-fuse: 49:
> WRITE (0xb4b01170, size=2264, offset=90112)
> 2008-07-23 15:59:19 D [fuse-bridge.c:1644:fuse_writev_cbk] glusterfs-fuse:
> 49: WRITE => 2264/2264,90112/92376
> 2008-07-23 15:59:19 D [fuse-bridge.c:878:do_utimes] glusterfs-fuse: 50:
> UTIMENS /ls
> 2008-07-23 15:59:19 D [fuse-bridge.c:564:fuse_attr_cbk] glusterfs-fuse: 50:
> (op_num=31) /ls => 30044
> 2008-07-23 15:59:19 D [fuse-bridge.c:2140:fuse_setxattr] glusterfs-fuse:
> 51: SETXATTR /ls/30044 (system.posix_acl_access)
> 2008-07-23 15:59:19 E [afr.c:1145:afr_setxattr_cbk] mirror0: (path=/ls
> child=share0-0) op_ret=-1 op_errno=95(Operation not supported)
> 2008-07-23 15:59:19 E [afr.c:1145:afr_setxattr_cbk] mirror0: (path=/ls
> child=share0-1) op_ret=-1 op_errno=95(Operation not supported)
> 2008-07-23 15:59:19 D [unify.c:2980:unify_setxattr_cbk] mirrors:
> child(mirror0): path(): Operation not supported
> 2008-07-23 15:59:19 D [fuse-bridge.c:721:do_chmod] glusterfs-fuse: 52:
> FCHMOD 0xb4b01170
> 2008-07-23 15:59:19 D [fuse-bridge.c:564:fuse_attr_cbk] glusterfs-fuse: 52:
> (op_num=32) ERR => 0
> 2008-07-23 15:59:19 D [fuse-bridge.c:1733:fuse_release] glusterfs-fuse: 53:
> CLOSE 0xb4b01170
> 2008-07-23 15:59:19 D [fuse-bridge.c:924:fuse_err_cbk] glusterfs-fuse: 53:
> (op_num=17) ERR => 0
> 2008-07-23 15:59:19 D [inode.c:393:__passive_inode] fuse/inode: passivating
> inode(30044) lru=6/0
>
> Thanks,
>
> Brent
>
>


-- 
Amar Tumballi
Gluster/GlusterFS Hacker
[bulde on #gluster/irc.gnu.org]
http://www.zresearch.com - Commoditizing Super Storage!



More information about the Gluster-devel mailing list