Skip to content
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

Tuning Pelican for running xrootd under valgrind #1677

Merged
merged 2 commits into from
Nov 27, 2024

Conversation

bbockelm
Copy link
Collaborator

Valgrind is incredibly useful C++ debugging tool to check for leaks and other memory usage errors.

However, it also makes the application incredibly slow: it's often a 20x (or more) performance penalty. Xrootd caches hit the timeouts frequently.

This PR adds a few hidden tunables to allow us to increase timeouts enough for xrootd to run under valgrind. It also adds some standard C++ debugging tools into the development container.

Copy link
Member

@jhiemstrawisc jhiemstrawisc left a comment

Choose a reason for hiding this comment

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

I don't think we pull the actual defaults from docs/parameters.yaml yet, so the value we get from param.Xrootd_MaxStartupWait.GetDuration() is going to be 0 unless it's defined in the user's custom config. My guess is this is what's breaking the ticker.

Defaults can be defined in either config/resources/defaults.yaml or in our new config/config.go::SetServerDefaults

If xrootd is running under valgrind, the startup time may be much
more than 10s.  Provide a hidden tunable to give valgrind more time.
Under valgrind, its trivial to make the default cache timeouts hit
frequently - make this adjustable so stress tests can succeed.

Additionally, add a few helper RPMs for debugging under valgrind.
@jhiemstrawisc jhiemstrawisc self-requested a review November 27, 2024 18:16
@jhiemstrawisc jhiemstrawisc merged commit 8e5f60a into PelicanPlatform:main Nov 27, 2024
20 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.

3 participants