As of #11466 we no longer have any logic to prevent a user from opening a wallet twice in two instances simultaneously. Not only could this break BDB (without the -privdb=false option, which I have really no idea why we even have a tuneable option for that), but we certainly don't have logic to handle such a case gracefully. It was noted in the original PR's description, but somehow was never followed up on before merge.
{
        if (!pdb)
            return false;
        
        CDataStream ssKey(SER_DISK, CLIENT_VERSION);
        ssKey.reserve(1000);
        ssKey << key;
        Dbt datKey(ssKey.data(), ssKey.size());
        
        int ret = pdb->exists(activeTxn, &datKey, 0);
        
        memory_cleanse(datKey.get_data(), datKey.get_size());
        return (ret == 0);
    }
    Dbc* GetCursor()