-
Notifications
You must be signed in to change notification settings - Fork 45
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
tests suddenly failing in LAPACKConfig.cmake #427
Comments
@glhenni, can you please attach the output from the configure of Trilinos cmake STDOUT? specifically, I want to see what is shown for the line FYI: This must have been triggered by the merge of PR #426 yesterday and Charon2 must be pulling in TriBITS from 'master'. |
We have some messiness of our own in our cmake so I tried to edit that out of the screen output. Hopefully this gives you what you need. |
@glhenni, perfect. What we see is:
which shows the duplicate libs which is immediately followed by the I will create a unit test that exposes the problem and write code to fix this and post a new PR and merge it. NOTE: Don't bother changing your configure process. Adding duplicate libs should be harmless (and I should have considered that possibility). |
This should fix a configure error reported in TriBITSPub#427 where there were duplicate libs in TPL_LAPACK_LIBRARIES.
…targets-1 This should resolve the issue with duplicate libs reported in TriBITSPub/TriBITS#427 addressed in PR TriBITSPub/TriBITS#428.
Pretty sure we're up and running again @bartlettroscoe. I manually kicked off a couple of our nightly tests that failed last night and they've gotten through the configure and are now compiling. Well past where the failed last night. I won't know 100% until all our testing runs tonight, but I'm willing to be at a 99% level that the problem is gone. Thank you! |
I have ONE platform for ONE test that is still failing. The error is similar but not identical. I thought maybe I had a pointer to an old TriBITS clone but no, as far as I can tell it's a fresh clone. There's a whole sequence of errors like the one below. I'll also attach the full cmake output.
|
From the output cmake-trib-error.txt file above we see:
there is no duplicate Otherwise, I think I know what the problem must be. From the configure output we see:
My guess is that this may be finding the
When a TriBITS Looking at the configure output, I can see this configure is running on a CEE build machine:
@glhenni, can you please point me to your configure script for this build offline so that I can reproduce this myself? BTW, as a workaround, my guess is that if you delete the |
@glhenni, let me go ahead and put in that workaround directly in TriBITS and see if that fixes your problem for now. Stay tuned. |
It's very possible that a tribits change exposed some problem with our config. It's SO odd that it's only happening on this platform for this test. There is another almost identical platform and I don't see this error. As an FYI, I completely wiped out the build directory before starting the build above. There should have been no artifacts left over. |
@glhenni, in that case, can you please provide your configure script for this build so I can reproduce this? |
I'm not sure what all you'll need Ross. I use a python script to generate a cmake invocation. Below is the cmake command it invokes. What else do you require?
|
Here's the |
BTW, it is also possible that The questions is, how was HDF5 found in this build before this update of TriBITS? Do you have the Jenkins log showing that? |
I certainly have the console output of it working before the tribits change, but I don't see any obvious difference. Of course I can always checkout a version of tribits used on that day and get more explicit output if that would help. Attached is the console log... |
Here's a great data point that's not confusing at all...if I invoke cmake as above in an empty build directory it fails with the aforementioned errors about |
@glhenni, that makes no sense :-) Let me try running a modified version of your configure command above and see happens for me. This may also be impacted by your env. Can you capture your bash env and email it to me offline? (Don't want to put that in a GitHub Issue.) |
I agree, it makes no sense and yet I can give you output of BTW, I don't see it picking up anything from old builds or weird locations in those traces. If you have access to |
Found it! You were right @bartlettroscoe. I looked more closely at the trace output and it was indeed finding a Looks like I'll have to clean out that directory prior building in the future, which is probably not a bad idea anyway. |
I don't know why this just bit us. Seems like something in cmake or tribits changed that uses
Now I have to clean the installation directory before a build and if the build fails then that directory will remain empty until the build is fixed, instead of containing an install from a previously successful build. It's not a huge issue for us because we already have a mechanism in place for other reasons to insure a build is available for analysts, but still, like I said, not ideal. |
…Config.cmake (TriBITSPub#299, TriBITSPub#427) This is one solution to the problem of finding <tplName>Config.cmake files in the CMAKE_INSTALL_PREFIX directory in the middile of a FindTpl<tplName>.cmake module. If you have to write a FindTpl<tplName>.cmake module, you are not expecting/wanting to find a TriBTIS-written <tplName>Config.cmake file. See the comment in TribitsProcessEnabledTpl.cmake for more details. This should fix the bug reported in TriBITSPub#427 where the find_package(HDF5 ...) call in FindTPLHDF5.cmake was finding HDF5Config.cmake in the install tree written by TriBITS in a previous installation. I am not sure this is the best solution to this problem but it has the advantage that we keep the <Package>Config.cmake files for external package and TriBITS package side-by-side. I suspect that I will implement another solution but at least this is a start to writing <tplName>ConfigVersion.cmake files.
…Config.cmake (TriBITSPub#299, TriBITSPub#427) This is one solution to the problem of finding <tplName>Config.cmake files in the CMAKE_INSTALL_PREFIX directory in the middile of a FindTpl<tplName>.cmake module. If you have to write a FindTpl<tplName>.cmake module, you are not expecting/wanting to find a TriBTIS-written <tplName>Config.cmake file. See the comment in TribitsProcessEnabledTpl.cmake for more details. This should fix the bug reported in TriBITSPub#427 where the find_package(HDF5 ...) call in FindTPLHDF5.cmake was finding HDF5Config.cmake in the install tree written by TriBITS in a previous installation. I am not sure this is the best solution to this problem but it has the advantage that we keep the <Package>Config.cmake files for external package and TriBITS package side-by-side. I suspect that I will implement another solution but at least this is a start to writing <tplName>ConfigVersion.cmake files.
I think this did fix our issue on all instances @bartlettroscoe. At least I don't see any failures due to this problem from our regression tests last night. |
@glhenni, FYI, I am going to post a PR that will fix address this issue without having to set |
…Config.cmake (TriBITSPub#299, TriBITSPub#427) This is one solution to the problem of finding <tplName>Config.cmake files in the CMAKE_INSTALL_PREFIX directory in the middile of a FindTpl<tplName>.cmake module. If you have to write a FindTpl<tplName>.cmake module, you are not expecting/wanting to find a TriBTIS-written <tplName>Config.cmake file. See the comment in TribitsProcessEnabledTpl.cmake for more details. This should fix the bug reported in TriBITSPub#427 where the find_package(HDF5 ...) call in FindTPLHDF5.cmake was finding HDF5Config.cmake in the install tree written by TriBITS in a previous installation. I am not sure this is the best solution to this problem but it has the advantage that we keep the <Package>Config.cmake files for external package and TriBITS package side-by-side. I suspect that I will implement another solution but at least this is a start to writing <tplName>ConfigVersion.cmake files.
…riBITSPub#299, TriBITSPub#427) This has two benefits: * It makes a distinction between <Package>Config.cmake files that are unique and created by the CMake project (and are put in <buildDir>/cmake_packages/ on installed under <installDir>/lib/cmake/) and those <tplName>Config.cmake files that are created by TriBITS to create standard targets needed to be used by downstream TriBITS projects. * It avoids find_package() from accidentally finding these TriBITS-generated <tplName>Config.cmake files in all contexts when <buildDir>/cmake_packages and <installDir> are added to CMAKE_PREFIX_PATH. This way, for example, downstream customer raw CMake projects will not accidentally find the TriBITS-generated HDF5Config.cmake when the Trilinos install dir is added to CMAKE_PREFIX_PATH. NOTE: This change is not needed to make the test TribitsExampleProject2_install_config_again pass due to commit: Write out <tplName>ConfigVersion.cmake and disallow finding <tplName>Config.cmake (TriBITSPub#299, TriBITSPub#427) but this makes it even more robust to not find these <tplName>Config.cmake files by accident.
…TriBITSPub#299, TriBITSPub#427) This is the start for adding documentaiton for new <tplName>Config.cmake and <tplName>ConfigVersion.cmake files. It mentions a few issues that I felt were important enough to mention to TriBITS Project Developers and TriBITS Project Users.
…Config.cmake (TriBITSPub#299, TriBITSPub#427) This is one solution to the problem of finding <tplName>Config.cmake files in the CMAKE_INSTALL_PREFIX directory in the middile of a FindTpl<tplName>.cmake module. If you have to write a FindTpl<tplName>.cmake module, you are not expecting/wanting to find a TriBTIS-written <tplName>Config.cmake file. See the comment in TribitsProcessEnabledTpl.cmake for more details. This should fix the bug reported in TriBITSPub#427 where the find_package(HDF5 ...) call in FindTPLHDF5.cmake was finding HDF5Config.cmake in the install tree written by TriBITS in a previous installation. I am not sure this is the best solution to this problem but it has the advantage that we keep the <Package>Config.cmake files for external package and TriBITS package side-by-side. I suspect that I will implement another solution but at least this is a start to writing <tplName>ConfigVersion.cmake files.
…riBITSPub#299, TriBITSPub#427) This has two benefits: * It makes a distinction between <Package>Config.cmake files that are unique and created by the CMake project (and are put in <buildDir>/cmake_packages/ on installed under <installDir>/lib/cmake/) and those <tplName>Config.cmake files that are created by TriBITS to create standard targets needed to be used by downstream TriBITS projects. * It avoids find_package() from accidentally finding these TriBITS-generated <tplName>Config.cmake files in all contexts when <buildDir>/cmake_packages and <installDir> are added to CMAKE_PREFIX_PATH. This way, for example, downstream customer raw CMake projects will not accidentally find the TriBITS-generated HDF5Config.cmake when the Trilinos install dir is added to CMAKE_PREFIX_PATH. NOTE: This change is not needed to make the test TribitsExampleProject2_install_config_again pass due to commit: Write out <tplName>ConfigVersion.cmake and disallow finding <tplName>Config.cmake (TriBITSPub#299, TriBITSPub#427) but this makes it even more robust to not find these <tplName>Config.cmake files by accident.
…TriBITSPub#299, TriBITSPub#427) This is the start for adding documentaiton for new <tplName>Config.cmake and <tplName>ConfigVersion.cmake files. It mentions a few issues that I felt were important enough to mention to TriBITS Project Developers and TriBITS Project Users.
…Config.cmake (TriBITSPub#299, TriBITSPub#427) This is one solution to the problem of finding <tplName>Config.cmake files in the CMAKE_INSTALL_PREFIX directory in the middile of a FindTpl<tplName>.cmake module. If you have to write a FindTpl<tplName>.cmake module, you are not expecting/wanting to find a TriBTIS-written <tplName>Config.cmake file. See the comment in TribitsProcessEnabledTpl.cmake for more details. This should fix the bug reported in TriBITSPub#427 where the find_package(HDF5 ...) call in FindTPLHDF5.cmake was finding HDF5Config.cmake in the install tree written by TriBITS in a previous installation. I am not sure this is the best solution to this problem but it has the advantage that we keep the <Package>Config.cmake files for external package and TriBITS package side-by-side. I suspect that I will implement another solution but at least this is a start to writing <tplName>ConfigVersion.cmake files.
…riBITSPub#299, TriBITSPub#427) This has two benefits: * It makes a distinction between <Package>Config.cmake files that are unique and created by the CMake project (and are put in <buildDir>/cmake_packages/ on installed under <installDir>/lib/cmake/) and those <tplName>Config.cmake files that are created by TriBITS to create standard targets needed to be used by downstream TriBITS projects. * It avoids find_package() from accidentally finding these TriBITS-generated <tplName>Config.cmake files in all contexts when <buildDir>/cmake_packages and <installDir> are added to CMAKE_PREFIX_PATH. This way, for example, downstream customer raw CMake projects will not accidentally find the TriBITS-generated HDF5Config.cmake when the Trilinos install dir is added to CMAKE_PREFIX_PATH. NOTE: This change is not needed to make the test TribitsExampleProject2_install_config_again pass due to commit: Write out <tplName>ConfigVersion.cmake and disallow finding <tplName>Config.cmake (TriBITSPub#299, TriBITSPub#427) but this makes it even more robust to not find these <tplName>Config.cmake files by accident.
…TriBITSPub#299, TriBITSPub#427) This is the start for adding documentaiton for new <tplName>Config.cmake and <tplName>ConfigVersion.cmake files. It mentions a few issues that I felt were important enough to mention to TriBITS Project Developers and TriBITS Project Users.
With the merge of PR #431 and the tests associated with that, I fully expect the problems highlighted in this Issue should be resolved for all customers (without having to set Therefore, I will close this as complete. If a new issue comes up, please post a new GitHub issue. |
I believe something in TriBITs has broken our code. Last night all our tests failed during the configure phase with errors from tribits shown below. We're using cmake 3.19.2
The text was updated successfully, but these errors were encountered: