BeamMW / beam-ui

Beam Desktop Wallet (Win / Mac / Linux)
https://beam.mw/
Apache License 2.0
26 stars 23 forks source link

Carsh on upgrade from 7.2 to 7.3 #1016

Closed anatolse closed 2 months ago

anatolse commented 1 year ago

It seems that we use owner KDF before it is initialized void IWalletDB::get_Endpoint(PeerID& pid, uint64_t ownID) const { ECC::Hash::Value hv; Key::ID(ownID, Key::Type::EndPoint).get_Hash(hv); ECC::Point::Native pt; get_OwnerKdf()->DerivePKeyG(pt, hv); ^^^^^^^^^^ pid = ECC::Point(pt).m_X; }

Call stack:

Beam Wallet.exe!beam::wallet::IWalletDB::get_Endpoint(beam::PeerID & pid, unsigned int64 ownID) Line 3022 C++ Beam Wallet.exe!beam::wallet::`anonymous namespace'::loadAddress(const beam::wallet::IWalletDB * db, beam::wallet::sqlite::Statement & stm, beam::wallet::WalletAddress & address) Line 4277 C++ Beam Wallet.exe!beam::wallet::WalletDB::getAddresses(bool own, bool isLaser) Line 4331 C++ Beam Wallet.exe!beam::wallet::WalletDB::DeleteNonceAddresses() Line 5940 C++ Beam Wallet.exe!beam::wallet::WalletDB::open(const std::string & path, const beam::SecString & password, const std::shared_ptr & pKeyKeeper) Line 2232 C++ Beam Wallet.exe!beam::wallet::WalletDB::open(const std::string & path, const beam::SecString & password) Line 2197 C++ Beam Wallet.exe!AppModel::openWalletThrowWithReactor(const beam::SecString & pass) Line 324 C++ Beam Wallet.exe!AppModel::openWalletThrow(const beam::SecString & pass) Line 308 C++ [Inline Frame] Beam Wallet.exe!StartViewModel::openWallet::__l5::::operator()() Line 776 C++ [Inline Frame] Beam Wallet.exe!std::invoke(StartViewModel::openWallet::l5:: &) Line 1524 C++ [Inline Frame] Beam Wallet.exe!std::_Invoker_ret<void,1>::_Call(StartViewModel::openWallet::l5:: &) Line 651 C++ Beam Wallet.exe!std::_Func_impl_no_alloc<,void>::_Do_call() Line 822 C++ [Inline Frame] Beam Wallet.exe!std::_Func_class::operator()() Line 869 C++ Beam Wallet.exe!`anonymous namespace'::DoOpenWallet(QJSValue & jsCallback, std::function<void cdecl(void)> openFunc) Line 123 C++ Beam Wallet.exe!StartViewModel::openWallet(const QString & pass, const QJSValue & callback) Line 779 C++ Beam Wallet.exe!StartViewModel::qt_metacall(QMetaObject::Call _c, int _id, void _a) Line 792 C++

todw1fd commented 1 year ago

Perhaps same crash I experienced after upgrade to 7.3 from 7.2 on Windows 10. After entering wallet pass either in auto mode or manual select wallet mode, the gui just closes. a dmp file is created in AppData/Local/Beam Wallet and a journal file is present in the version directory with the wallet file. Blockchain had not been recently synced (1 month behind). Was upgrading from 7.2.13686.5644. Hope that helps.

anatolse commented 1 year ago

this crash should be fixed in https://github.com/BeamMW/beam/commit/b66f4d900745ba14280071cf84782dad842771a3