Bertrand256 / dash-masternode-tool

Tool for managing Dash masternodes with a hardware wallet (Trezor, Keepkey, Ledger Nano S)
MIT License
68 stars 80 forks source link

DMT crash - should have prompted user for re-attempt instead #12

Closed SmartLayer closed 6 years ago

SmartLayer commented 6 years ago

The crash happened 1 minute after user clicked "Get Status":

$ DashMasternodeTool
=========================
  File "main_dlg.py", line 1469, in on_btnRefreshMnStatus_clicked
  File "main_dlg.py", line 1406, in get_masternode_status_description
  File "dashd_intf.py", line 370, in catch_timeout_wrapper
  File "dashd_intf.py", line 942, in get_masternodelist
  File "site-packages/bitcoinrpc/authproxy.py", line 139, in __call__
  File "site-packages/bitcoinrpc/authproxy.py", line 189, in _get_response
  File "http/client.py", line 456, in read
  File "http/client.py", line 570, in _readall_chunked

The debug log really look like some communication broke down between DMT and the master node.

2018-03-09 09:59:28 DEBUG |MainThread |authproxy.py |__call__ |-2-> masternodelist ["full"]
2018-03-09 10:01:58 DEBUG |MainThread |dashd_intf.py |catch_timeout_wrapper |Released http_lock
Traceback (most recent call last):
  File "http/client.py", line 546, in _get_chunk_left
  File "http/client.py", line 513, in _read_next_chunk_size
ValueError: invalid literal for int() with base 16: b''

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "http/client.py", line 563, in _readall_chunked
  File "http/client.py", line 548, in _get_chunk_left
http.client.IncompleteRead: IncompleteRead(0 bytes read)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "main_dlg.py", line 1469, in on_btnRefreshMnStatus_clicked
  File "main_dlg.py", line 1406, in get_masternode_status_description
  File "dashd_intf.py", line 370, in catch_timeout_wrapper
  File "dashd_intf.py", line 942, in get_masternodelist
  File "site-packages/bitcoinrpc/authproxy.py", line 139, in __call__
  File "site-packages/bitcoinrpc/authproxy.py", line 189, in _get_response
  File "http/client.py", line 456, in read
  File "http/client.py", line 570, in _readall_chunked
http.client.IncompleteRead: IncompleteRead(228353 bytes read)
2018-03-09 10:02:09 DEBUG |MainThread |dashd_intf.py |disconnect |Disconnecting

DMT should, instead of crashing, prompt user to reconnect again.

Bertrand256 commented 6 years ago

I did a lot of tests but I could not reproduce this error. When a connection problem occurs, the application should try to use a different connection (if it is available). Does the problem occur in the latest app version? If so please provide the information about the OS on which the DMT is running.

Bertrand256 commented 6 years ago

Can't reproduce in the lastest version.