spesmilo / spesmilo/electrum

Hanging "Please wait" window

Open
#3,956 24 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug 🐞 Qt ✨ user-interface 🔲
Dominant language
Python
Stars
8.6k
Forks
3.5k
Avg merge
2d 8h
Merged PRs (30d)
61

Description

If I attempt to make a transaction and type a wrong password I get a hanging "Please wait" window.
It is not possible to close the window.
screenshot from 2018-02-21 21-34-18

appmenu-qt: registerWindow 206 "&File"
appmenu-qt: registerWindow 206 "&Wallet"
appmenu-qt: registerWindow 206 "&View"
appmenu-qt: registerWindow 206 "&Tools"
appmenu-qt: registerWindow 206 "&Help"
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/electrum/bitcoin.py", line 167, in aes_decrypt_with_iv
    return strip_PKCS7_padding(data)
  File "/usr/local/lib/python3.5/dist-packages/electrum/bitcoin.py", line 138, in strip_PKCS7_padding
    raise InvalidPadding("invalid padding byte (large)")
electrum.bitcoin.InvalidPadding: invalid padding byte (large)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/electrum/bitcoin.py", line 196, in pw_decode
    d = to_string(DecodeAES(secret, s), "utf8")
  File "/usr/local/lib/python3.5/dist-packages/electrum/bitcoin.py", line 182, in DecodeAES
    s = aes_decrypt_with_iv(secret, iv, e)
  File "/usr/local/lib/python3.5/dist-packages/electrum/bitcoin.py", line 169, in aes_decrypt_with_iv
    raise InvalidPassword()
electrum.util.InvalidPassword: Incorrect password

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/electrum_gui/qt/util.py", line 587, in run
    result = task.task()
  File "/usr/local/lib/python3.5/dist-packages/electrum/wallet.py", line 1153, in sign_transaction
    k.sign_transaction(tx, password)
  File "/usr/local/lib/python3.5/dist-packages/electrum/keystore.py", line 99, in sign_transaction
    self.check_password(password)
  File "/usr/local/lib/python3.5/dist-packages/electrum/keystore.py", line 291, in check_password
    xprv = pw_decode(self.xprv, password)
  File "/usr/local/lib/python3.5/dist-packages/electrum/bitcoin.py", line 198, in pw_decode
    raise InvalidPassword()
electrum.util.InvalidPassword: Incorrect password

Observed on Electrum 3.0.5 / Linux

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in electrum_gui/qt/util.py at the task runner, then follow the traceback through wallet.py sign_transaction and keystore.py check_password. Reproduce the wrong-password transaction flow on the reported Linux setup and inspect how the InvalidPassword exception is handled. Done means the error is reported and the “Please wait” window can be closed or disappears.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
desktop
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.