diff --git a/packages/binary/messagelayer/tangle/tangle.go b/packages/binary/messagelayer/tangle/tangle.go index 240935094518e00300173b0535636634ecb3cb82..d6d844c03eb2432f3dcb2349c68e14e0ae62e478 100644 --- a/packages/binary/messagelayer/tangle/tangle.go +++ b/packages/binary/messagelayer/tangle/tangle.go @@ -218,7 +218,10 @@ func (tangle *Tangle) isMessageSolid(msg *message.Message, msgMetadata *MessageM return true } - return tangle.isMessageMarkedAsSolid(msg.TrunkId()) && tangle.isMessageMarkedAsSolid(msg.BranchId()) + // as missing messages are requested in isMessageMarkedAsSolid, we want to prevent short-circuit evaluation + trunkSolid := tangle.isMessageMarkedAsSolid(msg.TrunkId()) + branchSolid := tangle.isMessageMarkedAsSolid(msg.BranchId()) + return trunkSolid && branchSolid } // builds up a stack from the given message and tries to solidify into the present.