When using an XrdOfs
plugin, the file open call will be handed to the plugin Open function.
In case validation fails, the plugin should return a status code (e.g: SFS_ERROR
), with more details in the XrdOucErrInfo
error object.
For the following code (XrdXRootdXeq.cc::1393):
// Open the file
//
if ((rc = fp->open(fn, (XrdSfsFileOpenMode)openopts,
(mode_t)mode, CRED, opaque)))
{rc = fsError(rc, opC, fp->error, fn, opaque); return rc;}
Providing a status != 0 will trigger parsing of the error object.
The errno from the error object is translated in the XProtocol::mapError() function.
However, for EINVAL, it defaults to kXR_FSError, which is a retryable error.
The complementary XProtocol::toErrno()
function provides a mapping between kXR_ArgInvalid
/kXR_ArgMissing
to EINVAL
.
There's no benefit in retrying an EINVAL
error from the open
call.
Would be useful to have a mapping between EINVAL
to a kXR_ error code.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
Use REPLY-ALL to reply to list
To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1