「view this page in B3 βῆτα server」

Revisions №60618

branch: master 「№60618」
Commited by: Andrew Leaver-Fay
GitHub commit link: 「443610ff4bc39f2b」 「№3792」
Difference from previous tested commit:  code diff
Commit date: 2019-02-11 11:45:47
linux.clang linux.gcc linux.srlz mac.clang
linux.PyRosetta.unit linux.gcc.python36.PyRosetta4.unit mac.PyRosetta.unit build.clean.debug cppcheck mysql postgres linux.zeromq.debug mpi mpi.serialization linux.icc.build.debug OpenCL build.header build.levels ninja graphics static linux.ui mac.ui build.xcode beautification code_quality.clang_analysis serialization integration.mpi integration.release_debug integration.tutorials integration.ubsan integration maintenance.documentation performance profile release.PyRosetta4.Debug linux.clang.python27.release.PyRosetta4.MinSizeRel linux.clang.python35.release.PyRosetta4.MinSizeRel ubuntu.clang.python27.release.PyRosetta4.MinSizeRel ubuntu.clang.python35.release.PyRosetta4.MinSizeRel ubuntu.clang.python36.release.PyRosetta4.MinSizeRel ubuntu.clang.python27.release.PyRosetta4.Release ubuntu.clang.python35.release.PyRosetta4.Release ubuntu.clang.python36.release.PyRosetta4.Release release.source linux.clang.score linux.gcc.score mac.clang.score linux.scripts.pyrosetta scripts.rosetta.parse scripts.rosetta.validate scripts.rosetta.verify unit.addsan linux.clang.unit.release linux.gcc.unit.release unit.ubsan unit.valgrind

Merge pull request #3792 from RosettaCommons/aleaverfay/jd3_fix_archive_crosstalk_deadlock Fix deadlock bug in archive-to-archive communication in JD3 Previously, if archive 1 finished outputting all of its results, the master node could assign it to retrieve a result from archive 2, which was not done outputting all of its results. Archive 1 would then go and send a message to archive 2: an MPI_Send request. Archive 1 would block until archive 2 responded. While it was waiting, output work could get assigned to archive 1. When archive 2 would get back to the master node, the master node would assign it to retrieve the result from archive 1. Then archives 1 and 2 are both sending MPI_Send requests. This is deadlock. MPI_Send requests do not exit until the corresponding MPI_Recv has been called on the remote host. Oops. The solution is simple: do not allow archives to talk to each other until the very end of the simulation when it is possible to guarantee that no work will arrive for Archive 1 while it waits to hear from Archive 2.

Test: linux.clang.integration.tutorials

Failed sub-tests (click for more details):
Test: ubuntu.gcc.integration.ubsan

Failed sub-tests (click for more details):