https://cirrus-ci.com/task/6024293113397248?logs=ci#L3199

```
Simulating node restart
2023-03-23T20:11:01.824273Z (mocktime: 2020-08-31T15:36:02Z) [test] [logging/timer.h:58] [Log] [bench] FlushStateToDisk: write block and undo data to disk started
2023-03-23T20:11:01.824318Z (mocktime: 2020-08-31T15:36:02Z) [test] [logging/timer.h:58] [Log] [bench] FlushStateToDisk: write block and undo data to disk completed (0.03ms)
2023-03-23T20:11:01.824330Z (mocktime: 2020-08-31T15:36:02Z) [test] [logging/timer.h:58] [Log] [bench] FlushStateToDisk: write block index to disk started
2023-03-23T20:11:01.825668Z (mocktime: 2020-08-31T15:36:02Z) [test] [logging/timer.h:58] [Log] [bench] FlushStateToDisk: write block index to disk completed (1.33ms)
2023-03-23T20:11:01.825686Z (mocktime: 2020-08-31T15:36:02Z) [test] [logging/timer.h:58] [Log] [bench] FlushStateToDisk: write coins cache to disk (0 coins, 0kB) started
2023-03-23T20:11:01.825704Z (mocktime: 2020-08-31T15:36:02Z) [test] [txdb.cpp:167] [BatchWrite] [coindb] Writing final batch of 0.00 MiB
2023-03-23T20:11:01.825719Z (mocktime: 2020-08-31T15:36:02Z) [test] [txdb.cpp:169] [BatchWrite] [coindb] Committed 0 changed transaction outputs (out of 0) to coin database...
2023-03-23T20:11:01.825732Z (mocktime: 2020-08-31T15:36:02Z) [test] [logging/timer.h:58] [Log] [bench] FlushStateToDisk: write coins cache to disk (0 coins, 0kB) completed (0.03ms)
2023-03-23T20:11:01.825744Z (mocktime: 2020-08-31T15:36:02Z) [test] [validationinterface.cpp:249] [ChainStateFlushed] [validation] Enqueuing ChainStateFlushed: block hash=696e92821f65549c7ee134edceeeeaaa4105647a3c4fd9f298c0aec0ab50425c
Performing Load/Verify/Activate of chainstate
test_bitcoin: ./chain.h:261: uint256 CBlockIndex::GetBlockHash() const: Assertion `phashBlock != nullptr' failed.
make[3]: *** [Makefile:21821: test/validation_chainstatemanager_tests.cpp.test] Error 1
for (Chainstate* chainstate : chainman.GetAll()) {
                BOOST_TEST_MESSAGE("Checking coins in " << chainstate->ToString());
                CCoinsViewCache& coinscache = chainstate->CoinsTip();
                bool is_background = chainstate != &chainman.ActiveChainstate();
                for (CTransactionRef& txn : m_coinbase_txns) {
                    COutPoint op{txn->GetHash(), 0};
                    if (coinscache.HaveCoin(op)) {
                        (is_background ? coins_in_background : coins_in_active)++;
                    } else if (is_background) {
                        coins_missing_from_background++;
                    }
                }
            }
            BOOST_CHECK_EQUAL(coins_in_active, initial_total_coins + new_coins);
            BOOST_CHECK_EQUAL(coins_in_background, initial_total_coins);
            BOOST_CHECK_EQUAL(coins_missing_from_background, new_coins);
        }
        
        BOOST_REQUIRE(!CreateAndActivateUTXOSnapshot(this));
        
        BOOST_CHECK_EQUAL(
            *chainman.ActiveChainstate().m_from_snapshot_blockhash,
            loaded_snapshot_blockhash);
        return std::make_tuple(&validation_chainstate, &snapshot_chainstate);
    }
    
    
    
    
    ChainstateManager& SimulateNodeRestart()