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.

[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/xrootd/xrootd/issues/1029?email_source=notifications\u0026email_token=AA7NRDWGBPF4YQJ3LCO6M5TQB4CX3A5CNFSM4IHTQAM2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HCCLBEQ", "url": "https://github.com/xrootd/xrootd/issues/1029?email_source=notifications\u0026email_token=AA7NRDWGBPF4YQJ3LCO6M5TQB4CX3A5CNFSM4IHTQAM2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HCCLBEQ", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]

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