Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

entire computer locks up #6555

Open
jlopp opened this issue Sep 4, 2020 · 4 comments
Open

entire computer locks up #6555

jlopp opened this issue Sep 4, 2020 · 4 comments

Comments

@jlopp
Copy link

jlopp commented Sep 4, 2020

OK this is a fun one that I've experienced several times but didn't get debug logs until just now.

Electrum 4.0.2 appimage on debian.

Create a 1 of 8 multisig setup; mine are all different hardware devices but that may not matter for the purpose of this bug.

Go into coin control and right click on a single UTXO and click "spend"

Create a new transaction for "max" value to a single address also owned by the wallet.

Click 'advanced'

Now massive resource consumption starts happening. Computer becomes sluggish such that within a few seconds all interfaces are frozen.

Here's the logs of what happened right before the lock-up:

I/w | wallet.Multisig_Wallet.[stress_test_1_of_8] | saving invoice... but it is already paid!
I | storage.WalletStorage | saved /home/jameson/.electrum/testnet/wallets/stress_test_1_of_8
D | util.profiler | WalletStorage.write 0.0087

Usually I have to hard reset my PC to resolve the issue. This time I was able to get focus on the terminal from which I had launched Electrum and CTRL+C after a few minutes. Here's the rest of the logs that spewed out:

I/i | interface.[electrum.blockstream.info:60002] | could connect 1831425
I/i | interface.[blockstream.info:993] | skipping header 1831425
I | gui.qt.history_list.HistoryModel | refreshing... reason: update_tabs
D | util.profiler | HistoryModel.refresh 0.0003
D | util.profiler | AddressList.update 0.0000
I/i | interface.[tn.not.fyi:55002] | skipping header 1831425
I | gui.qt.history_list.HistoryModel | refreshing... reason: update_tabs
D | util.profiler | HistoryModel.refresh 0.0003
D | util.profiler | AddressList.update 0.0000
I/i | interface.[testnet.aranguren.org:51002] | skipping header 1831425
I | gui.qt.history_list.HistoryModel | refreshing... reason: update_tabs
D | util.profiler | HistoryModel.refresh 0.0003
D | util.profiler | AddressList.update 0.0000
I/i | interface.[testnet.hsmiths.com:53012] | skipping header 1831425
I | gui.qt.history_list.HistoryModel | refreshing... reason: update_tabs
D | util.profiler | HistoryModel.refresh 0.0003
D | util.profiler | AddressList.update 0.0000
I/n | network | fee_estimates {25: 1000, 10: 1000, 5: 1000, 2: 879656}
I/n | network | fee_histogram [[1.0070922374725342, 737]]
I/n | network | fee_estimates {25: 1000, 10: 1000, 5: 1000, 2: 879656}
I/n | network | fee_estimates {25: 1000, 10: 1000, 5: 1000, 2: 879656}
I/i | interface.[testnet.qtornado.com:51002] | disconnecting due to RequestTimedOut("request timed out: ('blockchain.estimatefee', [25]) (id: 19)")
I/i | interface.[testnet.qtornado.com:51002] | disconnecting due to: ConnectError(ConnectionResetError(104, 'Connection reset by peer'))
I/n | network | couldn't launch iface testnet.qtornado.com:51002:s -- CancelledError()
I/n | network | fee_estimates {25: 1000, 10: 1000, 5: 1000, 2: 879655}
I/n | network | fee_estimates {25: 1000, 10: 1000, 5: 1000, 2: 879655}
I/i | interface.[testnet.qtornado.com:51002] | connection established. version: ['ElectrumX 1.14.0', '1.4']
I/i | interface.[testnet.qtornado.com:51002] | set blockchain with height 1831425
I/i | interface.[testnet.qtornado.com:51002] | skipping header 1831425
I/n | network | fee_estimates {25: 1000, 10: 1000, 5: 1000, 2: 879655}
I | gui.qt.history_list.HistoryModel | refreshing... reason: update_tabs
D | util.profiler | HistoryModel.refresh 0.0003
D | util.profiler | AddressList.update 0.0000
^C^C^C^C^C^CI | gui.qt.ElectrumGui | closing GUI
I | storage.WalletStorage | saved /home/jameson/.electrum/testnet/wallets/stress_test_1_of_8
D | util.profiler | WalletStorage.write 0.0125
I | daemon.Daemon | shutting down network
I/n | network | stopping network
I/i | interface.[tn.not.fyi:55002] | disconnecting due to: CancelledError()
I/i | interface.[electrum.blockstream.info:60002] | disconnecting due to: CancelledError()
I/i | interface.[blockstream.info:993] | disconnecting due to: CancelledError()
I/i | interface.[testnet.hsmiths.com:53012] | disconnecting due to: CancelledError()
I/i | interface.[testnet.qtornado.com:51002] | disconnecting due to: CancelledError()
I/i | interface.[testnet.aranguren.org:51002] | disconnecting due to: CancelledError()
I/n | network | taskgroup stopped.
I | daemon.Daemon | stopping taskgroup
I | daemon.Daemon | taskgroup stopped.
I | daemon.Daemon | removing lockfile
I | daemon.Daemon | stopped
I/p | plugin.Plugins | stopped
QThread: Destroyed while thread is still running
Aborted
@jlopp
Copy link
Author

jlopp commented Sep 4, 2020

I suspect that this issue is triggered due to an incorrect invoice state that exists from previous bugs / crashes I've hit. To be precise, my "send" screen has this invoice for a "max payment" to a specific address I keep testing with. However, that payment was never actually made / broadcast. It seems that trying to make another payment with the same details may be causing some sort of conflict.

Screenshot from 2020-09-04 17-04-20

@jlopp
Copy link
Author

jlopp commented Sep 4, 2020

The may be an issue as simple as having multiple "max sat" payments but some with coin control enabled and some without.

@jlopp
Copy link
Author

jlopp commented Sep 5, 2020

When I delete the outgoing payments that appear to be causing the conflict, this issue stops presenting itself.

@SomberNight
Copy link
Member

Can you reliably reproduce this?
Does the app freeze when you create any "max" invoice? Or does the invoice have to be to one of your own addresses? Does the address have to have prior history? Does the invoice have to be for "max" amount?
I really doubt coin selection is related.

If possible, and if you can reproduce, please try to reduce the scope of what is needed for reproduction, because atm I have no idea what might be going on and there are a lot of variables.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants