`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`

{
    
    
    
    
    
    bool ret = ::AcceptToMemoryPool(mempool, state, tx, nullptr ,
                                nullptr , false , nAbsurdFee);
    fInMempool |= ret;
    return ret;
}
void CWallet::LearnRelatedScripts(const CPubKey& key, OutputType type)
{
    if (key.IsCompressed() && (type == OutputType::P2SH_SEGWIT || type == OutputType::BECH32)) {
        CTxDestination witdest = WitnessV0KeyHash(key.GetID());
        CScript witprog = GetScriptForDestination(witdest);
        
        assert(IsSolvable(*this, witprog));
        AddCScript(witprog);
    }
}
void CWallet::LearnAllRelatedScripts(const CPubKey& key)
{
    
    LearnRelatedScripts(key, OutputType::P2SH_SEGWIT);
}
std::vector<OutputGroup> CWallet::GroupOutputs(const std::vector<COutput>& outputs, bool single_coin) const {