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

[DO NOT MERGE] Unmerged changes in v0.10.0-RC branch #1421

Closed
wants to merge 33 commits into from

Conversation

rhornung67
Copy link
Member

@rhornung67 rhornung67 commented Sep 23, 2024

Summary

  • This PR compares the unmerged changes in v0.10.0-RC branch to develop.
  • It includes version updates and updated host-configs and CI updates for new versions of TPLs .

Please review this PR, but approve #1425 for merging.

@bmhan12
Copy link
Contributor

bmhan12 commented Sep 24, 2024

It is certainly related. The errors I see are from that test: the files already exist (from a previous run) because they were not cleaned up. If I delete file_no_fmt.txt and file_with_fmt.txt by hand (i.e. do the job from lines 472 and 473 that you disabled on Windows), the test succeeds and leaves those files behind.

Darn. Removing the check worked for Azure because every job run is a fresh build. Just realizing makes sense it would fail running the unit tests again. I'll try to debug this in the Windows Azure build, should hopefully fix things on your desktop as well.

@agcapps
Copy link
Member

agcapps commented Sep 24, 2024

It is certainly related. The errors I see are from that test: the files already exist (from a previous run) because they were not cleaned up. If I delete file_no_fmt.txt and file_with_fmt.txt by hand (i.e. do the job from lines 472 and 473 that you disabled on Windows), the test succeeds and leaves those files behind.

Darn. Removing the check worked for Azure because every job run is a fresh build. Just realizing makes sense it would fail running the unit tests again. I'll try to debug this in the Windows Azure build, should hopefully fix things on your desktop as well.

What is happening is that the program still has handles open to the file: they haven't been closed. I confirmed this by running Process Explorer.

On Linux, unlink() it doesn't care: it just deletes the file. If you want to delete a file on Windows you have to close all open handles, otherwise _unlink() fails.

@bmhan12
Copy link
Contributor

bmhan12 commented Sep 24, 2024

What is happening is that the program still has handles open to the file: they haven't been closed. I confirmed this by running Process Explorer.

🤦 I didn't close the files prior to attempting to delete. Trying that now.

@rhornung67
Copy link
Member Author

@bmhan12 if you have changes to make related to closing files, feel free to do that on this RC branch or on a separate PR. Whichever you prefer.

@agcapps
Copy link
Member

agcapps commented Sep 24, 2024

So in order for axom::utilities::filesystem::Unlink() https://github.com/LLNL/axom/blob/develop/src/axom/core/utilities/FileUtilities.cpp#L126 to succeed, you will need to first call std::ofstream::close() wherever applicable.

I see that GenericOutputStream is built to deal with ostream, which is an abstraction level above ofstream. The ofstream gets closed in its destructor (https://en.cppreference.com/w/cpp/io/basic_ofstream/close, see "Notes") and the GenericOutputStream deletes its ostream in ~GenericOutputStream, so before deleting the files, we could tell slic to delete all output streams. @white238 , what do you think?

@rhornung67 rhornung67 changed the title Task/rhornung67/v0.10.0 rc Unmerged changes in v0.10.0-RC branch Sep 25, 2024
@rhornung67 rhornung67 changed the title Unmerged changes in v0.10.0-RC branch [DO NOT MERGE] Unmerged changes in v0.10.0-RC branch Sep 25, 2024
Copy link
Member

@kennyweiss kennyweiss left a comment

Choose a reason for hiding this comment

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

Looks good, but I'd like to take a pass through the RELEASE_NOTES before the release.
Also, should we add a line to the RELEASE_NOTES about dropping support for XL?

(Note: I'm intentionally not approving this to ensure the branch doesn't get merged into develop)

Comment on lines +86 to +92
set(CMAKE_CUDA_FLAGS "" CACHE STRING "")

set(ENABLE_CUDA ON CACHE BOOL "")

set(CMAKE_CUDA_SEPARABLE_COMPILATION ON CACHE BOOL "")

set(CMAKE_CUDA_ARCHITECTURES "70" CACHE STRING "")

set(CMAKE_CUDA_FLAGS "-restrict --expt-extended-lambda " CACHE STRING "")
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -restrict --expt-extended-lambda " CACHE STRING "" FORCE)
Copy link
Member

Choose a reason for hiding this comment

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

Do we know why there are now two lines for CMAKE_CUDA_FLAGS?

I'm pretty sure the second CMAKE_CUDA_FLAGS w/ FORCE will overwrite the first one, so it's not a problem, but it does seem a bit weird to have both.

Copy link
Member Author

Choose a reason for hiding this comment

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

I have no idea why there are two lines for CMAKE_CUDA_FLAGS. I just ran the scripts to generate the new host-configs.

Copy link
Member

Choose a reason for hiding this comment

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

It's likely related to the class hierarchy for packages in Spack.
Thoughts @white238 ?

Copy link
Member

@white238 white238 Sep 25, 2024

Choose a reason for hiding this comment

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

There were some changes in spack. This was reviewed in a previous PR. The original line comes from CachedCMakePackage and the later is added by us.

Copy link
Member Author

Choose a reason for hiding this comment

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

A note about no longer supporting XL has been added to the release notes.

RELEASE-NOTES.md Outdated
### Removed


## [Version 0.10.0] - Release date 2024-09-xx
Copy link
Member

Choose a reason for hiding this comment

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

Please update the links for axom@0.10 and axom@0.9 at the bottom of this file

Copy link
Member Author

Choose a reason for hiding this comment

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

Done.

RELEASE-NOTES.md Outdated
Comment on lines 31 to 35
### Changed
- Updates to [Conduit version 0.9.2][https://github.com/LLNL/conduit/releases/tag/v0.9.2]
- Updates to [RAJA version 2024.07.0][https://github.com/LLNL/RAJA/releases/tag/v2024.07.0]
- Updates to [camp version 2024.07.0][https://github.com/LLNL/camp/releases/tag/v2024.07.0]
- Updates to [Umpire version 2024.07.0][https://github.com/LLNL/Umpire/releases/tag/v2024.07.0]
Copy link
Member

Choose a reason for hiding this comment

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

Please merge these four lines w/ the existing Changed section for axom@0.10 a few lines down (below Added)

Copy link
Member Author

Choose a reason for hiding this comment

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

I don't understand. This follows what is done for other releases that have updated TPL versions.

Copy link
Member

Choose a reason for hiding this comment

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

There are two Changed sections for this release -- https://github.com/LLNL/axom/blob/b1f5bbc7c617faaf28643f0f88184ccc7d52eae2/RELEASE-NOTES.md

I can take care of the fix

Copy link
Member Author

Choose a reason for hiding this comment

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

I see what you mean now. I thought the TPL version updates should be up front so they are more obvious. But, whatever you prefer is fine with me.

@kennyweiss kennyweiss mentioned this pull request Sep 25, 2024
2 tasks
@kennyweiss
Copy link
Member

So in order for axom::utilities::filesystem::Unlink() https://github.com/LLNL/axom/blob/develop/src/axom/core/utilities/FileUtilities.cpp#L126 to succeed, you will need to first call std::ofstream::close() wherever applicable.

I see that GenericOutputStream is built to deal with ostream, which is an abstraction level above ofstream. The ofstream gets closed in its destructor (https://en.cppreference.com/w/cpp/io/basic_ofstream/close, see "Notes") and the GenericOutputStream deletes its ostream in ~GenericOutputStream, so before deleting the files, we could tell slic to delete all output streams. @white238 , what do you think?

Really nice find @agcapps!
Can we please add a note about this in the doxygen for removeFile?

/*!
* \brief Remove the specified file.
* \param filename The name of the file.
* \return 0 on success, -1 on failure. errno can obtain more information
* about the failure.
*/
int removeFile(const std::string& filename);

@bmhan12 -- perhaps this should be added to #1424 ?

@@ -17,10 +17,10 @@ The format of this file is based on [Keep a Changelog](http://keepachangelog.com

The Axom project release numbers follow [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [Unreleased] - Release date yyyy-mm-dd
Copy link
Member

Choose a reason for hiding this comment

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

@rhornung67 -- I removed the empty Unreleased section for the release. We'll add it back when we merge main to develop

@rhornung67 rhornung67 closed this Sep 26, 2024
@rhornung67 rhornung67 deleted the task/rhornung67/v0.10.0-RC branch September 26, 2024 21:48
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.

6 participants