azure-sdk-for-net: [QUERY] System.ObjectDisposedException When using Azure.WebJobs QueueTrigger
Library name and version
Azure.Messaging.ServiceBus:7.16.1.0
Query/Question
We are using .Net 6.0, azure WebJobs QueueTrigger to consume the service bus.
Here is our service bus config:
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddAzureStorageQueues(a =>
{
a.BatchSize = 1;
a.NewBatchThreshold = 1;
a.MaxDequeueCount = 3;
a.MaxPollingInterval = TimeSpan.FromSeconds(10);
a.VisibilityTimeout = TimeSpan.FromSeconds(5);
});
b.AddServiceBus(sc =>
{
sc.PrefetchCount = 0;
sc.AutoCompleteMessages = false;
sc.MaxAutoLockRenewalDuration = maxAutoLockRenewalDuration;
sc.MaxConcurrentSessions = 1;
sc.SessionIdleTimeout = TimeSpan.FromSeconds(30);
});
b.AddTimers();
});
Here is our code example:
public static async Task ProcessSQLCosmosDBEventExpansion([ServiceBusTrigger("queue", IsSessionsEnabled = true, Connection = ServiceBusConnection)] ServiceBusReceivedMessage message, ServiceBusMessageActions messageActions, ServiceBusSessionMessageActions sessionActions, CancellationToken cancellationToken)
{
try {
var messageBody = Encoding.UTF8.GetString(message.Body);
// handle the logic
await messageActions.CompleteMessageAsync(message).ConfigureAwait(false);
diagnostic.Success = true;
}
catch (Exception ex)
{
await messageActions.AbandonMessageAsync(message).ConfigureAwait(false);
throw;
}
finally
{
try
{
// Release the session so the next message in the queue will be delivered.
sessionActions.ReleaseSession();
}
catch (Exception ex)
{
telemetryClient.TrackException(ex, requestTelemetry.Properties);
}
telemetryClient.Flush();
}
}
Here is the exception stack trace:
System.ObjectDisposedException:
at Azure.Core.Argument.AssertNotDisposed (Azure.Messaging.ServiceBus, Version=7.16.1.0, Culture=neutral, PublicKeyToken=92742159e12e44c8)
at Azure.Messaging.ServiceBus.ServiceBusReceiver..ctor (Azure.Messaging.ServiceBus, Version=7.16.1.0, Culture=neutral, PublicKeyToken=92742159e12e44c8)
at Azure.Messaging.ServiceBus.ServiceBusSessionReceiver+<CreateSessionReceiverAsync>d__7.MoveNext (Azure.Messaging.ServiceBus, Version=7.16.1.0, Culture=neutral, PublicKeyToken=92742159e12e44c8)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at Azure.Messaging.ServiceBus.SessionReceiverManager+<CreateReceiver>d__25.MoveNext (Azure.Messaging.ServiceBus, Version=7.16.1.0, Culture=neutral, PublicKeyToken=92742159e12e44c8)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at Azure.Messaging.ServiceBus.SessionReceiverManager+<CreateAndInitializeSessionReceiver>d__24.MoveNext (Azure.Messaging.ServiceBus, Version=7.16.1.0, Culture=neutral, PublicKeyToken=92742159e12e44c8)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at Azure.Messaging.ServiceBus.SessionReceiverManager+<EnsureCanProcess>d__22.MoveNext (Azure.Messaging.ServiceBus, Version=7.16.1.0, Culture=neutral, PublicKeyToken=92742159e12e44c8)
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
at Azure.Messaging.ServiceBus.SessionReceiverManager+<ReceiveAndProcessMessagesAsync>d__29.MoveNext (Azure.Messaging.ServiceBus, Version=7.16.1.0, Culture=neutral, PublicKeyToken=92742159e12e44c8)
Environment
.Net 6.0 Microsoft.Azure.WebJobs.Extensions 4.0.1 Microsoft.Azure.WebJobs.Extensions.ServiceBus 5.8.0 Microsoft.Azure.WebJobs.Extensions.Storage 5.0.1
About this issue
- Original URL
- State: closed
- Created 10 months ago
- Comments: 18 (6 by maintainers)
Thank you all, I will try to upgrade to 5.12.0 first and update the result later.