Skip to content

lowq2_reconstruction: preload ROOT libCore for filterHEPMC3 - #320

Merged
wdconinc merged 1 commit into
masterfrom
wdconinc-add-root-preload-workaround
Aug 2, 2026
Merged

lowq2_reconstruction: preload ROOT libCore for filterHEPMC3#320
wdconinc merged 1 commit into
masterfrom
wdconinc-add-root-preload-workaround

Conversation

@wdconinc

@wdconinc wdconinc commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Why

The filterHEPMC3.py step can fail to locate ROOT.modulemap when library resolution lands on a patch-level variant instead of the expected soname. This blocks stable Low-Q2 training event filtering in the container environment.

What changed

In benchmarks/lowq2_reconstruction/Snakefile, the filter_hepmc_for_training shell block now preloads:

LD_PRELOAD="${LD_PRELOAD:+$LD_PRELOAD:}/opt/local/lib/root/libCore.so.6.40"

This is added alongside the existing ROOT include/library path exports so resolution consistently targets the non-patch-level .so needed for correct modulemap discovery.

Notes for reviewers

A FIXME comment flags this as a temporary workaround for an in-progress ROOT upstream bug. With a single ROOT installation in these containers, keeping this preload should be low risk even as we upgrade away from ROOT 6.40.

Add an LD_PRELOAD workaround in filter_hepmc_for_training to force resolution to libCore.so.6.40 so ROOT.modulemap is found reliably.\n\nMark this as FIXME and note the in-progress ROOT upstream bug; with a single ROOT install in our containers, this should remain harmless after upgrades away from ROOT 6.40.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 2, 2026 17:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to stabilize the filterHEPMC3.py step in the Low-Q2 reconstruction benchmark by forcing consistent ROOT shared-library resolution so ROOT.modulemap can be found reliably inside the container environment.

Changes:

  • Preloads libCore.so.6.40 via LD_PRELOAD in the filter_hepmc_for_training Snakemake rule.
  • Adds a FIXME note documenting that the preload is a temporary workaround for an upstream ROOT issue.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread benchmarks/lowq2_reconstruction/Snakefile
@wdconinc
wdconinc merged commit 6addb6e into master Aug 2, 2026
4 checks passed
@wdconinc
wdconinc deleted the wdconinc-add-root-preload-workaround branch August 2, 2026 19:06
@wdconinc wdconinc mentioned this pull request Aug 2, 2026
12 tasks
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