Testing preCICE installation on macOS

My system:

  • preCICE version: 2.1.0
  • Operating system or platform: macOS Catalina 10.15.5
  • Installation method: building with CMake
  • Dependency versions (especially compiler, Boost, PETSc, MPI) and if other versions are present:
    Boost: 1.73.0
    PETSc: 3.13.4
    open-mpi: 4.0.4_1

I followed the main steps here.
In make test_base, 24/27 tests failed. Most tests failed with this message

test 2
      Start  2: precice.action

2: Test command: /usr/local/bin/mpiexec "-n" "4" "/Users/siqiwei/precice-2.1.0/build/testprecice" "--run_test=ActionTests"
2: Environment variables:
2:  PRECICE_ROOT=/Users/siqiwei/precice-2.1.0
2:  OMPI_MCA_rmaps_base_oversubscribe=1
2: Test timeout computed to be: 20
2: This test suite runs on rank 2 of 4
2: This test suite runs on rank 3 of 4
2: This test suite runs on rank 0 of 4
2: This test suite runs on rank 1 of 4
2: Test setup error: boost::runtime::arg_type_mismatch: Access with invalid type for argument corresponding to parameter log_level
2: Test setup error: boost::runtime::arg_type_mismatch: Access with invalid type for argument corresponding to parameter log_level
2: Test setup error: boost::runtime::arg_type_mismatch: Access with invalid type for argument corresponding to parameter log_level
2: Test setup error: boost::runtime::arg_type_mismatch: Access with invalid type for argument corresponding to parameter log_level
2: --------------------------------------------------------------------------
2: Primary job  terminated normally, but 1 process returned
2: a non-zero exit code. Per user-direction, the job has been aborted.
2: --------------------------------------------------------------------------
2: --------------------------------------------------------------------------
2: mpiexec detected that one or more processes exited with non-zero status, thus causing
2: the job to be terminated. The first process to do so was:
2:
2:   Process name: [[58881,1],0]
2:   Exit code:    200
2: --------------------------------------------------------------------------
 2/27 Test  #2: precice.action ............................***Failed    2.25 sec

tests 22-27 are timeout with errors like:

test 25
Start 25: precice.solverdummy.run.cpp-c

25: Test command: /usr/local/Cellar/cmake/3.18.1/bin/cmake "-D" "WRAPPER=/Users/siqiwei/precice-2.1.0/cmake/runsolverdummies.sh" "-D" "DUMMY_A=/Users/siqiwei/precice-2.1.0/build/Solverdummies/cpp/solverdummy" "-D" "DUMMY_B=/Users/siqiwei/precice-2.1.0/build/Solverdummies/c/solverdummy" "-D" "DUMMY_RUN_DIR=/Users/siqiwei/precice-2.1.0/build/TestOutput/solverdummy.run.cpp-c" "-D" "DUMMY_CONFIG=/Users/siqiwei/precice-2.1.0/examples/solverdummies/precice-config.xml" "-P" "/Users/siqiwei/precice-2.1.0/cmake/runsolverdummies.cmake"
25: Test timeout computed to be: 60
25: DUMMY: Running solver dummy with preCICE config file "/Users/siqiwei/precice-2.1.0/examples/solverdummies/precice-config.xml", participant name "SolverTwo", and mesh name "MeshTwo".
25: preCICE: This is preCICE version 2.1.0
25: DUMMY: Running solver dummy with preCICE config file "/Users/siqiwei/precice-2.1.0/examples/solverdummies/precice-config.xml", participant name "SolverOne", and mesh name "MeshOne".
25: preCICE: This is preCICE version 2.1.0
25: preCICE: Revision info: no-info [Git failed/Not a repository]
25: preCICE: Revision info: no-info [Git failed/Not a repository]
25: preCICE: Configuring preCICE with configuration "/Users/siqiwei/precice-2.1.0/examples/solverdummies/precice-config.xml"
25: preCICE: Configuring preCICE with configuration "/Users/siqiwei/precice-2.1.0/examples/solverdummies/precice-config.xml"
25: preCICE: I am participant "SolverTwo"
25: preCICE: I am participant "SolverOne"
25: preCICE: Setting up master communication to coupling partner/s
25: preCICE: Setting up master communication to coupling partner/s
25: preCICE: Masters are connected
25: preCICE: Setting up preliminary slaves communication to coupling partner/s
25: preCICE: Prepare partition for mesh MeshOne
25: preCICE: Masters are connected
25: preCICE: Gather mesh MeshOne
25: preCICE: Setting up preliminary slaves communication to coupling partner/s
25: preCICE: Receive global mesh MeshOne
25: preCICE: Send global mesh MeshOne
25: preCICE: Setting up slaves communication to coupling partner/s
25: preCICE: Prepare partition for mesh MeshTwo
25: preCICE: Setting up slaves communication to coupling partner/s
25: libc++abi.dylib: terminating with uncaught exception of type boost::wrapexcept<boost::system::system_error>: shutdown: Socket is not connected
25: [Vicky-Weis-Macbook-Pro-2020:95741] *** Process received signal ***
25: [Vicky-Weis-Macbook-Pro-2020:95741] Signal: Abort trap: 6 (6)
25: [Vicky-Weis-Macbook-Pro-2020:95741] Signal code:  (0)
25: [Vicky-Weis-Macbook-Pro-2020:95741] [ 0] 0   libsystem_platform.dylib            0x00007fff6a3065fd _sigtramp + 29
25: [Vicky-Weis-Macbook-Pro-2020:95741] [ 1] 0   ???                                 0x0000000000000400 0x0 + 1024
25: [Vicky-Weis-Macbook-Pro-2020:95741] [ 2] 0   libsystem_c.dylib                   0x00007fff6a1dc808 abort + 120
25: [Vicky-Weis-Macbook-Pro-2020:95741] [ 3] 0   libc++abi.dylib                     0x00007fff6743c458 abort_message + 231
25: [Vicky-Weis-Macbook-Pro-2020:95741] [ 4] 0   libc++abi.dylib                     0x00007fff6742d8a7 _ZL28demangling_terminate_handlerv + 238
25: [Vicky-Weis-Macbook-Pro-2020:95741] [ 5] 0   libobjc.A.dylib                     0x00007fff68f685b1 _ZL15_objc_terminatev + 104
25: [Vicky-Weis-Macbook-Pro-2020:95741] [ 6] 0   libc++abi.dylib                     0x00007fff6743b887 _ZSt11__terminatePFvvE + 8
25: [Vicky-Weis-Macbook-Pro-2020:95741] [ 7] 0   libc++abi.dylib                     0x00007fff6743b829 _ZSt9terminatev + 41
25: [Vicky-Weis-Macbook-Pro-2020:95741] [ 8] 0   libprecice.2.1.0.dylib              0x000000010285b5b5 _ZN7precice3com19SocketCommunicationD1Ev + 21
25: [Vicky-Weis-Macbook-Pro-2020:95741] [ 9] 0   libprecice.2.1.0.dylib              0x00000001028b4136 _ZNSt3__120__shared_ptr_emplaceIN7precice3com19SocketCommunicationENS_9allocatorIS3_EEE16__on_zero_sharedEv + 38
25: [Vicky-Weis-Macbook-Pro-2020:95741] [10] 0   libprecice.2.1.0.dylib              0x000000010267550d _ZNSt3__114__shared_count16__release_sharedEv + 61
25: [Vicky-Weis-Macbook-Pro-2020:95741] [11] 0   libprecice.2.1.0.dylib              0x00000001026754af _ZNSt3__119__shared_weak_count16__release_sharedEv + 31
25: [Vicky-Weis-Macbook-Pro-2020:95741] [12] 0   libprecice.2.1.0.dylib              0x000000010267547c _ZNSt3__110shared_ptrIN7precice12acceleration4impl14PreconditionerEED2Ev + 44
25: [Vicky-Weis-Macbook-Pro-2020:95741] [13] 0   libprecice.2.1.0.dylib              0x0000000102675445 _ZNSt3__110shared_ptrIN7precice12acceleration4impl14PreconditionerEED1Ev + 21
25: [Vicky-Weis-Macbook-Pro-2020:95741] [14] 0   libprecice.2.1.0.dylib              0x00000001029f232c _ZN7precice3m2n25PointToPointCommunication16acceptConnectionERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_ + 1884
25: [Vicky-Weis-Macbook-Pro-2020:95741] [15] 0   libprecice.2.1.0.dylib              0x00000001029e29e5 _ZN7precice3m2n3M2N22acceptSlavesConnectionERKNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESA_ + 1365
25: [Vicky-Weis-Macbook-Pro-2020:95741] [16] 0   libprecice.2.1.0.dylib              0x00000001029d3960 _ZN7precice3m2n8BoundM2N13connectSlavesEv + 752
25: [Vicky-Weis-Macbook-Pro-2020:95741] [17] 0   libprecice.2.1.0.dylib              0x0000000102d4164a _ZN7precice4impl19SolverInterfaceImpl10initializeEv + 3226
25: [Vicky-Weis-Macbook-Pro-2020:95741] [18] 0   libprecice.2.1.0.dylib              0x0000000102ced5cd _ZN7precice15SolverInterface10initializeEv + 29
25: [Vicky-Weis-Macbook-Pro-2020:95741] [19] 0   libprecice.2.1.0.dylib              0x0000000102e7f1c7 precicec_initialize + 167
25: [Vicky-Weis-Macbook-Pro-2020:95741] [20] 0   solverdummy                         0x0000000102660a86 main + 806
25: [Vicky-Weis-Macbook-Pro-2020:95741] [21] 0   libdyld.dylib                       0x00007fff6a10dcc9 start + 1
25: [Vicky-Weis-Macbook-Pro-2020:95741] *** End of error message ***
25: /Users/siqiwei/precice-2.1.0/cmake/runsolverdummies.sh: line 9: 95741 Abort trap: 6           $2 $3 SolverTwo MeshTwo

CTestCostData.txt (1.2 KB) LastTest.log (70.0 KB) LastTestsFailed.log (541 Bytes)

Thank you very much!!

This is again useful feedback, as we currently don’t have almost any users on macOS. Please open two issues for these errors.

Even though four tests are failing, the problems are two:

  1. The action tests fail
  2. The solverdummy tests fail

As workarounds for now:

  • The first one you can ignore if you don’t need actions.
  • The second one is probably using the wrong network interface, which is different on macOS (see more details). You can quickly test this yourself:
    • Go to the examples/solverdummies/cpp directory
    • Configure: cmake .
    • Build: make
    • Run in one terminal: ./solverdummy ../precice-config.xml SolverOne MeshOne
    • Run in another terminal: ./solverdummy ../precice-config.xml SolverTwo MeshTwo

If you still get the same error, edit the ../precice-config.xml as follows:

- <m2n:sockets from="SolverOne" to="SolverTwo"/>
+ <m2n:sockets from="SolverOne" to="SolverTwo" network="lo0" />

This should be fixed in v2.1.0, please let us know if you still need this patch.

@VickyWei did you manage to solve these issues (if yes, how)?