While XrdOss has a simple POSIX-like interface, in reality the underlying implementation can be quite complicated -- XrdPfc, for example. Accordingly, we should allow for a richer error message interface between the OSS and its callers. This adds a new virtual function which the SFS interface can invoke to get additional error information.

The intent is this will be used by XrdPfc and allow clients to differentiate between "the cache gave you a permission denied" and "the origin gave the cache a permission denied".

This uses the existing "features" interface so we can prevent invoking the new API for a class that's compiled against the old API.

A note on ABI compatibility: Technically, this is an ABI change and hence would need to wait until XRootD 6 to be deployed. However, this takes advantage of a quirk of GCC: the ordering of the virtual functions are preserved. Hence, the new functions are placed out of alphabetical order so as to not screw up the virtual function table offsets for existing code. So, I think this actually won't break ABI and hence could go in for 5.6.0. Would like to hear other's opinions though!

Second note on ABI compatibility: If we decide we like the above logic, in XRootD 6 we could add a few placeholder virtual functions that simply hold an empty slot in the vtable, allowing for adding new ABI calls during the 6 series for GCC-based platforms without worrying about ABI breaks.


You can view, comment on, or merge this pull request online at:

  https://github.com/xrootd/xrootd/pull/1913

Commit Summary

File Changes

(2 files)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <xrootd/xrootd/pull/1913@github.com>

[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/xrootd/xrootd/pull/1913", "url": "https://github.com/xrootd/xrootd/pull/1913", "name": "View Pull Request" }, "description": "View this Pull Request 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