[ 
https://issues.apache.org/jira/browse/VYSPER-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13262896#comment-13262896
 ] 

Paul Clare commented on VYSPER-309:
-----------------------------------

Just to clarify a bit.

What appears to be happening is that the inbound http conn (rid=003) is being 
used to send delayed stanzas (rids=001, 002) back to the client BEFORE the 
BoshHandler gets a change to extract the inbound stanza and place it in the 
relay for processing and as a result it gets dropped.

They way the code is structured it looks like it will happen every time a merge 
is done.

BoshHandler.process {

  session.insertRequest(br) {
     BoshBackendSessionContext.insertRequest  (003) {
        // merge (001, 002)
        // write
        // remove 003 from window
     }
   }
       ... ... 

  processSession(session, br) {
    current rid (003) is not found in request window
  } 
} 

So in situations where the inbound conn is being used to write a response 
unrelated to the request (which is pretty much the deifinition of bosh) checks 
need to be in place that the inbound stanza has actually been handled prior to 
any writes which require the conn to be released from the window. 

                
> BOSH plugin does not always send or recieve messages from client
> ----------------------------------------------------------------
>
>                 Key: VYSPER-309
>                 URL: https://issues.apache.org/jira/browse/VYSPER-309
>             Project: VYSPER
>          Issue Type: Bug
>          Components: BOSH
>    Affects Versions: 0.7
>         Environment: Tomcat 7.0.25 / Tomcat 7.0.27 / Jetty 8.1.2
>            Reporter: Stig Runar Vangen
>
> The BOSH extension does not always return a result from a request. I saw the 
> same behavior using both the Jetty Continuation API's and the Servlet 3.0 
> API's. The result of this is that Emite (http://code.google.com/p/emite/) 
> never finished logging in. I also tried using Pidgin (http://www.pidgin.im/), 
> which has BOSH support if you enable it. Using Pidgin I was able to log in 
> successfully, but chatting was a bit problematic. Sending a message to the 
> server wasn't noticed by the server using an already open async request. I 
> know the server never received the message as I had enabled both console 
> logging of all BOSH messages as well as database logging of all chat 
> messages. When Piding lost the connection and created a new one however, the 
> message was resent, and the message got through. I then also received pending 
> messages from others.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to