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)

Most upvoted comments

Thank you all, I will try to upgrade to 5.12.0 first and update the result later.