Closed JoeGruffins closed 1 year ago
max balance is almost a max uint64 which doesn't make sense to come directly from the rpc
This screams underflow. The available
is not directly from RPC, but the result of a formula:
Not the first time we've hit this issue. In a nutshell, locked is higher than actual balance. Why? Probably because of a race between GetWalletInfo
and lockedSats
.
Also very likely resolved by https://github.com/decred/dcrdex/pull/1677 because loadbot was using alpha wallet for all traders with DOGE.
The DOGE and ZEC issue (singular wallets) with loadbot is fixed now, but we can leave this opened because ideally there would be some way to make sure the getwalletinfo and listlockunspent results are atomic, or at least catch when locked is larger than otherwise available balance to prevent an underflow.
Another thing I noted, which I don't think is an issue, is that dogecoind has no error for repeated lock or unlocks of the same UTXO, while other coin daemons seem to error.
Running loadbot at https://github.com/decred/dcrdex/pull/1656/commits/a2ad03d399015fc35e80a9ccc7fb66cc1de6292b on the dcr_doge market.
This started happening without resolve until I reset the doge harness. May be a problem with the harness or loadbot. Still, max balance is almost a max uint64 which doesn't make sense to come directly from the rpc wallet.
The error:
The log: doge2.txt