multi-world communication can hang due to warnComm
Summary
Some multi-world cases can hang with stacktraces:
[solid/6] #0 Foam::error::printStack(Foam::Ostream&) at ??:?
[solid/6] #1 Foam::UIPstream::read(Foam::UPstream::commsTypes, int, char*, long, int, int) at ??:?
[solid/6] #2 void Foam::syncTools::syncBoundaryFaceList<Foam::Vector<double>, Foam::eqOp<Foam::Vector<double> >, Foam::mapDistribute::transformPosition>(Foam::polyMesh const&, Foam::UList<Foam::Vector<double> >&, Foam::eqOp<Foam::Vector<double> > const&, Foam::mapDistribute::transformPosition const&, bool) at ??:?
[solid/6] #3 Foam::polyMeshTetDecomposition::findFaceBasePts(Foam::polyMesh const&, double, bool) at ??:?
[solid/6] #4 Foam::polyMesh::tetBasePtIs() const at ??:?
[solid/6] #5 Foam::mappedPatchBase::facePoints(Foam::polyPatch const&) const at ??:?
[solid/6] #6 Foam::mappedPatchBase::calcMapping() const at ??:?
[solid/6] #7 Foam::mappedPatchBase::map() const at ??:?
[solid/6] #8 void Foam::mappedPatchBase::distribute<double>(Foam::List<double>&) const at ??:?
[solid/6] #9 Foam::compressible::turbulentTemperatureRadCoupledMixedFvPatchScalarField::updateCoeffs() at ??:?
[solid/6] #10 Foam::mixedFvPatchField<double>::evaluate(Foam::UPstream::commsTypes) at ??:?
[solid/6] #11 Foam::mixedEnergyFvPatchScalarField::updateCoeffs() at ??:?
[solid/6] #12 Foam::fvMatrix<double>::fvMatrix(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::dimensionSet const&) at ??:?
[solid/6] #13 Foam::tmp<Foam::fvMatrix<double> > Foam::fv::optionList::operator()<double>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::word c
Steps to reproduce
No case yet.
What is the current bug behaviour?
Printing backtrace due to warnComm being set but worldComm not yet switched over.
What is the expected correct behavior?
No backtrace, no hanging
Relevant logs and/or images
See above
Environment information
- OpenFOAM version : v2206