Browse Source

Fix l2db reorg of forging l2txs

feature/float40
Eduard S 3 years ago
parent
commit
2bf3b843ed
2 changed files with 6 additions and 5 deletions
  1. +3
    -3
      coordinator/coordinator.go
  2. +3
    -2
      db/l2db/l2db.go

+ 3
- 3
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 { 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 { if c.pipeline != nil {
c.pipeline.Stop(c.ctx) c.pipeline.Stop(c.ctx)
c.pipeline = nil 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 if strings.Contains(reason, common.AuctionErrMsgCannotForge) { //nolint:staticcheck
// TODO: Check that we are in a slot in which we can't forge // TODO: Check that we are in a slot in which we can't forge
} }

+ 3
- 2
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 // The state of the affected txs can change form Forged -> Pending or from Invalid -> Pending
func (l2db *L2DB) Reorg(lastValidBatch common.BatchNum) error { func (l2db *L2DB) Reorg(lastValidBatch common.BatchNum) error {
_, err := l2db.db.Exec( _, 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.PoolL2TxStatePending,
common.PoolL2TxStateForging,
common.PoolL2TxStateForged, common.PoolL2TxStateForged,
common.PoolL2TxStateInvalid, common.PoolL2TxStateInvalid,
lastValidBatch, lastValidBatch,

Loading…
Cancel
Save