Skip to content

Commit d3b94e5

Browse files
committed
Init offline request queue exceptions on raise
This causes the exception stack trace to be added to the instance every time the exception is raised, increasing memory usage and causing a memory leak. The state to exception map is preserved without initialising the exceptions, instead they are initialised when needed to be raised. Fixes: 333ffdb
1 parent e0f9eef commit d3b94e5

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

AWSIoTPythonSDK/core/protocol/mqtt_core.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,14 @@ def __init__(self, client_id, clean_session, protocol, use_wss):
9191

9292
def _init_offline_request_exceptions(self):
9393
self._offline_request_queue_disabled_exceptions = {
94-
RequestTypes.PUBLISH : publishQueueDisabledException(),
95-
RequestTypes.SUBSCRIBE : subscribeQueueDisabledException(),
96-
RequestTypes.UNSUBSCRIBE : unsubscribeQueueDisabledException()
94+
RequestTypes.PUBLISH : publishQueueDisabledException,
95+
RequestTypes.SUBSCRIBE : subscribeQueueDisabledException,
96+
RequestTypes.UNSUBSCRIBE : unsubscribeQueueDisabledException
9797
}
9898
self._offline_request_queue_full_exceptions = {
99-
RequestTypes.PUBLISH : publishQueueFullException(),
100-
RequestTypes.SUBSCRIBE : subscribeQueueFullException(),
101-
RequestTypes.UNSUBSCRIBE : unsubscribeQueueFullException()
99+
RequestTypes.PUBLISH : publishQueueFullException,
100+
RequestTypes.SUBSCRIBE : subscribeQueueFullException,
101+
RequestTypes.UNSUBSCRIBE : unsubscribeQueueFullException
102102
}
103103

104104
def _init_workers(self):
@@ -367,7 +367,7 @@ def _handle_offline_request(self, type, data):
367367
append_result = self._offline_requests_manager.add_one(offline_request)
368368
if AppendResults.APPEND_FAILURE_QUEUE_DISABLED == append_result:
369369
self._logger.error("Offline request queue has been disabled")
370-
raise self._offline_request_queue_disabled_exceptions[type]
370+
raise self._offline_request_queue_disabled_exceptions[type]()
371371
if AppendResults.APPEND_FAILURE_QUEUE_FULL == append_result:
372372
self._logger.error("Offline request queue is full")
373-
raise self._offline_request_queue_full_exceptions[type]
373+
raise self._offline_request_queue_full_exceptions[type]()

0 commit comments

Comments
 (0)