From 23a82f328f4c3b91b168f786a350e8b2d592a4df Mon Sep 17 00:00:00 2001 From: SomberNight Date: Sat, 23 Aug 2025 14:51:01 +0000 Subject: [PATCH] util: fix DebugMem helper ``` 28.99 | I | util.DebugMem | Start memscan 29.10 | E | plugin.Plugins | Traceback (most recent call last): File "...\electrum\util.py", line 405, in run_jobs job.run() File "...\electrum\util.py", line 376, in run self.mem_stats() File "...\electrum\util.py", line 368, in mem_stats if isinstance(obj, class_): File "...\Python310\lib\abc.py", line 119, in __instancecheck__ return _abc_instancecheck(cls, instance) File "...\electrum\simple_config.py", line 609, in __getattribute__ raise AttributeError() AttributeError ``` --- electrum/gui/qml/__init__.py | 2 +- electrum/gui/qt/__init__.py | 2 +- electrum/util.py | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/electrum/gui/qml/__init__.py b/electrum/gui/qml/__init__.py index 1957e2aa2..8f7b6689d 100644 --- a/electrum/gui/qml/__init__.py +++ b/electrum/gui/qml/__init__.py @@ -59,7 +59,7 @@ class ElectrumGui(BaseElectrumGui, Logger): self.logger.info("CWD=%s" % os.getcwd()) # Uncomment this call to verify objects are being properly # GC-ed when windows are closed - #network.add_jobs([DebugMem([Abstract_Wallet, SPV, Synchronizer, + #plugins.add_jobs([DebugMem([Abstract_Wallet, SPV, Synchronizer, # ElectrumWindow], interval=5)]) if hasattr(Qt, "AA_ShareOpenGLContexts"): diff --git a/electrum/gui/qt/__init__.py b/electrum/gui/qt/__init__.py index dcd5092e9..4a37fb100 100644 --- a/electrum/gui/qt/__init__.py +++ b/electrum/gui/qt/__init__.py @@ -147,7 +147,7 @@ class ElectrumGui(BaseElectrumGui, Logger): self.logger.info(f"Qt GUI starting up... Qt={QtCore.QT_VERSION_STR}, PyQt={QtCore.PYQT_VERSION_STR}") # Uncomment this call to verify objects are being properly # GC-ed when windows are closed - #network.add_jobs([DebugMem([Abstract_Wallet, SPV, Synchronizer, + #plugins.add_jobs([DebugMem([Abstract_Wallet, SPV, Synchronizer, # ElectrumWindow], interval=5)]) if hasattr(QtCore.Qt, "AA_ShareOpenGLContexts"): QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_ShareOpenGLContexts) diff --git a/electrum/util.py b/electrum/util.py index 0a57b68a2..0bad5f510 100644 --- a/electrum/util.py +++ b/electrum/util.py @@ -365,7 +365,11 @@ class DebugMem(ThreadJob): objmap = defaultdict(list) for obj in gc.get_objects(): for class_ in self.classes: - if isinstance(obj, class_): + try: + _isinstance = isinstance(obj, class_) + except AttributeError: + _isinstance = False + if _isinstance: objmap[class_].append(obj) for class_, objs in objmap.items(): self.logger.info(f"{class_.__name__}: {len(objs)}")