Bug 1208384
Summary: | NFS interoperability problem: Gluster Striped-Replicated can't read on vmware esxi 5.x NFS client | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Community] GlusterFS | Reporter: | darwin | ||||||||
Component: | nfs | Assignee: | Niels de Vos <ndevos> | ||||||||
Status: | CLOSED WONTFIX | QA Contact: | |||||||||
Severity: | high | Docs Contact: | |||||||||
Priority: | unspecified | ||||||||||
Version: | 3.6.2 | CC: | bugs, darwin, ndevos, root | ||||||||
Target Milestone: | --- | Keywords: | EasyFix, Patch, Triaged | ||||||||
Target Release: | --- | ||||||||||
Hardware: | x86_64 | ||||||||||
OS: | Other | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||||
Doc Text: | Story Points: | --- | |||||||||
Clone Of: | |||||||||||
: | 1209298 (view as bug list) | Environment: | |||||||||
Last Closed: | 2016-07-31 21:20:57 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: | |||||||||||
Bug Depends On: | 1209298 | ||||||||||
Bug Blocks: | |||||||||||
Attachments: |
|
Description
darwin
2015-04-02 06:54:50 UTC
Created attachment 1010539 [details]
tcpdump of esxi read with Input/output error
Created attachment 1010540 [details]
tcpdump of esxi read with no error
Created attachment 1011510 [details]
tcpdump/tshark analysis
Summary, more details in the attachment.
Difference in the return of the read:
- non-working: return all data (13 bytes of 512 requested), EOF=No
- working: return all data (11 bytes of 512 requested), EOF=yes
This suggests that Striped-Replicated does not set the EOF flag when appropriate. A short read seems to be marked as an error on ESXi.
The Linux NFS-client requests the exact number of bytes it wants to read. ESXi requests 512 bytes, even if the file is smaller.
-> need an other NFS-client for testing... nfsshell?
When a short-read is done, the Stripe xlator should ret=<size> and errno=ENOENT to make the NFS-server set EOF.
REVIEW: http://review.gluster.org/10142 (stripe: set ENOENT when a READ hits EOF) posted (#1) for review on master by Niels de Vos (ndevos) Tested the behaviour with nfsshell (which also requests more bytes than the file is long). The missing EOF is seen in tshark as well, with the patch the EOF is set. I wonder if ESXi can use striped volumes too. Please let me know if you can test the patch and build packages yourself. I can build RPMs (tell me the distro and version) if you need assistance with that. Thanks, I'd be happy to test, can you build for CentOS Core 7.0.1406 Could you test the packages from here? https://kojipkgs.fedoraproject.org/scratch/devos/task_9474357/ These are based on the 3.6.2 version, added the patch from comment #5. The patch has been included in the master branch and will be available for testing in the next 3.8 nightly builds: http://download.gluster.org/pub/gluster/glusterfs/nightly/glusterfs/ Bug 1219399 has been opened to get a backport of http://review.gluster.org/10142 in the 3.7 version. Once this is fixed/merged in 3.7, a backport can also get included in 3.6. Resetting the status of this bug, so that other developers can send the backports. *** Bug 1347657 has been marked as a duplicate of this bug. *** REVIEW: http://review.gluster.org/14771 (stripe: set ENOENT when a READ hits EOF) posted (#1) for review on release-3.6 by Niels de Vos (ndevos) This is not a security bug, not going to fix this in 3.6.x because of http://www.gluster.org/pipermail/gluster-users/2016-July/027682.html Note that current 3.7.x (and 3.8) versions have been fixed already. |