Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrectly shutting down of the pipeline #1813

Closed
johnsimons opened this issue Nov 29, 2013 · 0 comments
Closed

Incorrectly shutting down of the pipeline #1813

johnsimons opened this issue Nov 29, 2013 · 0 comments
Labels
Milestone

Comments

@johnsimons
Copy link
Member

Causing ObjectDisposedException

On a busy system with messages in the queue if you issue a shutdown of the host the following are raised:

2013-11-29 14:59:47,254 [11] INFO  NServiceBus.Unicast.UnicastBus [(null)] <(null)> - Initiating shutdown.
2013-11-29 14:59:47,303 [13] INFO  NServiceBus.Satellites.SatelliteLauncher [(null)] <(null)> - Stopped 3/3 'NServiceBus.SecondLevelRetries.SecondLevelRetriesProcessor, NServiceBus.Core, Version=4.3.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c' satellite
2013-11-29 14:59:47,393 [63] ERROR NServiceBus.Unicast.Transport.TransportReceiver [(null)] <(null)> - Failed raising 'finished message processing' event.
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'PipelineFactory'.
   at NServiceBus.Pipeline.PipelineFactory.ThrowIfDisposed()
   at NServiceBus.Pipeline.PipelineFactory.CompletePhysicalMessagePipelineContext() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\PipelineFactory.cs:line 52
   at NServiceBus.Unicast.UnicastBus.TransportFinishedMessageProcessing(Object sender, FinishedMessageProcessingEventArgs e) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\UnicastBus.cs:line 1030
   at NServiceBus.Unicast.Transport.TransportReceiver.OnFinishedMessageProcessing(TransportMessage msg) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Transport\TransportReceiver.cs:line 435
2013-11-29 14:59:47,428 [11] INFO  NServiceBus.Satellites.SatelliteLauncher [(null)] <(null)> - Stopped 1/3 'NServiceBus.Timeout.Hosting.Windows.TimeoutMessageProcessor, NServiceBus.Core, Version=4.3.0.0, Culture=neutral, PublicKeyToken=9fc386479f8a226c' satellite
2013-11-29 14:59:47,446 [63] INFO  NServiceBus.Unicast.Transport.TransportReceiver [(null)] <(null)> - Failed to process message
System.AggregateException: One or more errors occurred. ---> System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'BehaviorContextStacker'.
   at NServiceBus.Pipeline.BehaviorContextStacker.ThrowIfDisposed()
   at NServiceBus.Pipeline.BehaviorContextStacker.Pop() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorContextStacker.cs:line 31
   at NServiceBus.Pipeline.PipelineFactory.Execute[T](BehaviorChain`1 pipelineAction, T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\PipelineFactory.cs:line 169
   at NServiceBus.Pipeline.PipelineFactory.InvokeLogicalMessagePipeline(LogicalMessage message) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\PipelineFactory.cs:line 68
   at NServiceBus.Unicast.Messages.ExtractLogicalMessagesBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Messages\ExtractLogicalMessagesBehavior.cs:line 67
   at NServiceBus.Pipeline.BehaviorChain`1.InvokeNext(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Pipeline.BehaviorChain`1.<>c__DisplayClass1.<InvokeNext>b__0() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Unicast.Behaviors.RaiseMessageReceivedBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Behaviors\RaiseMessageReceivedBehavior.cs:line 15
   at NServiceBus.Pipeline.BehaviorChain`1.InvokeNext(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Pipeline.BehaviorChain`1.<>c__DisplayClass1.<InvokeNext>b__0() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.MessageMutator.ApplyIncomingTransportMessageMutatorsBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\MessageMutator\ApplyIncomingTransportMessageMutatorsBehavior.cs:line 18
   at NServiceBus.Pipeline.BehaviorChain`1.InvokeNext(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Pipeline.BehaviorChain`1.<>c__DisplayClass1.<InvokeNext>b__0() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.UnitOfWork.UnitOfWorkBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\UnitOfWork\UnitOfWorkBehavior.cs:line 20
   --- End of inner exception stack trace ---
   at NServiceBus.UnitOfWork.UnitOfWorkBehavior.AppendEndExceptionsAndRethrow(Exception parentException) in c:\Projects\NServiceBus\src\NServiceBus.Core\UnitOfWork\UnitOfWorkBehavior.cs:line 51
   at NServiceBus.UnitOfWork.UnitOfWorkBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\UnitOfWork\UnitOfWorkBehavior.cs:line 29
   at NServiceBus.Pipeline.BehaviorChain`1.InvokeNext(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Pipeline.BehaviorChain`1.<>c__DisplayClass1.<InvokeNext>b__0() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Unicast.Behaviors.ForwardBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Behaviors\ForwardBehavior.cs:line 21
   at NServiceBus.Pipeline.BehaviorChain`1.InvokeNext(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Pipeline.BehaviorChain`1.<>c__DisplayClass1.<InvokeNext>b__0() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Audit.AuditBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\Audit\AuditBehavior.cs:line 13
   at NServiceBus.Pipeline.BehaviorChain`1.InvokeNext(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Pipeline.BehaviorChain`1.<>c__DisplayClass1.<InvokeNext>b__0() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Unicast.Behaviors.ImpersonateSenderBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Behaviors\ImpersonateSenderBehavior.cs:line 33
   at NServiceBus.Pipeline.BehaviorChain`1.InvokeNext(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Pipeline.BehaviorChain`1.<>c__DisplayClass1.<InvokeNext>b__0() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Unicast.Behaviors.MessageHandlingLoggingBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Behaviors\MessageHandlingLoggingBehavior.cs:line 21
   at NServiceBus.Pipeline.BehaviorChain`1.InvokeNext(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Pipeline.BehaviorChain`1.<>c__DisplayClass1.<InvokeNext>b__0() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Unicast.Behaviors.ChildContainerBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Behaviors\ChildContainerBehavior.cs:line 14
   at NServiceBus.Pipeline.BehaviorChain`1.InvokeNext(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Pipeline.BehaviorChain`1.Invoke(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 15
   at NServiceBus.Pipeline.PipelineFactory.InvokeReceivePhysicalMessagePipeline() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\PipelineFactory.cs:line 48
   at NServiceBus.Unicast.UnicastBus.TransportMessageReceived(Object sender, TransportMessageReceivedEventArgs e) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\UnicastBus.cs:line 1015
   at NServiceBus.Unicast.Transport.TransportReceiver.OnTransportMessageReceived(TransportMessage msg) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Transport\TransportReceiver.cs:line 453   at NServiceBus.Unicast.Transport.TransportReceiver.ProcessMessage(TransportMessage message) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Transport\TransportReceiver.cs:line 382
   at NServiceBus.Unicast.Transport.TransportReceiver.TryProcess(TransportMessage message) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Transport\TransportReceiver.cs:line 258
   at NServiceBus.Transports.Msmq.MsmqDequeueStrategy.ProcessMessage(TransportMessage message) in c:\Projects\NServiceBus\src\NServiceBus.Core\Transports\Msmq\MsmqDequeueStrategy.cs:line 288
   at NServiceBus.Transports.Msmq.MsmqDequeueStrategy.Action() in c:\Projects\NServiceBus\src\NServiceBus.Core\Transports\Msmq\MsmqDequeueStrategy.cs:line 239
---> (Inner Exception #0) System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'BehaviorContextStacker'.
   at NServiceBus.Pipeline.BehaviorContextStacker.ThrowIfDisposed()
   at NServiceBus.Pipeline.BehaviorContextStacker.Pop() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorContextStacker.cs:line 31
   at NServiceBus.Pipeline.PipelineFactory.Execute[T](BehaviorChain`1 pipelineAction, T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\PipelineFactory.cs:line 169
   at NServiceBus.Pipeline.PipelineFactory.InvokeLogicalMessagePipeline(LogicalMessage message) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\PipelineFactory.cs:line 68
   at NServiceBus.Unicast.Messages.ExtractLogicalMessagesBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Messages\ExtractLogicalMessagesBehavior.cs:line 67
   at NServiceBus.Pipeline.BehaviorChain`1.InvokeNext(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Pipeline.BehaviorChain`1.<>c__DisplayClass1.<InvokeNext>b__0() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Unicast.Behaviors.RaiseMessageReceivedBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Behaviors\RaiseMessageReceivedBehavior.cs:line 15
   at NServiceBus.Pipeline.BehaviorChain`1.InvokeNext(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Pipeline.BehaviorChain`1.<>c__DisplayClass1.<InvokeNext>b__0() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.MessageMutator.ApplyIncomingTransportMessageMutatorsBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\MessageMutator\ApplyIncomingTransportMessageMutatorsBehavior.cs:line 18
   at NServiceBus.Pipeline.BehaviorChain`1.InvokeNext(T context) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.Pipeline.BehaviorChain`1.<>c__DisplayClass1.<InvokeNext>b__0() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 28
   at NServiceBus.UnitOfWork.UnitOfWorkBehavior.Invoke(ReceivePhysicalMessageContext context, Action next) in c:\Projects\NServiceBus\src\NServiceBus.Core\UnitOfWork\UnitOfWorkBehavior.cs:line 20<---

---> (Inner Exception #1) System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'PipelineFactory'.
   at NServiceBus.Pipeline.PipelineFactory.ThrowIfDisposed()
   at NServiceBus.Pipeline.PipelineFactory.get_CurrentContext() in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\PipelineFactory.cs:line 134
   at NServiceBus.Unicast.UnicastBus.get_CurrentMessageContext() in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\UnicastBus.cs:line 903
   at NServiceBus.Unicast.Monitoring.ProcessingStatistics.End(Exception ex) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Monitoring\ProcessingStatistics.cs:line 36
   at NServiceBus.UnitOfWork.UnitOfWorkBehavior.AppendEndExceptionsAndRethrow(Exception parentException) in c:\Projects\NServiceBus\src\NServiceBus.Core\UnitOfWork\UnitOfWorkBehavior.cs:line 44<---

2013-11-29 14:59:47,761 [21] ERROR NServiceBus.Unicast.Transport.TransportReceiver [(null)] <(null)> - Failed raising 'started message processing' event.
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'PipelineFactory'.
   at NServiceBus.Pipeline.PipelineFactory.ThrowIfDisposed()
   at NServiceBus.Pipeline.PipelineFactory.PreparePhysicalMessagePipelineContext(TransportMessage message, Boolean messageHandlingDisabled) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\PipelineFactory.cs:line 22
   at NServiceBus.Unicast.UnicastBus.TransportStartedMessageProcessing(Object sender, StartedMessageProcessingEventArgs e) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\UnicastBus.cs:line 999
   at NServiceBus.Unicast.Transport.TransportReceiver.OnStartedMessageProcessing(TransportMessage msg) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Transport\TransportReceiver.cs:line 417
2013-11-29 14:59:47,779 [24] ERROR NServiceBus.Unicast.Transport.TransportReceiver [(null)] <(null)> - Failed raising 'started message processing' event.
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'PipelineFactory'.
   at NServiceBus.Pipeline.PipelineFactory.ThrowIfDisposed()
   at NServiceBus.Pipeline.PipelineFactory.PreparePhysicalMessagePipelineContext(TransportMessage message, Boolean messageHandlingDisabled) in c:\Projects\NServiceBus\src\NServiceBus.Core\Pipeline\PipelineFactory.cs:line 22
   at NServiceBus.Unicast.UnicastBus.TransportStartedMessageProcessing(Object sender, StartedMessageProcessingEventArgs e) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\UnicastBus.cs:line 999
   at NServiceBus.Unicast.Transport.TransportReceiver.OnStartedMessageProcessing(TransportMessage msg) in c:\Projects\NServiceBus\src\NServiceBus.Core\Unicast\Transport\TransportReceiver.cs:line 417
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants