-
Notifications
You must be signed in to change notification settings - Fork 149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
problem with xrdfs query prepare call #1786
Comments
Hi Max,
What is it that you are actually trying to do with the query prepare call.
Is it related to a previous prepare that is long running? In general,
query prepares only work for tape staging as the prepare to prime the
cache completes faster than you can query it.
Andy
…On Thu, 22 Sep 2022, maksiks wrote:
Hi,
I am having problems with executing this call on the redirector.
On any door this works fine, when I try it on redirector I get the error (and from I can tell this never goes to any door):
220922 13:36:01 14054 XrootdXeq: ***@***.*** pub IPv4 login as maxi
220922 13:36:01 14054 ***@***.*** Xrootd_Protocol: 0100 req=query dlen=102
220922 13:36:01 14054 ***@***.*** Xrootd_Response: 0100 sending err 3000: Prepare requestid owned by an unknown server
Our redirector does not have direct access to the underlying FS, but commands like xrdfs ls work with no problems. Please help me to understand what needs to be done here.
Thank you, --Max
--
Reply to this email directly or view it on GitHub:
#1786
You are receiving this because you are subscribed to this thread.
Message ID: ***@***.***>
|
Hi Andy, the call is issued by the FTS in order to check if the file on our tape robot (T2_US_MIT_Tape) is available for transfer or needs to be staged in from a tape cartridge into disk cache (like any standard T1 system). While when I issue such a call by hand to any of our doors everything works, however the redirector produces an error that I posted. Our understanding is that the redirector tries to handle this call itself, and in our case it has no access to the underlying FS. Hence the question: is there any options that can force redirector to forward this call to a door? Or we have to have a redirector with an access to the FS? |
I took a deeper dive into this and a properly constructed prepare request ID, a server (data or redirector) receiving a query using that id will redirect the client to the server that actually created that request id. If a receiving sever created the id it will handle it. So, we need to find out what is wrong with that request id. It should only contains ASCII text so please either post one exhibiting this behavior or send it to me via email. |
Hi, here is the command that I try to execute from some server: 111 is just some random number that I try to supply as a request id, I do not know how this id should look like. If I skip that field with id the outcome of the command will be the same. tapexrd is our redirector that does not have access to underlying FS. If I issue same command using any door the call goes through. |
Hi, any update on this issue? |
OK, the problem here is that when you issue a prepare the server hands back a prepare request ID. That request ID must be used for any future query as it encodes the actual request and the server can then use it to find the actual request. Handing a random number will never work. When you issued the prepare using xrdfs the request ID should have been displayed. |
That you for the explanation, but it got me lost. What should the command look like when I issue it? Above I pasted how it should look like in my head, from your reply I understand that I am doing something wrong, so what should it be? |
Sorry for the late reply but I was away. When you issue a prepare for a resource that will take some time to prepare (e.g. get a file from a tape) the response will include a request handle. You use that request handle in a subsequent query to find out the request's status. For quick requests (e.g. prime a redirector's location cache) there is no point in the query because the request would have been processed by the time you get a response. So, the key here is that you need to use the request handle sent in he response (xrdfs or xprep should display it) in the subsequent query. |
I hope the last comment clarified the situation. The query request simply needs to be issued with the server supplied request handle (.k.a ID). Then this should work if the request is still active. |
Hi,
I am having problems with executing this call on the redirector.
On any door this works fine, when I try it on redirector I get the error (and from I can tell this never goes to any door):
220922 13:36:01 14054 XrootdXeq: maksiks.28781:37@t2srv0017.cmsaf.mit.edu pub IPv4 login as maxi
220922 13:36:01 14054 maksiks.28781:37@t2srv0017.cmsaf.mit.edu Xrootd_Protocol: 0100 req=query dlen=102
220922 13:36:01 14054 maksiks.28781:37@t2srv0017.cmsaf.mit.edu Xrootd_Response: 0100 sending err 3000: Prepare requestid owned by an unknown server
Our redirector does not have direct access to the underlying FS, but commands like xrdfs ls work with no problems. Please help me to understand what needs to be done here.
Thank you, --Max
The text was updated successfully, but these errors were encountered: