boutproject / BOUT-dev

BOUT++: Plasma fluid finite-difference simulation code in curvilinear coordinate systems
http://boutproject.github.io/
GNU Lesser General Public License v3.0
179 stars 93 forks source link

Problem with tests/serial_tests #2908

Closed carrommad closed 2 months ago

carrommad commented 2 months ago

Hello, While running BOUT's serial tests in MN5 I got the following errors:

[----------] Global test environment tear-down
[==========] 2111 tests from 140 test suites ran. (20494 ms total)
[  PASSED  ] 2102 tests.
[  FAILED  ] 9 tests, listed below:
[  FAILED  ] SignalHandlerTestDeathTest.SegFault
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3D/0, where GetParam() = (false, false, false, false)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3D/1, where GetParam() = (false, false, false, true)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3D/2, where GetParam() = (false, false, true, false)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3D/3, where GetParam() = (false, true, false, false)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3DGuess/0, where GetParam() = (false, false, false, false)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3DGuess/1, where GetParam() = (false, false, false, true)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3DGuess/2, where GetParam() = (false, false, true, false)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3DGuess/3, where GetParam() = (false, true, false, false)

 9 FAILED TESTS
srun: error: glogin3: task 0: Exited with exit code 1
srun: Terminating StepId=1114125.0
[bsc021058@glogin3 unit]$ cd -
/gpfs/projects/bsc21/bsc021058/build_bout

Does anyone have an idea of what might be the problem? I am logged into the glogin4 of MN5 with the following loaded modules:

Currently Loaded Modules:
  1) git/2.43.0     3) impi/2021.10.0   5) pnetcdf/1.12.3      7) fftw/3.3.10    9) anaconda/2023.07  11) intel/2023.2.0   13) bsc/1.0
  2) cmake/3.25.1   4) hdf5/1.14.1-2    6) netcdf/2023-06-14   8) mkl/2023.2.0  10) petsc/3.18.0      12) oneapi/2023.2.0
ZedThree commented 2 months ago

Thanks for the bug report @carrommad! What version/branch of BOUT++ are you using? Could you post the failure message for the tests? You can rerun just the failed tests with:

./serial_tests --gtest_filter=LaplacePetsc3dAmgTest/Petsc3dAmgTest.*

PETSc has a habit of changing default values for their solver parameters, so it's possible our tests don't converge as fast as expected, for instance, or the tolerance is too tight. This looks similar to the issue that was fixed in #2704, which should be in BOUT++ 5.1.0.

dschwoerer commented 2 months ago

This is this branch: https://github.com/dschwoerer/BOUT-dev/tree/db-outer

So, indeed, those patches have not been added.

The change should only affect the unit tests, as far as I can see, so this should have no impact on the physics model.

carrommad commented 2 months ago

Hi Peter,

Most precisely, I run in MN5 GPP cluster the following:

mpiexec ./serial_tests --gtest_filter=LaplacePetsc3dAmgTest/Petsc3dAmgTest.*

I copy here only the last part of the output of the command you proposed. In case it is of any help, see full output attached serial-tests_execution_peter.txt.

[----------] Global test environment tear-down
[==========] 90 tests from 1 test suite ran. (6194 ms total)
[  PASSED  ] 82 tests.
[  FAILED  ] 8 tests, listed below:
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3D/0, where GetParam() = (false, false, false, false)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3D/1, where GetParam() = (false, false, false, true)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3D/2, where GetParam() = (false, false, true, false)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3D/3, where GetParam() = (false, true, false, false)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3DGuess/0, where GetParam() = (false, false, false, false)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3DGuess/1, where GetParam() = (false, false, false, true)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3DGuess/2, where GetParam() = (false, false, true, false)
[  FAILED  ] LaplacePetsc3dAmgTest/Petsc3dAmgTest.TestSolve3DGuess/3, where GetParam() = (false, true, false, false)
ZedThree commented 2 months ago

Thanks @carrommad. This is a known issue fixed in the latest versions, and as @dschwoerer says should only be a very minor issue for physics models. I'll close this issue now