Make dfmodules integtests more friendly for computers with limited resources - #452
Merged
Merged
Conversation
…ent their memory from growing very large in long runs.
…are of the resources that are available on the computer where the test is run.
…e are insufficient resources available
…re reliably in contrained environments and have better resource thresholds.
…esource_protections
…zeInIntegtest' into kbiery/integtest_resource_protections
…mpress_test and the max_file_size_test.
eflumerf
approved these changes
Oct 8, 2025
eflumerf
left a comment
Member
There was a problem hiding this comment.
Ran dfmodules_integtest_bundle.sh, things look good
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
A few weeks ago, I noticed messages in one or more Slack channels that talked about
dfmodulesintegtests consuming all of the memory on np04-srv-016 when the tests were run on that computer. I believe that the biggest offender washdf5_compression_test.The first change in this set was to reduce the latency buffer size that is used in the
hdf5_compression_testfrom a very large value to a more reasonable value. I don't remember where that very large value came from, but it was probably left over from a debugging session when the test was first developed. The test seems to run fine with the new smaller value.Beyond that, I realized that we could/should make the
dfmodulestests more user friendly when they are run on computers that have limited resources. In particular, we should make consistent use of the pattern that we have in other integtests in which we check for sufficient resources and skip the test if insufficient resources are available on the current computer.To avoid copy/pasting all of the resource-checking code among all of the integtests, I created a helper class in the
integrationtestrepo that does the work of checking the requested resources and formatting strings that describe any problems that are found. This means that these changes are dependent on ones in theintegrationtestrepo.The general pattern for using the helper class is the following:
drunccommand if insufficient resources are available (run a very simple command like "wait 1" instead)pytesttests, check if sufficient resource were found, and usepytest.skipto skip the test if notI've run these changes on
daq.fnal.gov,np04-srv-002,np04-srv-005, andnp04-srv-016, and that all worked (with certain tests being appropriately skipped when resources were limited, and with the understanding that thehdf5_compression_testand themax_file_size_testcurrently produce logfile complaints about gRPC ping messages).Testing Suggestions
Here are suggested steps for testing these changes:
Correlated Issues and/or PRs
A feature branch name of
kbiery/integtest_resource_protectionsis used in both repositories.Useful coordination
No special coordination will be needed for merging these changes to
developbranches beyond announcing the merges on the appropriate Slack channel.