Fix thread bug in Wasatch (happens when SpatialOps is compiled with ENABLE_THREADS=ON)
When SpatialOps is compiled with ENABLE_THREADS=ON
, Wasatch local regression tests fail and/or crash, sometimes. I have observed three types types of failures:
Exception is thrown, claiming some block of memory has been freed twice (double free). This exception has appeared in the following tests (not an exhaustive list):
- turb-lid-driven-cavity-3D-WALE
- turb-lid-driven-cavity-3D-SMAGPRINSKY
- turb-lid-driven-cavity-3D-VREMAN
- turb-lid-driven-cavity-3D-scalar
- coal-boiler-mini
- intrusion_flow_past_cylinder_xz
- intrusion_flow_past_cylinder_xy
- turbulent-inlet-test-xminus
- intrusion_flow_past_objects_xy
- intrusion_flow_past_oscillating_cylinder_xy
- intrusion_flow_past_cylinder_yz
- channel-flow-xy-xplus-pressure-outlet
- intrusion_flow_over_icse
- turbulent-flow-over-cavity
- channel-flow-zy-yplus-pressure-outlet
- channel-flow-yz-yminus-pressure-outlet
- lid-driven-cavity-3D-Re1000
- channel-flow-xy-xminus-pressure-outlet
- lid-driven-cavity-3D-Re1000-rk2
- channel-flow-zx-zplus-pressure-outlet
- channel-flow-symmetry-bc
- liddrivencavity3DRe1000rk3 (sic)
- lid-driven-cavity-xy-Re1000
- lid-driven-cavity-yz-Re1000
- hydrostatic-pressure-test
- lid-driven-cavity-xz-Re1000
- channel-flow-xz-zminus-pressure-outlet
- reduction-test
- lid-drive-cavity-xy-Re1000-adaptive (sic)
- convection-test-svol-ydir-bc
- convection-test-svol-zdir-bc
- bc-parabolic-inlet-channel-flow-test
- bc-linear-inlet-channel-flow-test
- bc-test-svol-zdir
Test hangs (test that usually takes
❤ seconds takes longer than a minute). This behavior has appeared in the following tests: - varden-projection-mms
- varden-projection-xdir
- varden-projection-ydir
- varden-projection-zdir
- varden-projection-xdir-analytic-dens
- qmom-aggregation-test
- Test fails within testing framework with error code 3384. I do not know what this error code means. This behavior has appeared in the following tests:
- bc-test-svol-xdir
- bc-test-svol-ydir
- convection-test-svol-xdir-bc
Do not take these lists as exhaustive. Since these behaviors generally seem intermittent (I think the test hanging was consistent, but I do not remember at the moment), it is hard to tell exactly what is going on. Also, once a test failed in any way, I removed it from the list of tests I was running. In theory, a test could fail in multiple ways, but I have not seen that behavior.