Bug 824309 - Error messages for some of the afr self-heal tests are not same on fuse and nfs mount
Error messages for some of the afr self-heal tests are not same on fuse and n...
Status: CLOSED NOTABUG
Product: GlusterFS
Classification: Community
Component: replicate (Show other bugs)
3.3-beta
Unspecified Unspecified
unspecified Severity medium
: ---
: ---
Assigned To: Pranith Kumar K
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-05-23 05:06 EDT by Shwetha Panduranga
Modified: 2012-05-24 03:17 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-05-24 03:17:01 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Shwetha Panduranga 2012-05-23 05:06:27 EDT
Description of problem:
----------------------
Testcase1:-
-----------
	Do not selfheal files without gfid's, when path to the files to be self-heal is not specified (1x3)

Steps:-
---------
	1. create a file on brick1 from the backend
	2. create a volume with brick1, brick2, brick3 (1x3)
	3. create a fuse, nfs mount
	4. execute : 'find . | xargs stat' from the mount

Actual results on fuse mount:-
-----------------------------
[05/23/12 - 19:38:45 root@APP-CLIENT1 gfsc1]# find . | xargs stat
  File: `.'
  Size: 23        	Blocks: 8          IO Block: 131072 directory
Device: 15h/21d	Inode: 1           Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-05-23 19:38:49.472117828 +0530
Modify: 2012-05-23 19:37:52.494276317 +0530
Change: 2012-05-23 19:38:18.894373987 +0530

[05/23/12 - 19:38:49 root@APP-CLIENT1 gfsc1]# ls -l
total 0

Actual results on nfs mount:-
------------------------------

[05/23/12 - 19:39:05 root@APP-CLIENT1 nfsc1]# find . | xargs stat
  File: `.'
  Size: 35        	Blocks: 8          IO Block: 65536  directory
Device: 16h/22d	Inode: 1           Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-05-23 19:38:49.074287670 +0530
Modify: 2012-05-23 19:38:32.482952159 +0530
Change: 2012-05-23 19:38:32.482952159 +0530
  File: `./file1'
  Size: 10        	Blocks: 8          IO Block: 65536  regular file
Device: 16h/22d	Inode: 18446744073709551615  Links: 0
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-05-23 19:38:32.482952159 +0530
Modify: 2012-05-23 19:38:32.482952159 +0530
Change: 2012-05-23 19:38:32.482952159 +0530

[05/23/12 - 19:39:07 root@APP-CLIENT1 nfsc1]# ls -l
ls: cannot access file1: Invalid argument
total 0
-????????? ? ? ? ?            ? file1

Testcase2:-
----------
	Self-Heal of files without GFID should return I/O Error when some childern are down

Steps:-
---------
	1. create a file on brick1 from the backend
	2. create a volume with brick1, brick2, brick3 (1x3)
	3. bring down brick2
	4. create a fuse, nfs mount
	5. execute : 
		a. "find . | xargs stat" 
		b. 'ls -lR' 
		c. 'ls -lR <filename>' from the mount

Actual results on fuse mount:-
-----------------------------
[05/23/12 - 19:44:33 root@APP-CLIENT1 gfsc1]# find . | xargs stat
  File: `.'
  Size: 59        	Blocks: 8          IO Block: 131072 directory
Device: 16h/22d	Inode: 1           Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-05-23 19:44:40.623984447 +0530
Modify: 2012-05-23 19:43:49.124947877 +0530
Change: 2012-05-23 19:43:49.124947877 +0530
stat: cannot stat `./file2': Input/output error
stat: cannot stat `./file3': Input/output error
stat: cannot stat `./file4': Input/output error

[05/23/12 - 19:44:41 root@APP-CLIENT1 gfsc1]# ls -lR
.:
ls: cannot access file2: Input/output error
ls: cannot access file3: Input/output error
ls: cannot access file4: Input/output error
total 0
?????????? ? ? ? ?            ? file2
?????????? ? ? ? ?            ? file3
?????????? ? ? ? ?            ? file4

[05/23/12 - 19:44:46 root@APP-CLIENT1 gfsc1]# ls -lR file2 
ls: cannot access file2: Input/output error

Actual results on nfs mount:-
------------------------------
[05/23/12 - 19:45:18 root@APP-CLIENT1 nfsc1]# ls -lR
.:
ls: cannot access file2: Invalid argument
ls: cannot access file3: Invalid argument
ls: cannot access file4: Invalid argument
total 0
-????????? ? ? ? ?            ? file2
-????????? ? ? ? ?            ? file3
-????????? ? ? ? ?            ? file4
[05/23/12 - 19:45:33 root@APP-CLIENT1 nfsc1]# ls -l file2
ls: cannot access file2: Invalid argument

[05/23/12 - 19:50:52 root@APP-CLIENT1 nfsc1]# stat file2
stat: cannot stat `file2': Invalid argument

[05/23/12 - 19:50:54 root@APP-CLIENT1 nfsc1]# find . | xargs stat
  File: `.'
  Size: 59        	Blocks: 8          IO Block: 65536  directory
Device: 15h/21d	Inode: 1           Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2012-05-23 19:44:40.623984447 +0530
Modify: 2012-05-23 19:43:49.124947877 +0530
Change: 2012-05-23 19:43:49.124947877 +0530
stat: cannot stat `./file2': Invalid argument
stat: cannot stat `./file3': Invalid argument
stat: cannot stat `./file4': Invalid argument


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


How reproducible:
-----------------
often

Expected Output:-
-----------------
The Error Numbers/Messages should be consistent on both fuse and nfs mount.
Comment 1 Pranith Kumar K 2012-05-24 03:17:01 EDT
Its the behaviour of NFS.
See the same thing happening on NFS with single brick.
[root@pranithk-laptop ~]# mount -t nfs `hostname`:/d1 /mnt/client -o vers=3
[root@pranithk-laptop ~]# touch /gfs/d1_0/b
[root@pranithk-laptop ~]# ls -l /mnt/client/b
ls: cannot access /mnt/client/b: Invalid argument
[root@pranithk-laptop ~]# gluster v i 
Volume Name: d1
Type: Distribute
Volume ID: bb36c530-1bdc-416f-994b-02854b2ad266
Status: Started
Number of Bricks: 1
Transport-type: tcp
Bricks:
Brick1: pranithk-laptop:/gfs/d1_0
Options Reconfigured:
diagnostics.brick-log-level: DEBUG
diagnostics.client-log-level: DEBUG

Please change your test script accordingly.

Note You need to log in before you can comment on or make changes to this bug.