I have had a closer look at the state of things.

DeepLocate which is done at ls would return all the results it could and indicate success. It would print an error message to the logging stream for all the failed requests. A success would be indicated if at least one disk server was found. Now this is corrected to stOK for full success and stOK+suPartial if some of the recursive locate requests failed. A warning message is also printed by xrdfs:

]==> xrdfs localhost locate -d /data 
[!] Some of the requests failed. The result may be incomplete
[2001:1458:a192:b168:c155::125]:1094 Server ReadWrite 
[2001:1458:a192:b168:c155::124]:1094 Server ReadWrite 
[2001:1458:a192:b168:c155::126]:1094 Server ReadWrite 
[2001:1458:a192:b168:c155::127]:1094 Server ReadWrite 

As far as ls is concerned: it has always worked this way. I now also propagate partial flag from deep locate to ls's return code if necessary.

]==> xrdfs localhost ls  /data 
[!] Some of the requests failed. The result may be incomplete
/data/562e0914-c6e9-4ca0-89ae-9865b99bb83e
/data/d47816ed-02a4-496d-a69d-0acdee9e8a0d
/data/88dd240b-6108-4526-be93-1690bb8c6c82
/data/7553884a-c0c3-4cd5-b5c3-5e6aa6203f1c

The test has been done with the following imposter:

  def __call__( self, context ):
    server = ImposterServer(context)

    server.doFullHandshake(verifyAuth=False)

    for request in server.receive():
      if request.type == 'kXR_locate':
        server.send( server.kXR_locate( streamid  = request.streamid,
                                        locations = ['Mw[2001:1458:a192:b168:c155::122]:1094',
                                                     'Mw[2001:1458:a192:b168:c155::123]:1094',
                                                     'Mw[2001:1458:a192:b168:c155::199]:1094',] ))

    sleep(2)
    server.close()

Where one of the addresses points to a host that does not exist.

Please let me know if see or expect something different. Otherwise I will close the issue.


Reply to this email directly or view it on GitHub.



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