Bug 786777

Summary: ENOENT while trying to set ACL after issuing volume set command
Product: [Community] GlusterFS Reporter: Anush Shetty <ashetty>
Component: access-controlAssignee: shishir gowda <sgowda>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: mainlineCC: gluster-bugs, nsathyan
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.4.0 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-07-24 17:40:37 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 817967    

Description Anush Shetty 2012-02-02 11:25:49 UTC
Description of problem: Was running the ACL script which mainly created a file as a user and set ACL entries. While I was running that, the dir on the mount point in which the file was being created became inaccessible after issuing volume set command.


Version-Release number of selected component (if applicable): 3.3.0qa20

Actual results:

root@shortwing:/falcon/mnt# ls -lh
ls: cannot access hello: No such file or directory
total 4.0K
?????????? ? ?    ?       ?                ? hello
-rwxr-xr-x 1 root root 2.4K 2012-02-02 14:15 testacl.py

Expected results:


Additional info:

Volume Name: test
Type: Distribute
Volume ID: 6ede0d1f-84d8-478a-90d0-be64b699395b
Status: Started
Number of Bricks: 1
Transport-type: tcp
Bricks:
Brick1: shortwing:/falcon/d1
Options Reconfigured:
performance.stat-prefetch: off
performance.quick-read: off


Server log-
[2012-02-02 16:18:21.722541] I [server3_1-fops.c:774:server_getxattr_cbk] 0-test-server: 475900: GETXATTR /dot (system.posix_acl_default) ==> -1 (No data available)
[2012-02-02 16:19:05.155323] E [posix.c:1678:posix_create] 0-test-posix: setting xattrs on /falcon/d1/.glusterfs/00/00/00000000-0000-0000-0000-000000000001/hello/dot failed (Operation not supported)
[2012-02-02 16:19:05.486764] I [server3_1-fops.c:774:server_getxattr_cbk] 0-test-server: 504505: GETXATTR /hello/dot (system.posix_acl_access) ==> -1 (No data available)
[2012-02-02 16:28:40.088192] I [glusterfsd-mgmt.c:63:mgmt_cbk_spec] 0-mgmt: Volume file changed
[2012-02-02 16:28:40.102388] I [server.c:556:server_rpc_notify] 0-test-server: disconnected connection from 127.0.0.1:1014
[2012-02-02 16:28:40.102493] I [server-helpers.c:763:server_connection_destroy] 0-test-server: destroyed connection of shortwing-5282-2012/02/02-14:16:12:058743-test-client-0
[2012-02-02 16:28:41.128691] I [glusterfsd-mgmt.c:1201:mgmt_getspec_cbk] 0-glusterfs: No change in volfile, continuing
[2012-02-02 16:28:44.564369] I [server-handshake.c:540:server_setvolume] 0-test-server: accepted client from 127.0.0.1:1018 (version: 3git)
[2012-02-02 16:28:45.167133] I [server-handshake.c:540:server_setvolume] 0-test-server: accepted client from 127.0.0.1:1013 (version: 3git)
[2012-02-02 16:28:49.337052] I [glusterfsd-mgmt.c:63:mgmt_cbk_spec] 0-mgmt: Volume file changed
[2012-02-02 16:28:49.353471] I [server.c:556:server_rpc_notify] 0-test-server: disconnected connection from 127.0.0.1:1013
[2012-02-02 16:28:49.353575] I [server-helpers.c:763:server_connection_destroy] 0-test-server: destroyed connection of shortwing-2696-2012/02/02-16:28:41:110592-test-client-0
[2012-02-02 16:28:50.375952] I [glusterfsd-mgmt.c:1201:mgmt_getspec_cbk] 0-glusterfs: No change in volfile, continuing
[2012-02-02 16:28:53.405034] I [server-handshake.c:540:server_setvolume] 0-test-server: accepted client from 127.0.0.1:1010 (version: 3git)
[2012-02-02 16:31:01.628269] I [server3_1-fops.c:774:server_getxattr_cbk] 0-test-server: 139: GETXATTR /testacl.py (system.posix_acl_access) ==> -1 (No data available)



Client log-
[2012-02-02 16:31:01.628375] W [client3_1-fops.c:899:client3_1_getxattr_cbk] 2-test-client-0: remote operation failed: No data available. Path: (null)
[2012-02-02 16:31:01.629047] W [client3_1-fops.c:899:client3_1_getxattr_cbk] 2-test-client-0: remote operation failed: No data available. Path: (null)
[2012-02-02 16:31:01.630215] E [fuse-resolve.c:192:fuse_resolve_gfid] 0-glusterfs-fuse: xl is NULL
[2012-02-02 16:31:27.363093] E [fuse-resolve.c:192:fuse_resolve_gfid] 0-glusterfs-fuse: xl is NULL

Comment 1 shishir gowda 2012-02-09 07:17:41 UTC
After patches 8e81cbacc53adc77bc4eabb5a26d6d13012f5f86 (bug 785675) fixed the fuse graph switch issue, the above failure is not seen.
But setfacl still fails, with invalid argument error. This is because in stat-prefetch layer, loc->name is checked in sp_setxattr, even when loc->gfid is not present.

Comment 2 shishir gowda 2012-02-21 09:23:23 UTC
We no longer see this issue, as stat-prefetch is phased out (in favour md-cache).
setfacl works with graph changes

Comment 3 Anush Shetty 2012-03-07 08:49:56 UTC
Verified with 3.3.0qa25.