-
Notifications
You must be signed in to change notification settings - Fork 11
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
Test which need to copy data files fail in CI #201
Comments
it also happens with the LAMMPS rhodo case
|
I'd consider this a bug in the CP2K test. Tests should not assume that the original prefix that defines the test are still available. That's what the staging dir is for: that one is guaranteed to be available, and that's where the input files should come from. Why does it even need to do this copy:
that input dir should be in the staging dir, which is the current workingdir of the test? Can't we just make it do:
Without the copy? |
Yes, I'm pretty sure now: this line should be different, and just have the full (relative) path to the input file, e.g. |
Yes I think the CP2K test should do something similar than the LAMMPS test which uses ReFrame to add the file to the staging dir. but their it also is failing so maybe than it is a ReFrame bug because it seems to only do the copy to the stage dir in the job when using |
Hmm, does the LAMMPS test work in the CI run? I'd assume that gives the same issue, since I guess the use of Another option is to use the Anyway, for this test, and for LAMMPS, I would suggest we not use the |
Yes indeed the rhodo test of lammps does not work. I'm ok with not using One of the suggestions I can remember from when we had that discussion was to use a cvmfs repo for the test data. So than we could point It is maybe better to put something in place before it starts getting out of hand with the copying of data files. |
I've been thinking about this a bit. What concerns me here is the fact that constructs like hosting the data files in a CVMFS repo, or using the Honestly, saving that one copy of 6MB (the size of the LAMMPS rhodo data file) isn't worth it for me. Even on a somewhat slugish filesystem, it'd only take 0.1s for each partition for which it needs to be staged. That's completely negligible compared to the runtime, scheduling overhead, etc of those tests. If you're really concerned about the copies, I'd suggest looking into test fixtures to see if we can somehow use those to make sure the input file only gets staged once, instead of once per test instance. I'm not 100% sure how to get this done. I think we'd have to define the fixture in a separate directory, so as to avoid the source files being staged with the main tests. Then, the fixture test itself needs to only stage the data. I guess we could make it a RunOnlyRegressionTest where the run command does nothing (we can check how RunOnlyRegressionTest implements the no-op for the compile stage, and do the same for the run stage), and the sanity check just checks for the presence of the data file in the staging dir. We then call the fixture from the real LAMMPS test like so:
Note that even in case of many test sizes (node counts / core counts), it doesn't change the fact that the copy-overhead is tiny. So I'm not sure if this is worth the complexity. But it does reduce disk useage for the stage dirs. Right now, on my system, I already get 52 test instances for LAMMPS (2 partitions, 2 modules, 13 sizes), so that'd be 300 MB. Not the end of the world, but it could have been 6 MB :) For really large test inputs: I like the idea of hosting that in CVMFS and pointing the resourcesdir there. But note that this does still suffer from a versioning issue, i.e. if you update a test in the test suite, you might have to update an existing source file. We can avoid that by using versioned prefixes (something like
|
I'd try something like:
with
and
I've asked on ReFrame Slack if they think this would work, or if there is a better way to do this. |
Response on Slack from Vasileios: """
""" So, this could be a way to go. |
The CI creates a temporary directory with a copy of the EESSI test-suite from where the jobs get submitted. In the job the tests than tries to find the input scripts for CP2K in that temporary directory where it cannot find it.
The default is set to
RFM_CHECK_SEARCH_PATH=${TEMPDIR}/test-suite/eessi/testsuite/tests/
in the CI.Error:
Example script generated by ReFrame on Ugent tier2 system
Output:
The text was updated successfully, but these errors were encountered: