[ 
https://issues.apache.org/jira/browse/PROTON-1017?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robbie Gemmell updated PROTON-1017:
-----------------------------------
    Attachment: PROTON-1017-WIP.patch

Attaching a WIP patch.

Isn't complete as its a fairly annoying situation, where the obvious initial 
fix introduce scope of other problems, the fixes to which introduce other 
problems, etc.

It does pass all the existing tests, and the new one committed previously, and 
a further new one in the python suite. The latter shows that proton-c doesn't 
handle the situation well either (whereas proton-j sent the wrong initial Begin 
response, proton-c looks to send no response at all) and presents similar 
issues with fixes.

> Engine does not handle UNINITALIZED/CLOSED sessions
> ---------------------------------------------------
>
>                 Key: PROTON-1017
>                 URL: https://issues.apache.org/jira/browse/PROTON-1017
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-j
>    Affects Versions: 0.10
>            Reporter: Bozo Dragojevic
>         Attachments: PROTON-1017-WIP.patch
>
>
> If the initiator sends a BEGIN and END frame the receiving engine processed 
> the END frame before generating the outgoing BEGIN frame and it has no notion 
> of remoteChannel number anymore.
> {noformat}
> [2114881339:0] -> Open{ containerId='', hostname='', maxFrameSize=4294967295, 
> channelMax=65535, idleTimeOut=null, outgoingLocales=null, 
> incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [1472159463:0] <- Open{ containerId='', hostname='', maxFrameSize=4294967295, 
> channelMax=65535, idleTimeOut=null, outgoingLocales=null, 
> incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [1472159463:0] -> Open{ containerId='', hostname='', maxFrameSize=4294967295, 
> channelMax=65535, idleTimeOut=null, outgoingLocales=null, 
> incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [2114881339:0] <- Open{ containerId='', hostname='', maxFrameSize=4294967295, 
> channelMax=65535, idleTimeOut=null, outgoingLocales=null, 
> incomingLocales=null, offeredCapabilities=null, desiredCapabilities=null, 
> properties=null}
> [2114881339:0] -> Begin{remoteChannel=null, nextOutgoingId=1, 
> incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [2114881339:0] -> End{error=null}
> [1472159463:0] <- Begin{remoteChannel=null, nextOutgoingId=1, 
> incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [1472159463:0] <- End{error=null}
> [1472159463:0] -> Begin{remoteChannel=65535, nextOutgoingId=1, 
> incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> [1472159463:0] -> End{error=null}
> [2114881339:0] <- Begin{remoteChannel=65535, nextOutgoingId=1, 
> incomingWindow=2147483647, outgoingWindow=2147483647, handleMax=65535, 
> offeredCapabilities=null, desiredCapabilities=null, properties=null}
> {noformat}
> test dies with
> {noformat}
> java.lang.NullPointerException: uncorrelated channel: 65535
>       at 
> org.apache.qpid.proton.engine.impl.TransportImpl.handleBegin(TransportImpl.java:1074)
>       at 
> org.apache.qpid.proton.engine.impl.TransportImpl.handleBegin(TransportImpl.java:1)
>       at org.apache.qpid.proton.amqp.transport.Begin.invoke(Begin.java:144)
>       at 
> org.apache.qpid.proton.engine.impl.TransportImpl.handleFrame(TransportImpl.java:1304)
>       at 
> org.apache.qpid.proton.engine.impl.FrameParser.input(FrameParser.java:419)
>       at 
> org.apache.qpid.proton.engine.impl.FrameParser.process(FrameParser.java:528)
>       at 
> org.apache.qpid.proton.engine.impl.TransportImpl.process(TransportImpl.java:1415)
>       at 
> org.apache.qpid.proton.engine.impl.TransportImpl.processInput(TransportImpl.java:1373)
>       at 
> org.apache.qpid.proton.systemtests.EngineTestBase.pumpServerToClient(EngineTestBase.java:73)
>       at 
> org.apache.qpid.proton.systemtests.ProtonEngineExampleTest.testPROTON_TBD(ProtonEngineExampleTest.java:350)
> ...
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to