Skip to content

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

Possible fixes