[
https://issues.apache.org/jira/browse/QPID-6503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14504997#comment-14504997
]
Keith Wall commented on QPID-6503:
----------------------------------
I think spawning a thread to await the future is the wrong approach.
I think this defect highlights a deeper problem - the relationship between
server.Broker/BrokerAdapter for organising a shutdown due to errored children
is overly complex. We can simplify the code; the o.a.q.s.Broker could be
responsible for checking the configured object hierarchy for errors once open
call has completed. If it finds errors, then it can cause shutdown. This
would eliminate the need for call back via BrokerShutdownProvider and avoid the
task executor awaiting for itself.
> IllegalStateException can be reported on Broker shutdown due to an attempt to
> submit a configuration task into shutdown executor service
> ----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: QPID-6503
> URL: https://issues.apache.org/jira/browse/QPID-6503
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Reporter: Alex Rudyy
> Assignee: Keith Wall
> Fix For: 6.0 [Java]
>
>
> Here are the stack traces for the issue reported whilst running the system
> tests
> {noformat}
> Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.074 sec -
> in org.apache.qpid.transport.MaxFrameSizeTest
> Thread terminated due to uncaught exceptionjava.lang.IllegalStateException:
> Task executor is not in ACTIVE state
> at
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.checkState(TaskExecutorImpl.java:308)
> at
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.submit(TaskExecutorImpl.java:136)
> at
> org.apache.qpid.server.model.AbstractConfiguredObject.doOnConfigThread(AbstractConfiguredObject.java:498)
> at
> org.apache.qpid.server.model.AbstractConfiguredObject.closeAsync(AbstractConfiguredObject.java:644)
> at org.apache.qpid.server.Broker.shutdown(Broker.java:113)
> at org.apache.qpid.server.Broker.shutdown(Broker.java:97)
> at org.apache.qpid.server.Broker$ShutdownService$1.run(Broker.java:373)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:360)
> at org.apache.qpid.server.Broker$ShutdownService.run(Broker.java:367)
> at java.lang.Thread.run(Thread.java:745)
> {noformat}
> Another test
> {noformat}
> Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec -
> in org.apache.qpid.client.SyncPublishTest
> Thread terminated due to uncaught exceptionjava.lang.IllegalStateException:
> Task executor is not in ACTIVE state
> at
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.checkState(TaskExecutorImpl.java:308)
> at
> org.apache.qpid.server.configuration.updater.TaskExecutorImpl.submit(TaskExecutorImpl.java:136)
> at
> org.apache.qpid.server.model.AbstractConfiguredObject.doOnConfigThread(AbstractConfiguredObject.java:498)
> at
> org.apache.qpid.server.model.AbstractConfiguredObject.closeAsync(AbstractConfiguredObject.java:644)
> at org.apache.qpid.server.Broker.shutdown(Broker.java:113)
> at org.apache.qpid.server.Broker.shutdown(Broker.java:97)
> at org.apache.qpid.server.Broker$ShutdownService$1.run(Broker.java:373)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:356)
> at org.apache.qpid.server.Broker$ShutdownService.run(Broker.java:367)
> at java.lang.Thread.run(Thread.java:724)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]