Red Hat Bugzilla – Bug 1302307
Vim commands from a non-root user fails to execute on fuse mount with trash feature enabled
Last modified: 2016-05-28 01:57:29 EDT
Description of problem: vi or vim is not working with trashcan feature of glusterfs via non-root user.
Version-Release number of selected component (if applicable): Glusterfs 3.7.6
How reproducible: You can reproduce by using following steps
Steps to Reproduce:
We are using gluster 3.7.6 on ubuntu 14.04. We are facing an issue with trashcan feature.
Our scenario is as follow:
1. 2 node server (ubuntu 14.04 with glusterfs 3.7.6)
2. 1 client node (ubuntu 14.04)
3. I have created one volume vol1 with 2 bricks in replica and with transport = tcp mode.
4. I have enabled quota on vol1
5. Now I have enabled trashcan feature on vol1
6. Now I have mounted vol1 on client's home directory "mount -t glusterfs -o transport=tcp server-1:/vol1 /home/"
7. Now when I logged in via any existing non-root user and perform any editing via vim or vi editor then I am getting this error "E200: *ReadPre autocommands made the file unreadable" and my user's home directory permission also get changed to 000. After sometime this permission gets automatically back to original one.
(NOTE: user's home directories are copied in mounted directory glusterfs volume vol1. And user's home directory have user's specific permissions)
Actual results: got this error "E200: *ReadPre autocommands made the file unreadable" while editing any file via vim or vi editor
Expected results: I should able to edit any file via vim or vi editor
Additional info: May be this issue related to vim working style format since vim or vi have to create a swap file for editing.
REVIEW: http://review.gluster.org/13346 (features/trash: Handle unlink unwind properly) posted (#1) for review on master by Anoop C S (email@example.com)
COMMIT: http://review.gluster.org/13346 committed in master by Jeff Darcy (firstname.lastname@example.org)
Author: Anoop C S <email@example.com>
Date: Wed Feb 3 18:24:20 2016 +0530
features/trash: Handle unlink unwind properly
When enabled, trash translator does a rename
internally for every unlink request and unwinds
the original unlink call. But this was unwinded
back with prerparent and postparent as NULL which
resulted in changing the parent directory
permissions to 000.
This issue is consistently seen as a failure
when a non-root user executes vim commands which
internally tries to perform stat operations (as
part of swap/backup file creation) on a file
whose parent directory's permission was modified
to 000 due to recent unlink for another file
inside the same directory.
Signed-off-by: Anoop C S <firstname.lastname@example.org>
Smoke: Gluster Build System <email@example.com>
Tested-by: jiffin tony Thottan <firstname.lastname@example.org>
Reviewed-by: jiffin tony Thottan <email@example.com>
CentOS-regression: Gluster Build System <firstname.lastname@example.org>
NetBSD-regression: NetBSD Build System <email@example.com>