Skip to content

Commit c70a402

Browse files
committed
Managed exceptions during the async thread loop (i.e. Not authorized).
1 parent e31f0ef commit c70a402

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

Diff for: dnfdragora/dnfd_client.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,8 @@ def __async_thread_loop(self, data, *args):
474474
func(*args)
475475
except Exception as err:
476476
logger.error("__async_thread_loop (%s) proxy %s, method %s - Exception %s", str(data['cmd']), proxy.dbus_interface, method, err)
477-
data['error'] = err
477+
self._return_handler(err, data)
478+
#data['error'] = err
478479

479480
# We enqueue one request at the time by now, monitoring _sent
480481
self._sent = False

Diff for: dnfdragora/ui.py

+11
Original file line numberDiff line numberDiff line change
@@ -2397,7 +2397,18 @@ def _manageDnfDaemonEvent(self):
23972397
if is_dict:
23982398
if 'error' in info.keys() and 'result' in info.keys():
23992399
if info['error']:
2400+
#got an Exception into trhead loop
24002401
logger.error("Event received %s, %s - status %s", event, info['error'], self._status)
2402+
title = _("Error in status %(status)s on %(event)s")%({'status':self._status, 'event':(event if event else "---")})
2403+
dialogs.warningMsgBox({'title' : title, "text": str(info['error']), "richtext":True})
2404+
# Force return on STARTUP on error
2405+
self.backend.reloadDaemon()
2406+
self.backend.clear_cache(also_groups=True)
2407+
self.packageQueue.clear()
2408+
self._status = DNFDragoraStatus.STARTUP
2409+
self._enableAction(False)
2410+
# force return on error
2411+
return False
24012412
elif info['result']:
24022413
is_list = isinstance(info['result'], list)
24032414
logger.debug("Event received %s, %s - status %s", event, len(info['result']) if is_list else info, self._status)

0 commit comments

Comments
 (0)