[Bugs] [Bug 1210338] New: file copy operation fails on nfs
bugzilla at redhat.com
bugzilla at redhat.com
Thu Apr 9 13:29:07 UTC 2015
https://bugzilla.redhat.com/show_bug.cgi?id=1210338
Bug ID: 1210338
Summary: file copy operation fails on nfs
Product: GlusterFS
Version: mainline
Component: nfs
Assignee: bugs at gluster.org
Reporter: rabhat at redhat.com
CC: bugs at gluster.org, gluster-bugs at redhat.com
Description of problem:
On NFS mount, file copy operation fails with EINVAL. i.e. the below command
executed on a nfs mount fails.
cp /etc/resolv.conf .
cp: cannot create regular file ‘./resolv.conf’: Invalid argument.
This is the error reported in the logs
[2015-04-09 13:24:30.541426] W [nfs3.c:2516:nfs3svc_create_stat_cbk] 0-nfs:
abd82b73: /resolv.conf => -1 (Invalid argument)
[2015-04-09 13:24:30.541545] W [nfs3-helpers.c:3398:nfs3_log_common_res]
0-nfs-nfsv3: XID: abd82b73, CREATE: NFS: 22(Invalid argument for operation),
POSIX: 22(Invalid argument)
Version-Release number of selected component (if applicable):
How reproducible:
Steps to Reproduce:
1. copy a file to nfs mount
2.
3.
Actual results:
Expected results:
Additional info:
It seems that before sending the create fop, nfs server tries t resolve the
path by doing a lookup on the entry that is being created. When resolve fails,
the return value and the errno are saved in the local structure (frame->local).
But when create_resume has to be done, it tries to do a auth status check where
the op_ret and op_errno value saved in the local are changed.
This is the macro where the op_ret and op_errno of resolve operation are
changed.
#define nfs3_check_fh_auth_status(cst, nfstat, is_write_op, erlabl) \
do { \
xlator_t *xlatorp = NULL; \
char buf[256], gfid[256]; \
rpc_transport_t *trans = NULL; \
cst->resolve_ret = cst->resolve_errno = \
nfs3_fh_auth_nfsop (cst, is_write_op); \
if ((cst)->resolve_ret < 0) { \
trans = rpcsvc_request_transport (cst->req); \
xlatorp = nfs3_fh_to_xlator (cst->nfs3state, \
&cst->resolvefh); \
gf_uuid_unparse (cst->resolvefh.gfid, gfid); \
sprintf (buf, "(%s) %s : %s", \
trans->peerinfo.identifier, \
xlatorp ? xlatorp->name : "ERR", gfid); \
gf_log (GF_NFS3, GF_LOG_ERROR, "Unable to resolve FH"\
": %s", buf); \
nfstat = nfs3_errno_to_nfsstat3 (-cst->resolve_errno);\
goto erlabl; \
} \
} while (0) \
--
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.
More information about the Bugs
mailing list