core: fix race in stateroot initialization error logging

Signed-off-by: Anna Shaleva <shaleva.ann@nspcc.ru>
This commit is contained in:
Anna Shaleva 2023-10-12 13:37:31 +03:00
parent 9cd5c88077
commit 7ca4ce0f79

View file

@ -203,8 +203,9 @@ func (s *Module) Init(height uint32) error {
// outdated MPT data before state sync process can be started. // outdated MPT data before state sync process can be started.
// Note: this method is aimed to be called for genesis block only, an error is returned otherwise. // Note: this method is aimed to be called for genesis block only, an error is returned otherwise.
func (s *Module) CleanStorage() error { func (s *Module) CleanStorage() error {
if s.localHeight.Load() != 0 { lH := s.localHeight.Load()
return fmt.Errorf("can't clean MPT data for non-genesis block: expected local stateroot height 0, got %d", s.localHeight.Load()) if lH != 0 {
return fmt.Errorf("can't clean MPT data for non-genesis block: expected local stateroot height 0, got %d", lH)
} }
b := storage.NewMemCachedStore(s.Store) b := storage.NewMemCachedStore(s.Store)
s.Store.Seek(storage.SeekRange{Prefix: []byte{byte(storage.DataMPT)}}, func(k, _ []byte) bool { s.Store.Seek(storage.SeekRange{Prefix: []byte{byte(storage.DataMPT)}}, func(k, _ []byte) bool {