From 2bf3b843ed2f396d7c42b626b9e90dba598ded35 Mon Sep 17 00:00:00 2001 From: Eduard S Date: Tue, 9 Feb 2021 17:11:21 +0100 Subject: [PATCH] Fix l2db reorg of forging l2txs --- coordinator/coordinator.go | 6 +++--- db/l2db/l2db.go | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/coordinator/coordinator.go b/coordinator/coordinator.go index 5843c94..ee6caf9 100644 --- a/coordinator/coordinator.go +++ b/coordinator/coordinator.go @@ -348,13 +348,13 @@ func (c *Coordinator) handleReorg(ctx context.Context, msg *MsgSyncReorg) error } func (c *Coordinator) handleStopPipeline(ctx context.Context, reason string) error { - if err := c.l2DB.Reorg(common.BatchNum(c.stats.Sync.LastBatch)); err != nil { - return tracerr.Wrap(err) - } if c.pipeline != nil { c.pipeline.Stop(c.ctx) c.pipeline = nil } + if err := c.l2DB.Reorg(common.BatchNum(c.stats.Sync.LastBatch)); err != nil { + return tracerr.Wrap(err) + } if strings.Contains(reason, common.AuctionErrMsgCannotForge) { //nolint:staticcheck // TODO: Check that we are in a slot in which we can't forge } diff --git a/db/l2db/l2db.go b/db/l2db/l2db.go index 0cd90df..44e43c4 100644 --- a/db/l2db/l2db.go +++ b/db/l2db/l2db.go @@ -346,9 +346,10 @@ func (l2db *L2DB) InvalidateOldNonces(updatedAccounts []common.IdxNonce, batchNu // The state of the affected txs can change form Forged -> Pending or from Invalid -> Pending func (l2db *L2DB) Reorg(lastValidBatch common.BatchNum) error { _, err := l2db.db.Exec( - `UPDATE tx_pool SET batch_num = NULL, state = $1 - WHERE (state = $2 OR state = $3) AND batch_num > $4`, + `UPDATE tx_pool SET batch_num = NULL, state = $1 + WHERE (state = $2 OR state = $3 OR state = $4) AND batch_num > $5`, common.PoolL2TxStatePending, + common.PoolL2TxStateForging, common.PoolL2TxStateForged, common.PoolL2TxStateInvalid, lastValidBatch,