-
Notifications
You must be signed in to change notification settings - Fork 217
copy build directory and/or log file(s) if installation failed to path specified via --failed-install-build-dirs-path or --failed-install-logs-path
#4601
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
Conversation
b306ccd to
092fcd0
Compare
|
I am not sure what is the best way to select the build directory so that I can move it to a more permanent location. That is at the moment I am recreating the location of the build path and then copy the directory to the destination path:
|
50d99c3 to
86fe081
Compare
|
@gkaf89 The For, for example, for So, I think you could create a subdirectory in the permanent storage location that uses the name of the easyconfig file (to keep it simple), and copy the contents of |
Yeah, the thing to copy should be |
1274a2b to
b1a9da8
Compare
|
@gkaf89 If you need any help with this, do let us know! |
b1a9da8 to
6bc53e6
Compare
|
@boegel The commit is ready. I won't have enough time to familiarize myself with the test framework for the The commit can be tested by modifying the configuration options of some easyconfig that uses the system toolchain to cause a failure. For instance I added the option in |
|
@gkaf89 There's a problem with the tests, looks like |
|
The failure is caused because the target location for permanent storage is the same as the source location. The steps I am following to resolve the issue:
|
b34ff11 to
5cfdfd1
Compare
|
@boegel Some edge cases where uncovered by the tests. The latest commit resolves the issue. I leave it up you if you prefer to move it to version 5. I am not familiar enough with the tests to test the PR extensively. |
|
@gkaf89 As briefly discussed during the conf call today, it would be good if you could add a test (or enhance an existing one, like Do let us know if you need any help with that! |
…rst_nonexisting_parent_path to get_first_non_existing_parent_path, minor code cleanup
… --log-error-path to --failed-installs-logs-path
…s_logs_failed_installs + refactoring
…dirs_logs_failed_installs
|
@gkaf89 Finally found some time to go through this in detail... I did some code cleanup, and renamed a bunch of things so it makes a bit more sense. Thanks a lot for all the effort on this, especially the extensive tests that you added, that helps a lot to be confident in reviewing & refactoring this a bit! This should be good to go now, unless I messed up something causing some tests to fail (if so, I'll get them fixed) |
…nstalls-build-dirs-path and --failed-installs-logs-path are also set with a default subdirectory, they should be used opt-in
480b92b to
6a6eef6
Compare
Flamefire
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some final suggestions, maybe @boegel can check which make sense.
Looks good to me with or without.
Co-authored-by: Alexander Grund <[email protected]>
…_failed_installs_logs_path Co-authored-by: Alexander Grund <[email protected]>
…dirs_logs_failed_installs
…rs-path + --failed-installs-logs-path to --failed-install-logs-path to avoid double plural
…ssigning a lambda definition
18e60cf to
1d757db
Compare
--failed-install-build-dirs-path or --failed-install-logs-path
|
@boegel Did my comment about the salt got lost? It is collapsed now, so not sure if the decision was deliberate: |
The files can be build in some selected build path (--buildpath), and the logs of successful compilation are then concentrated to some other location for permanent storage (--logfile-format). Logs of failed builds remain in the build path location so that they can be inspected.
However, this setup is problematic when building software in HPC jobs. Quite often in HPC systems the build path is set to some fast storage local to the node, like NVME raid mounted on
/tmpor/dev/shm(as suggested in the documentation: https://docs.easybuild.io/configuration/#buildpath). The node storage is often wiped out after the end of a job, so the log files and the artifacts are no longer available after the termination of the job.This commit adds an option to accumulate errors in some more permanent location, so they can be easily inspected after a failed build.