-
Notifications
You must be signed in to change notification settings - Fork 39
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
TPC error in push-mode from StoRM WebDAV to EOS for file size greater than 1MB #38
Comments
Hi Andrea, Thanks for the report! I tried to replicate your issue by using two different EOS instances one running 4.8.82 version (used as source) and one running 5.0.23 (used as destination), but everything worked as expected. I used the following test script for this, basically relying on curl to trigger the TPC transfer:
In general EOS relies on the
Cheers, |
Hi Elvin, thank you very much for the quick feedback! First of all, I noticed that the Content-Length parameter is in the header in both cases, respectively:
In the failure case the file has been created, but it is not "filled". So it seems that the miscommunication between WebDAV and EOS involves another part of the transfer. Please, keep open this issue. I will update it as soon as I have something new. As further information, I attach the logs that I mentioned above to this comment. Thank you again for the great support, ======================================================================== |
Hi Andrea, Looking at the logs that you provided it seems that the WebDav client might not properly follow the redirection that it receives from the MGM daemon. Most likely you can easily replicate the behavior with a simple PUT operation as the TPC in the end boils down to this. It would be interesting to know what the HTTP client from the other endpoint does/sees. Cheers, |
Dear Elvin, I am waiting for a feedback of the StoRM developers. In the following lines I have found the PUT request that you mentioned in the last comment:
I have also tried to increase the debug level of all the libraries and I noticed that WebDAV tried to pass all the file content (maybe through the header?) until the connection is closed and the pipe is broken. I attached this part below. Thank you very much for your time and patiance, ================================================================================ |
Hi Andrea, I believe the problem is that the Apache HttpClient used by Storm to perform the PUT request does not send the Sending everything in one go will not work with any EOS endpoint, since the initial point of contact is the namespace metadata server and only after one redirection does the client connect to the actual (data) server that will store/provide the data. Cheers, |
Hi Elvin, sorry for the late reply. I have open also a ticket about this issue to the StoRM webDAV developers: As you can see from that, in the next release the request of sending the Until that moment, please leave open the issue. Thank you again, |
Hi all,
I have noticed a costant error in the third-party push-copies from StoRM WebDAV to EOS with file size bigger than 1MB.
In my tests, the version of the StoRM WebDAV server is
storm-webdav-1.4.1-1.el7.noarch
, while the EOS version is the5.0.22
and the XrootD version is the5.4.3
. Below, you can find two easy examples with the gfal tool of a successful transfer and a failed one.Checking the EOS logs, it seems there is a miscommunication between the file transfer services, in fact EOS always attempts to parse all the file as a header. So in the first example above all the file content has been written into the logs.
Indeed, from the following configuration of EOS I suppose that this kind of behavoiur can only work until the size is lower than 1MB:
and this is the reason for which the transfers fail for the files with size bigger than 1MB.
The failed transfer logs of EOS show the following error:
in which EOS tries to parse the first content line of the file, but then it fails.
As further information, by looking at the storm webdav logs, the third-party copy it is successfully submitted in both cases.
In summary, it seems that in this specific case of the file transfer EOS is not able to distinguish the header from the content and it parses all the content as the header.
As a consequence, the file transfer fails whenever the size is greater than 1MB.
Sorry if I made any mistakes or I was not clear and, please, feel free to move this issue if needed.
The text was updated successfully, but these errors were encountered: