Hi All,

 

RAL currently supports paths with a single slash as well as double slash after the endpoint/port for historic reasons, e.g.

 

root://xrootd.echo.stfc.ac.uk:1094/dteam/test

and

root://xrootd.echo.stfc.ac.uk:1094//dteam/test

are both accepted and map to the same underlying object in ceph.

 

When moving to using a cmsd redirector, we found that cmsd removes a slash from the path when the manager talks to the server. This is fine for double slash, but single slashes return “No servers have write access to the file (destination)” when using the root protocol.

 

I’ve edited the code in src/XrdCms/XrdCmsCluster.cc line 937 (file locate) to inject a leading slash if not already present in the path when querying the servers. This works fine except for one root path which is under name2name mapping (/store, which is mapped to /cms:store). This gets rejected at the auth layer, before it gets to the cmsd locate request (and the injection).  

I tried searching the code for the where the initial path is accepted by the server but can’t find the correct section. Authorise seems to be called by multiple types of stats in src/XrdOfs/XrdOfs.cc

 

Which section of the code has the server accept the initial path request? More in general, is there a flow diagram to better navigate the codebase?

 

Regards,

Jyothish



Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-L&A=1