[12:40:51] @prole I'll see if I can take a look at the issue [12:41:02] Which branch/pr is this from again? [12:46:08] Nvm it's for PR 523 [23:21:05] @prole Have you seen this issue before? [23:21:05] https://github.com/navcoin/navcoin-core/issues/581 [23:22:12] not specifically [23:22:29] i had a similar looking deadlock issue when i was having problems with shutting down core [23:22:40] ill see if i can find the ticket [23:22:59] https://github.com/navcoin/navcoin-core/issues/569 [23:23:01] Alright, might be related [23:23:18] mm different lines of main.cpp [23:23:22] Ahh, looks different [23:23:29] Same issue (deadlock) [23:23:34] But different part of the wallet logic [23:23:37] yeah [23:23:51] Alright, I'll see what I can do with this [23:24:44] I think it's a deadlock caused by call to rescan when the wallet calls LoadWallet [23:25:22] LoadWallet locks cs_wallet [23:25:34] While Rescan locks cs_main, cs_wallet [23:25:43] So it steps over itself [23:25:52] ah yeah [23:25:59] I guess LoadWallet should call the lock for both (just in case) [23:27:45] i need to read a bit more about thread locking tbh. its not something i have to deal with in javascript land [23:27:46] 😛 [23:29:05] is there some clue in the fact that one is locking cs_wallet and the other is locking pwallet->cs_wallet or do they point at the same thing? [23:29:16] Yes, JS is a bit smarter about it [23:29:33] cs_wallet should be the same [23:29:41] pwallet->cs_wallet I think is a pointer [23:29:52] yeah, i thought probably but just wanted to mention [23:29:56] Well, my hunch was right [23:30:03] My wallet now starts [23:30:15] And finished rescan successfully 👌 [23:30:26] okay, so locking cs_wallet as well from LoadWallet? [23:30:26] I'll make a PR now [23:30:44] diff --git a/src/wallet/walletdb.cpp b/src/wallet/walletdb.cpp index d770375a..3160df5a 100644 --- a/src/wallet/walletdb.cpp +++ b/src/wallet/walletdb.cpp @@ -630,7 +630,7 @@ DBErrors CWalletDB::LoadWallet(CWallet* pwallet) DBErrors result = DB_LOAD_OK; try { - LOCK(pwallet->cs_wallet); + LOCK2(cs_main, pwallet->cs_wallet); int nMinVersion = 0; if (Read((string)"minversion", nMinVersion)) [23:30:44] { [23:30:53] Basically, yeah [23:31:52] lol [23:31:55] i was just going to say [23:32:02] why is there 2 locks now? [23:32:10] but the + - wasnt showing [23:32:33] so i didnt realise it was showing the diff [23:33:43] I changed the type to patch to show in color 😄 [23:33:47] Easier to read [23:36:01] Man, the DAO changes are legit! So much of it though [23:36:11] Still reviewing and (Trying to understand!) [23:36:39] These DAO changes are exciting (Better feature than the Privacy in my book) [23:36:48] But ofcourse, privacy is nice as well! [23:37:10] I've really not seen any other coins have this functionality, or even anything close to it! [23:58:56] :navcoin3: