[
https://issues.apache.org/jira/browse/QPID-7368?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15594944#comment-15594944
]
Lorenz Quack commented on QPID-7368:
------------------------------------
Hi Alex,
Two comments:
First, it does not seem right to me that
{{NetworkConnectionScheduler#cancelAcceptingSocketAsync}} calls
{{SelectorThread#cancelAcceptingSocket}} (note the absence of Async).
I think {{SelectorThread#cancelAcceptingSocket}} should be renamed to
{{SelectorThread#cancelAcceptingSocketAsync}}.
Then you can choose to either
** call {{SelectorThread#cancelAcceptingSocketAsync}} from
{{NetworkConnectionScheduler#cancelAcceptingSocketAsync}} or
** add a {{SelectorThread#cancelAcceptingSocket}} that does the get on the
future and the exception handling and call that from
{{NetworkConnectionScheduler#cancelAcceptingSocket}} and get rid of
{{NetworkConnectionScheduler#cancelAcceptingSocketAsync}}.
I would favour the second option to have the symmetry at the lowest level. I
think that is our common pattern.
Second, I think we should materialize the timeout instead of getting it from
the SystemProperties each time.
> CancelledKeyException from accepting socket during Broker shutdown
> ------------------------------------------------------------------
>
> Key: QPID-7368
> URL: https://issues.apache.org/jira/browse/QPID-7368
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker
> Reporter: Keith Wall
> Assignee: Lorenz Quack
> Fix For: qpid-java-6.1
>
> Attachments: 0001-QPID-7368-Handle-cancelled-selected-key.patch,
> 0001-QPID-7368-Wait-for-cancellation-of-accept-selection-.patch,
> TEST-org.apache.qpid.transport.ProtocolNegotiationTest.testWrongProtocolHeaderSent_BrokerRespondsWithSupportedProtocol.txt
>
>
> We saw the following test failure on trunk whilst the test was shutting down
> a Broker.
> https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-Java-Java-Test-JDK1.8/lastCompletedBuild/testReport/org.apache.qpid.transport/ProtocolNegotiationTest/testWrongProtocolHeaderSent_BrokerRespondsWithSupportedProtocol/
> Thread terminated due to uncaught exception
> {noformat}
> java.nio.channels.CancelledKeyException
> at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:73)
> at sun.nio.ch.SelectionKeyImpl.readyOps(SelectionKeyImpl.java:87)
> at java.nio.channels.SelectionKey.isAcceptable(SelectionKey.java:360)
> at
> org.apache.qpid.server.transport.SelectorThread$SelectionTask.processSelectionKeys(SelectorThread.java:167)
> at
> org.apache.qpid.server.transport.SelectorThread$SelectionTask.performSelect(SelectorThread.java:305)
> at
> org.apache.qpid.server.transport.SelectorThread$SelectionTask.run(SelectorThread.java:87)
> at
> org.apache.qpid.server.transport.SelectorThread.run(SelectorThread.java:462)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> {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]