`bitcoin-cli loadwallet "wallet.dat"` command causes bitcoind crash

log info:
```
bitcoind: wallet/db.cpp:236: BerkeleyEnvironment::VerifyResult BerkeleyEnvironment::Verify(const string&, BerkeleyEnvironment::recoverFunc_type, std::__cxx11::string&): Assertion `mapFileUseCount.count(strFile) == 0' failed.
Aborted (core dumped)
```

Bitcoin Core Daemon version `v0.17.0.0-ge1ed37edaedc85b8c3468bd9a726046344036243`

nUpdateCounter(0), nLastSeen(0), nLastFlushed(0), nLastWalletUpdate(0)
    {
        env = GetWalletEnv(wallet_path, strFile);
        auto inserted = env->m_databases.emplace(strFile, std::ref(*this));
        assert(inserted.second);
        if (mock) {
            env->Close();
            env->Reset();
            env->MakeMock();
        }
    }
    ~BerkeleyDatabase() {
        if (env) {
            size_t erased = env->m_databases.erase(strFile);
            assert(erased == 1);
        }
    }
    
    static std::unique_ptr<BerkeleyDatabase> Create(const fs::path& path)
    {
        return MakeUnique<BerkeleyDatabase>(path);
    }
    
    static std::unique_ptr<BerkeleyDatabase> CreateDummy()
    {
        return MakeUnique<BerkeleyDatabase>();
    }
    
    static std::unique_ptr<BerkeleyDatabase> CreateMock()