[ 
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: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to