From ed105e386c36285aaf6557a757c1915f2ffaa9ff Mon Sep 17 00:00:00 2001 From: Andrew Gouin Date: Fri, 23 Sep 2022 13:57:15 -0600 Subject: [PATCH] Merge PR #1005: Fix legacy race condition --- relayer/naive-strategy.go | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/relayer/naive-strategy.go b/relayer/naive-strategy.go index 75fa2921a..4bb20a4bb 100644 --- a/relayer/naive-strategy.go +++ b/relayer/naive-strategy.go @@ -476,24 +476,18 @@ func RelayPackets(ctx context.Context, log *zap.Logger, src, dst *Chain, sp Rela return err } - // set the maximum relay transaction constraints - msgs := &RelayMsgs{ - Src: []provider.RelayerMessage{}, - Dst: []provider.RelayerMessage{}, - MaxTxSize: maxTxSize, - MaxMsgLength: maxMsgLength, - } - eg, egCtx := errgroup.WithContext(ctx) // add messages for sequences on src + var msgsSrc1, msgsDst1 []provider.RelayerMessage eg.Go(func() error { - return AddMessagesForSequences(egCtx, sp.Src, src, dst, srch, dsth, &msgs.Src, &msgs.Dst, + return AddMessagesForSequences(egCtx, sp.Src, src, dst, srch, dsth, &msgsSrc1, &msgsDst1, srcChannel.ChannelId, srcChannel.PortId, srcChannel.Counterparty.ChannelId, srcChannel.Counterparty.PortId, srcChannel.Ordering) }) + var msgsSrc2, msgsDst2 []provider.RelayerMessage // add messages for sequences on dst eg.Go(func() error { - return AddMessagesForSequences(egCtx, sp.Dst, dst, src, dsth, srch, &msgs.Dst, &msgs.Src, + return AddMessagesForSequences(egCtx, sp.Dst, dst, src, dsth, srch, &msgsDst2, &msgsSrc2, srcChannel.Counterparty.ChannelId, srcChannel.Counterparty.PortId, srcChannel.ChannelId, srcChannel.PortId, srcChannel.Ordering) }) @@ -501,6 +495,14 @@ func RelayPackets(ctx context.Context, log *zap.Logger, src, dst *Chain, sp Rela return err } + // set the maximum relay transaction constraints + msgs := &RelayMsgs{ + Src: append(msgsSrc1, msgsSrc2...), + Dst: append(msgsDst1, msgsDst2...), + MaxTxSize: maxTxSize, + MaxMsgLength: maxMsgLength, + } + if !msgs.Ready() { log.Info( "No packets to relay",