Skip to content

Bump container to v67 (xrootd OpenSSL 3 fix)#705

Merged
davidwalter2 merged 2 commits into
WMass:mainfrom
bendavid:singularityxrootd
Jul 3, 2026
Merged

Bump container to v67 (xrootd OpenSSL 3 fix)#705
davidwalter2 merged 2 commits into
WMass:mainfrom
bendavid:singularityxrootd

Conversation

@bendavid

Copy link
Copy Markdown
Collaborator

Summary

Bumps the apptainer/singularity container pin in run_with_singularity.sh to wmassdevrolling:v67.

v67 rebuilds the pip-installed xrootd against the container's system OpenSSL 3 instead of vendoring its own OpenSSL 1.1.1. Previously, importing XRootD.client (used for EOS directory listing in dataset_tools.py) loaded pyxrootd's bundled OpenSSL 1.1.1, which — sharing the libXrdCl soname and via ROOT/cppyy's RTLD_GLOBAL — collided with pyarrow's OpenSSL 3 symbols and segfaulted during the krb5 authentication handshake when loading samples from EOS over xrootd.

In v67, xrootd.libs/ no longer bundles any crypto and pyxrootd's libXrdSeckrb5 links the system libcrypto.so.3 / libkrb5.so.3 / libk5crypto.so.3, so the whole process runs on a single consistent OpenSSL 3 and the clash is gone at the source.

Verification

On v67, with the existing python XRootD.client usage:

  • w_z_gen_dists.py books files from EOS with no segfault (the exact path that crashed on v66).
  • End-to-end: import hist (-> pyarrow/OpenSSL 3) + import XRootD.client + list + open + read 113,400 events all succeed.
  • pyxrootd is loaded, yet the only libcrypto mapped in the process is the system libcrypto.so.3.

🤖 Generated with Claude Code

bendavid and others added 2 commits June 26, 2026 20:01
v67 rebuilds the pip xrootd against the container's system OpenSSL 3
instead of vendoring OpenSSL 1.1.1, resolving the symbol clash with
pyarrow's OpenSSL 3 that segfaulted EOS/xrootd access during the krb5
authentication handshake.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014nku8YpMNAt7HLbneVmUpg
matplotlib.cm.get_cmap was deprecated in 3.7 and removed in 3.9. The v67
container ships matplotlib 3.11, so styles.get_labels_colors_procs_sorted
(used by all rabbit plotting steps) crashed with AttributeError, failing 7
CI plotting jobs. Replace the three cm.get_cmap("tab10") call sites with the
recommended matplotlib.colormaps["tab10"] registry access, which returns the
same callable Colormap.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014nku8YpMNAt7HLbneVmUpg
@bendavid

Copy link
Copy Markdown
Collaborator Author

CI looks unchanged except for some tiny changes to spacing on some plots (related to updates of python plotting libraries). So this should be good to merge in principle.

@davidwalter2 davidwalter2 merged commit 6cb31dd into WMass:main Jul 3, 2026
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants