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

Superlu master (post 6.0.0) breaks PETSc #101

Closed
gruenich opened this issue Jun 8, 2023 · 16 comments · Fixed by #102
Closed

Superlu master (post 6.0.0) breaks PETSc #101

gruenich opened this issue Jun 8, 2023 · 16 comments · Fixed by #102

Comments

@gruenich
Copy link
Contributor

gruenich commented Jun 8, 2023

Either #99 or #98 broke configuration in PETSc, see, e.g., https://gitlab.com/petsc/petsc/-/jobs/4430894576.

@xiaoyeli @prj- I moved this to an issues of it own. Let us continue here with the discussion.

@gruenich
Copy link
Contributor Author

gruenich commented Jun 8, 2023

I am not sure whether this was really caused by #98 or #99, as Doxygen seems to have a problem.

From the configure.log:

CMake Error at /nfs/gce/globalscratch/svcpetsc/petsc-hash-pkgs/7820d1/share/cmake-3.26/Modules/FindDoxygen.cmake:734 (message):

and

CMake Warning at /nfs/gce/globalscratch/svcpetsc/petsc-hash-pkgs/7820d1/share/cmake-3.26/Modules/FindDoxygen.cmake:492 (message): Unable to determine doxygen version: 1 Call Stack (most recent call first): /nfs/gce/globalscratch/svcpetsc/petsc-hash-pkgs/7820d1/share/cmake-3.26/Modules/FindDoxygen.cmake:655 (_Doxygen_find_doxygen) DOC/CMakeLists.txt:3 (find_package) /usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version GLIBCXX_3.4.29' not found (required by /usr/bin/doxygen)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version CXXABI_1.3.13' not found (required by /usr/bin/doxygen) /usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libclang-14.so.13)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libclang-cpp.so.14) /usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libclang-cpp.so.14)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version CXXABI_1.3.13' not found (required by /lib/x86_64-linux-gnu/libclang-cpp.so.14) /usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version CXXABI_1.3.13' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version GLIBCXX_3.4.26' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1) /usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)

Looks like an issue with Doxygen in the runner.

@prj- Can you please do the following to help narrowing down the problem:

  1. Can you pass to SuperLU's CMake call this option: -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE. This prevents CMake from running Doxygen.
  2. Can you Git bisect the SuperLU commit triggering your problem?

@prj-
Copy link
Contributor

prj- commented Jun 8, 2023

Still not OK with -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE, cf. https://gitlab.com/petsc/petsc/-/jobs/4435286701.

@gruenich
Copy link
Contributor Author

gruenich commented Jun 8, 2023

Thanks for the feedback! Disabling Doxygen triggered in issue that I fixed in the updated #102. The call to doxygen_add_docs is only allowed when Doxygen has been found. Now it should work for you with -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE.

@xiaoyeli
Copy link
Owner

@prj- #102 should have fixed the problem. Please check.

@prj-
Copy link
Contributor

prj- commented Sep 17, 2023

@gruenich and/or @xiaoyeli, this issue is still not fixed, you can look at https://gitlab.com/petsc/petsc/-/jobs/5105845302. This makes the latest SuperLU still unusable in PETSc. There is a release scheduled later this month, could you please try to fix this rather sooner than later? Why are you even looking for Doxygen in the first place if documentation is disabled?

@prj-
Copy link
Contributor

prj- commented Sep 17, 2023

-DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE does the trick though, but I'm not sure why it's needed.

@xiaoyeli
Copy link
Owner

@gruenich
By default, can we disable doxygen generation? Users can generate doc by hand, not in each build.
If you set a PR, I will merge it.
Thhanks.

@gruenich
Copy link
Contributor Author

Sorry to hear that you still have a bad experience using SuperLU! But it is your Doxygen binary, that is broken. I quote from the configure.log that was created from the linked build:

/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /usr/bin/doxygen)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /usr/bin/doxygen)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libclang-14.so.13)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libclang-cpp.so.14)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libclang-cpp.so.14)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /lib/x86_64-linux-gnu/libclang-cpp.so.14)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `CXXABI_1.3.13' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)
/usr/bin/doxygen: /nfs/gce/software/custom/linux-ubuntu22.04-x86_64/spack/opt/spack/linux-ubuntu22.04-x86_64/gcc-11.2.0/gcc-8.5.0-zpsjiod/lib64/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-14.so.1)

Please fix your CI runner to get a working Doxygen installed (or do explicitly remove the broken Doxygen).

To clarify, SuperLU does not automatically build the documentation with Doxygen. But it does check for Doxygen and prepare everything for the manual command. During the check Doxygen is called, this fails miserably on your system. You disable this check by passing -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE, makes perfectly sense.

@prj-
Copy link
Contributor

prj- commented Sep 17, 2023

So, you think this is the proper behavior to not be able to build SuperLU, when a non-required package cannot be found or does not work correctly?

@xiaoyeli
Copy link
Owner

I view Doxygen is "external" to SuperLU. So we don't have control whether the users have doxygen or have a broken doxygen. I think the default behavior is NOT to check doxygen.

@prj-
Copy link
Contributor

prj- commented Sep 17, 2023

Exactly.. why can't I build SuperLU with a broken Doxygen if I don't care about the documentation?

Sure, thanks to your help, I now know about the ninja flag -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE, and I've enforced it in PETSc. But we really shouldn't have to set this since we don't build the documentation (and users who build SuperLU outside of PETSc may very well run into the same issue, is the flag documented somewhere? I'm guessing this is an automatic variable generated by CMake).

@xiaoyeli
Copy link
Owner

@prj-
I added this guard in CMakeLists.txt:

if (enable_doc)
add_subdirectory(DOC)
endif

By default, enable_doc==OFF

Can you try the master branch now?

@prj-
Copy link
Contributor

prj- commented Sep 19, 2023

Here is the corresponding PETSc pipeline: https://gitlab.com/petsc/petsc/-/pipelines/1009190500.

@gruenich
Copy link
Contributor Author

gruenich commented Sep 19, 2023

@xiaoyeli You are breaking make doc with your change. This will badly affect much more people compared to users with broken Doxygen. This issue must be fixed within CMake. Yesterday, I created a prototype patch. I hope to make a pull request later today. Please give me a couple of days more time to proceed.

@prj- You have to install libstdc++ in the right version to fix you Doxygen. Can you please give this a try?

@prj-
Copy link
Contributor

prj- commented Sep 19, 2023

@gruenich, no, I don't have admin rights to that machine. Again, I do not want to fix Doxygen, because I know some other users will have broken Doxygen. I don't see how Sherry's patch will break make doc for users who don't set -Denable_doc=ON.

This will badly affect much more people

Do you have some metrics on the number of SuperLU users who do make doc?

@gruenich
Copy link
Contributor Author

I created a patch for CMake, see https://gitlab.kitware.com/cmake/cmake/-/merge_requests/8815. Let's see how far we get there.

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 a pull request may close this issue.

3 participants