Bug 1126823

Summary: Remove brick if(op_errno == ESTALE)...
Product: [Community] GlusterFS Reporter: Donatas Abraitis <donatas.abraitis>
Component: coreAssignee: Rinku <rkothiya>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: mainlineCC: atumball, bugs, rkothiya, smohan
Target Milestone: ---Keywords: EasyFix, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-04-22 07:13:27 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Donatas Abraitis 2014-08-05 11:30:59 UTC
Description of problem:
If brick's mountpoint has an "Input/Output" error for instance (XFS Input/Output error trying to list directories), glusterd does nothing, except warning about 'Stale file handle'. 

glusterd's mkdir() just returns OK, because brick doesn't return any error, it fails only on lookup(). 

Version-Release number of selected component (if applicable):
3.5.0, 3.5.1, 3.5.2, previous versions aren't checked.

Actual results:
Result is that you can create directory, but can't remove it, because of brick's FS error. 

After doing full umount and remount XFS at brick did the trick, but would be better to avoid this.

Additional info:
Suggestion would be to change behavior of this function client3_3_lookup_cbk(), to remove brick from gluster if rsp.op_errno == ESTALE.

Comment 1 Rinku 2019-04-22 07:13:27 UTC
Thanks for the suggestion, the idea of removing the brick when we get ESTALE error seems logical but cannot be implemented because the ESTALE error can be thrown by any xlator and if we remove the brick like this then it can have other undesirable repercussion.