From 541e74519956e0538cae1606a05b24e1b9a0557f Mon Sep 17 00:00:00 2001 From: bmc-msft <41130664+bmc-msft@users.noreply.github.com> Date: Mon, 26 Apr 2021 15:42:40 -0400 Subject: [PATCH] handle queues vanishing during peek (#832) Handle queues getting deleted during peek_queue. This can happen when polling the pool for work while the pool is getting shut down. --- .../__app__/onefuzzlib/azure/queue.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/api-service/__app__/onefuzzlib/azure/queue.py b/src/api-service/__app__/onefuzzlib/azure/queue.py index 2c117c294..dc21c1b86 100644 --- a/src/api-service/__app__/onefuzzlib/azure/queue.py +++ b/src/api-service/__app__/onefuzzlib/azure/queue.py @@ -158,14 +158,17 @@ def peek_queue( if max_messages < MIN_PEEK_SIZE or max_messages > MAX_PEEK_SIZE: raise ValueError("invalid max messages: %s" % max_messages) - queue = get_queue(name, storage_type) - if not queue: - return result + try: + queue = get_queue(name, storage_type) + if not queue: + return result - for message in queue.peek_messages(max_messages=max_messages): - decoded = base64.b64decode(message.content) - raw = json.loads(decoded) - result.append(object_type.parse_obj(raw)) + for message in queue.peek_messages(max_messages=max_messages): + decoded = base64.b64decode(message.content) + raw = json.loads(decoded) + result.append(object_type.parse_obj(raw)) + except ResourceNotFoundError: + return result return result