Merge pull request #1865 from obscuren/deadlock-chainmanager-fix
core: deadlock in chainmanager after posting RemovedTransactionEvent
This commit is contained in:
		| @@ -804,7 +804,9 @@ func (self *ChainManager) reorg(oldBlock, newBlock *types.Block) error { | |||||||
| 		DeleteReceipt(self.chainDb, tx.Hash()) | 		DeleteReceipt(self.chainDb, tx.Hash()) | ||||||
| 		DeleteTransaction(self.chainDb, tx.Hash()) | 		DeleteTransaction(self.chainDb, tx.Hash()) | ||||||
| 	} | 	} | ||||||
| 	self.eventMux.Post(RemovedTransactionEvent{diff}) | 	// Must be posted in a goroutine because of the transaction pool trying | ||||||
|  | 	// to acquire the chain manager lock | ||||||
|  | 	go self.eventMux.Post(RemovedTransactionEvent{diff}) | ||||||
|  |  | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user