-
Notifications
You must be signed in to change notification settings - Fork 3.3k
Closed
Labels
ClientThis issue points to a problem in the data-plane of the library.This issue points to a problem in the data-plane of the library.Service Bus
Description
In our application logs, we see that we sometimes receive messages where the lock is already expired.
This happens both when calling the native next() function or using a loop that executes fetch_batch while explicitly disabling prefetching by putting max_batch_size=1.
Usually we get something like this
2019-06-30 14:27:57 DEBUG adp Message locked until: 2019-06-30 14:28:27.836000
but sometimes we get expired messages
2019-06-30 14:22:57 DEBUG adp Message locked until: 2019-06-30 14:21:24.143000
As far as I can tell, this never happens in the first message, but if the first message takes a long time to process (e.g. longer than the original lock time should it have been locked at the same time as the first message), it does sometimes happen in subsequent messages.
Relevant code:
queue_client = self.client.get_queue(queue)
with queue_client.get_receiver() as receiver:
while True:
for message in receiver.fetch_next(max_batch_size=1):
self.logger.info(f"Processing new message from {queue}")
self.logger.debug(f"Message locked until: {message.locked_until}")
# Do long running stuff.
What could be the problem here? Are we doing something wrong?
Relevant pip freeze output
azure-common==1.1.22
azure-keyvault==1.1.0
azure-nspkg==3.0.2
azure-servicebus==0.50.0
azure-storage==0.36.0```
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
ClientThis issue points to a problem in the data-plane of the library.This issue points to a problem in the data-plane of the library.Service Bus