-
Notifications
You must be signed in to change notification settings - Fork 176
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
RequestExecutingAgent and StorageElementCache problems #3727
Comments
Just to comment that, as agreed with Andre, I will provide a fix for that |
Could you try that patch ? |
Yes, that works. |
how about the memory consumption ? |
16 GB RAM server (2.7% per instance)
Each thread stored about 420 StorageElements in the cache
Assuming all memory is taken by the cached SEs, which is not the case of course, we come to 1 MB per StorageElement item. |
I see. Out of luck, did you do the same measurement before ? |
On the production machine the instances take 0.5% of 16GB, but they are not processing Requests at the moment. Assuming the SECache is empty this takes things down to 0.86 MB per element. How many user requests do you treat per 30 minutes (the cache lifetime)? |
several tens of thousands in case of removal or forward diset operations :-/ |
With the updates in @chaen 's branch (using the proxyManagers proxyFile cache)
The memory stays at the 0.5% percent. |
Fixed in #3733 |
When the RequestExecutingAgent (REA) is executing requests for non-shifters, it gets proxies for the user and then deletes them after the execution of the operation. This causes problems when StorageElements are involved, because when they are created and a gfal2 context is created this context picks up the location of the proxy ($X509_USER_PROXY) and keeps that for its lifetime, which is equal to the lifetime of the StorageElement. However, this proxy file is deleted after the execution of the request that caused the creation of the StorageElement.
I noticed this behaviour in the development of the MultiVO transformations, because I was then only running requests as a "user" proxy. The resulting error messages from GFAL2 are somewhat cryptic
(
No such file or directory refers
to the proxy, not to the file on the storage, took me way too long to understand what was happening...)When running with predominantly shifterproxies for the execution of the Requests the error messages don't show up, because the user requests will simply use the shifter proxy associated to the StorageElement already in the cache. The problem is still there. that the wrong proxy is used for the request when calling storage elements.
The gfal2 context storing the proxy location can be reproduced in just python
The text was updated successfully, but these errors were encountered: