diff --git a/localstack-core/localstack/services/sqs/provider.py b/localstack-core/localstack/services/sqs/provider.py index 0918e7c8a8a1b..eb098cf158d1d 100644 --- a/localstack-core/localstack/services/sqs/provider.py +++ b/localstack-core/localstack/services/sqs/provider.py @@ -77,7 +77,9 @@ from localstack.services.edge import ROUTER from localstack.services.plugins import ServiceLifecycleHook from localstack.services.sqs import constants as sqs_constants -from localstack.services.sqs.constants import HEADER_LOCALSTACK_SQS_OVERRIDE_MESSAGE_COUNT +from localstack.services.sqs.constants import ( + HEADER_LOCALSTACK_SQS_OVERRIDE_MESSAGE_COUNT, +) from localstack.services.sqs.exceptions import InvalidParameterValueException from localstack.services.sqs.models import ( FifoQueue, @@ -192,7 +194,7 @@ def __init__(self, num_thread: int = 3): ) def shutdown(self): - self.executor.shutdown(wait=False) + self.executor.shutdown(wait=False, cancel_futures=True) def dispatch_sqs_metric( self, @@ -468,7 +470,7 @@ def close(self): for move_task in self.move_tasks.values(): move_task.cancel_event.set() - self.executor.shutdown(wait=False) + self.executor.shutdown(wait=False, cancel_futures=True) def _run(self, move_task: MessageMoveTask): try: diff --git a/localstack-core/localstack/services/sqs/queue.py b/localstack-core/localstack/services/sqs/queue.py index 12974ee627608..dc3b5e8d88f70 100644 --- a/localstack-core/localstack/services/sqs/queue.py +++ b/localstack-core/localstack/services/sqs/queue.py @@ -12,6 +12,8 @@ def __init__(self, maxsize=0): def get(self, block=True, timeout=None): with self.not_empty: + if self.is_shutdown: + raise Empty if not block: if not self._qsize(): raise Empty