RecursionError: maximum recursion depth exceeded in comparison
Open
Nobody has claimed this yet.
bug 🐞
- Dominant language
- Python
- Stars
- 8.6k
- Forks
- 3.5k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 61
Description
Crash Report
This crash report was reported through the automatic crash reporting system 🤖
Traceback
File "/home/user/wspace/electrum/electrum/gui/qt/main_window.py", line 641, in timer_actions
self.update_wallet()
File "/home/user/wspace/electrum/electrum/gui/qt/main_window.py", line 757, in update_wallet
self.update_tabs()
File "/home/user/wspace/electrum/electrum/gui/qt/main_window.py", line 760, in update_tabs
self.history_list.update()
File "/home/user/wspace/electrum/electrum/gui/qt/util.py", line 521, in update
self.on_update()
File "/home/user/wspace/electrum/electrum/util.py", line 336, in <lambda>
return lambda *args, **kw_args: do_profile(args, kw_args)
File "/home/user/wspace/electrum/electrum/util.py", line 332, in do_profile
o = func(*args, **kw_args)
File "/home/user/wspace/electrum/electrum/gui/qt/history_list.py", line 219, in on_update
r = self.wallet.get_full_history(domain=self.get_domain(), from_timestamp=self.start_timestamp, to_timestamp=self.end_timestamp, fx=fx)
File "/home/user/wspace/electrum/electrum/util.py", line 336, in <lambda>
return lambda *args, **kw_args: do_profile(args, kw_args)
File "/home/user/wspace/electrum/electrum/util.py", line 332, in do_profile
o = func(*args, **kw_args)
File "/home/user/wspace/electrum/electrum/wallet.py", line 398, in get_full_history
h = self.get_history(domain)
File "/home/user/wspace/electrum/electrum/address_synchronizer.py", line 470, in f
return func(self, *args, **kwargs)
File "/home/user/wspace/electrum/electrum/address_synchronizer.py", line 501, in get_history
c, u, x = self.get_balance(domain)
File "/home/user/wspace/electrum/electrum/address_synchronizer.py", line 782, in get_balance
c, u, x = self.get_addr_balance(addr)
File "/home/user/wspace/electrum/electrum/address_synchronizer.py", line 470, in f
return func(self, *args, **kwargs)
File "/home/user/wspace/electrum/electrum/address_synchronizer.py", line 740, in get_addr_balance
received, sent = self.get_addr_io(address)
File "/home/user/wspace/electrum/electrum/address_synchronizer.py", line 698, in get_addr_io
h = self.get_address_history(address)
File "/home/user/wspace/electrum/electrum/address_synchronizer.py", line 100, in get_address_history
tx_height = self.get_tx_height(tx_hash).height
File "/home/user/wspace/electrum/electrum/address_synchronizer.py", line 599, in get_tx_height
conf = max(self.get_local_height() - info.height + 1, 0)
File "/home/user/wspace/electrum/electrum/address_synchronizer.py", line 589, in get_local_height
cached_local_height = getattr(self.threadlocal_cache, 'local_height', None)
RecursionError: maximum recursion depth exceeded in comparison
Reporter
This issue was reported by 1 user(s):
| Electrum Version | Python Version | Operating System | Wallet Type | Locale | Stack |
|---|---|---|---|---|---|
| 3.2.2-138-g1bb1fc37f-dirty | 3.6.3 (default, Oct 3 2017, 21:45:48) [GCC 7.2.0] | Linux-4.13.0-46-generic-x86_64-with-Ubuntu-17.10-artful | standard | en_GB | ℹ |
Additional Information
The reporting user(s) did not provide additional information.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the traceback path from electrum/gui/qt/main_window.py through history_list.py to address_synchronizer.py, especially get_local_height and the surrounding balance and history calls. Reproduce the reported RecursionError if possible, determine which call cycle causes it, and verify that the history view no longer crashes while updating the affected wallet.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100