Print

Print


Unfortunately, other compilers (i.e. non-gcc) are used and we have no 
control over that. Plus, I wouldn't feel confortable on relying on a 
"quirk" as this can change at any time. So, I think it's best to wait 
until 6.0.0.

Andy


On Sat, 18 Feb 2023, Brian P Bockelman wrote:

> 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 --
>
>  * Add an error object to XrdOss.
>
> -- File Changes --
>
>    M src/XrdOss/XrdOss.cc (16)
>    M src/XrdOss/XrdOss.hh (35)
>
> -- Patch Links --
>
> https://github.com/xrootd/xrootd/pull/1913.patch
> https://github.com/xrootd/xrootd/pull/1913.diff
>
> -- 
> Reply to this email directly or view it on GitHub:
> https://github.com/xrootd/xrootd/pull/1913
> You are receiving this because you are subscribed to this thread.
>
> Message ID: ***@***.***>
>


-- 
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/pull/1913#issuecomment-1435808598
You are receiving this because you are subscribed to this thread.

Message ID: <[log in to unmask]>

########################################################################
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