Open alexander-held opened 6 months ago
Reproducer below, requires x509 credentials.
This comment is just to add additional context/instructions (though probably anyone reading this already knows the following)
To get your x509 proxy probably the easiest way is to just use the ATLAS VOMS proxy on a machine has setupATLAS
available through CVMFS
$ setupATLAS
$ lsetup rucio
$ voms-proxy-init -voms atlas
The proxy file path is stored in the X509_USER_PROXY
environment variable
$ echo $X509_USER_PROXY
/tmp/x509up_u23203
and so this proxy is relocatable, meaning that inside a container mounted (like AB-dev
) the variables X509_USER_PROXY
and X509_CERT_DIR
can be set inside the container to use the proxy.
A simple way to be able to make these findable from your user (on say the UCHicago AF) as your user in the mounted container would be to copy the credentials to your user area
# On SSH server (e.g. UCHicago AF)
$ env | grep X509 &> /tmp/x509_env_variables.txt
$ cp /tmp/x509_env_variables.txt ~/
$ cp "${X509_USER_PROXY}" ~/
# After done remember to delete ~/x509*
and then copy them into the container and set all the environmental variables
# In the mounted container
$ cp ~/x509* /tmp/
$ while IFS= read -r line; do export "${line}"; done < /tmp/x509_env_variables.txt
This is resolved by the latest uproot RC as the vector read is replaced by a new default with read coalescing. Might still be interesting / useful to understand but this degrades the issue in priority at least I'd say.
I'm actually kind of surprised here because I routinely had vector reads fail in the opposite way (no problem with xcache, fail with direct read from dCache). But as you say the latest uproot should address this.
We see some reproducible errors that look like
when reading specific branches. They seem to specifically happen when reading through XCache and disappear otherwise. Reproducer below, requires x509 credentials.