core: more detailed metering for reorgs (#21420)
This commit is contained in:
		
							parent
							
								
									7ebc6c43ff
								
							
						
					
					
						commit
						0bdd295cc0
					
				| @ -70,8 +70,11 @@ var ( | ||||
| 	blockValidationTimer = metrics.NewRegisteredTimer("chain/validation", nil) | ||||
| 	blockExecutionTimer  = metrics.NewRegisteredTimer("chain/execution", nil) | ||||
| 	blockWriteTimer      = metrics.NewRegisteredTimer("chain/write", nil) | ||||
| 	blockReorgAddMeter   = metrics.NewRegisteredMeter("chain/reorg/drop", nil) | ||||
| 	blockReorgDropMeter  = metrics.NewRegisteredMeter("chain/reorg/add", nil) | ||||
| 
 | ||||
| 	blockReorgMeter         = metrics.NewRegisteredMeter("chain/reorg/executes", nil) | ||||
| 	blockReorgAddMeter      = metrics.NewRegisteredMeter("chain/reorg/add", nil) | ||||
| 	blockReorgDropMeter     = metrics.NewRegisteredMeter("chain/reorg/drop", nil) | ||||
| 	blockReorgInvalidatedTx = metrics.NewRegisteredMeter("chain/reorg/invalidTx", nil) | ||||
| 
 | ||||
| 	blockPrefetchExecuteTimer   = metrics.NewRegisteredTimer("chain/prefetch/executes", nil) | ||||
| 	blockPrefetchInterruptMeter = metrics.NewRegisteredMeter("chain/prefetch/interrupts", nil) | ||||
| @ -2152,6 +2155,7 @@ func (bc *BlockChain) reorg(oldBlock, newBlock *types.Block) error { | ||||
| 			"drop", len(oldChain), "dropfrom", oldChain[0].Hash(), "add", len(newChain), "addfrom", newChain[0].Hash()) | ||||
| 		blockReorgAddMeter.Mark(int64(len(newChain))) | ||||
| 		blockReorgDropMeter.Mark(int64(len(oldChain))) | ||||
| 		blockReorgMeter.Mark(1) | ||||
| 	} else { | ||||
| 		log.Error("Impossible reorg, please file an issue", "oldnum", oldBlock.Number(), "oldhash", oldBlock.Hash(), "newnum", newBlock.Number(), "newhash", newBlock.Hash()) | ||||
| 	} | ||||
|  | ||||
| @ -1422,6 +1422,8 @@ func (pool *TxPool) demoteUnexecutables() { | ||||
| 				pool.enqueueTx(hash, tx) | ||||
| 			} | ||||
| 			pendingGauge.Dec(int64(len(gapped))) | ||||
| 			// This might happen in a reorg, so log it to the metering
 | ||||
| 			blockReorgInvalidatedTx.Mark(int64(len(gapped))) | ||||
| 		} | ||||
| 		// Delete the entire pending entry if it became empty.
 | ||||
| 		if list.Empty() { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user