multiple YaspGrid tests use same temporary file
Dune::BackupRestoreFacility<Grid>::backup(*grid, "backup"); // avoid that processes that having nothing to backup try to restore // a grid that has not been backuped yet. grid->comm().barrier(); Grid* restored = Dune::BackupRestoreFacility<Grid>::restore("backup");
The same file "backup" is used by all YaspGrid backup/restore tests. This is a race condition that can result in tests randomly failing. For example, I just got
50/67 Test #52: test-yaspgrid-backuprestore-tensor ....................***Failed 0.21 sec using tensorproduct coordinate container! Dune::Exception [loadbalance:../dune/grid/yaspgrid/partitioning.hh:128]: Your processor number doesn't match your partitioning information
67/67 Test #53: test-yaspgrid-backuprestore-tensor-mpi-2 ..............***Timeout 666.01 sec using tensorproduct coordinate container! using tensorproduct coordinate container! Dune::GridError [YaspGrid:../dune/grid/yaspgrid.hh:1004]: Setup of a tensorproduct grid requires monotonous sequences of coordinates.
on one run, but the failure did not happen again during a second run.