-
Notifications
You must be signed in to change notification settings - Fork 2k
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
AMQP: ReactorExecutor stops due to IllegalStateException after application runs for multiple days #15926
Comments
Thanks for reporting this reliability issue in Event Hubs AMQP layer. @conniey can you please investigate? |
Is a normal part of closing a proton-j reactor connection. I'll make note to not change that to informational. |
Thanks for the fast replies! The application does not recover from this exception. It seems to do a retry but it doesn't work somehow. We are also using EventHubConsumerAsyncClient 's More log:
|
This looks like an issue that @srnagar and @YijunXieMS have resolved which should be fixed in our October release. Can you confirm @YijunXieMS ? |
|
|
Looks like switching to |
Usage of EventProcessorClient, you can refer to the following links: |
Add new property for MetricSpecification (Azure#15926)
We have an application that consumes Events from an Iot Hub. The application works fine for some days and then stops consuming incoming events. The application enters a state where it simply does nothing anymore, because it doesn't fetch events from the IotHub.
The moment the application stops to work can be tracked down to an
IllegalStateException
that is catched incom.azure.core.amqp.implementation.ReactorExecutor
. We are not able to identify the cause of this though.Question: What are reasons this exception may occur and how can I battle them or at least continue to fetch Events from Iot Hub?
Setup :
We consume the events like the following:
The following exception appears after the application runs for multiple days:
scheduleCompletePendingTasks - exception occurred while processing events. java.lang.IllegalStateException org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:112) org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) com.azure.core.amqp.implementation.ReactorExecutor.lambda$scheduleCompletePendingTasks$0(ReactorExecutor.java:156) reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:50) reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:27) java.base/java.util.concurrent.FutureTask.run(Unknown Source) java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base/java.lang.Thread.run(Unknown Source)Cause: null org.apache.qpid.proton.engine.impl.EndpointImpl.decref(EndpointImpl.java:54) org.apache.qpid.proton.engine.impl.TransportImpl.unbind(TransportImpl.java:315) com.azure.core.amqp.implementation.handler.ConnectionHandler.onTransportError(ConnectionHandler.java:159) org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:191) org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108) org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324) org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291) com.azure.core.amqp.implementation.ReactorExecutor.lambda$scheduleCompletePendingTasks$0(ReactorExecutor.java:156) reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:50) reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:27) java.base/java.util.concurrent.FutureTask.run(Unknown Source) java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) java.base/java.lang.Thread.run(Unknown Source)]
Followed by:
Stopping the reactor because thread was interrupted or the reactor has no more events to process.
The text was updated successfully, but these errors were encountered: