Hi Rafael, My answers to your questions are below...
On Fri, Apr 17, 2015 at 8:33 AM Rafael Schloming-3 [via Qpid] < ml-node+s2158936n7623117...@n2.nabble.com> wrote: > On Fri, Apr 17, 2015 at 8:09 AM, Adam Wynne <[hidden email] > <http:///user/SendEmail.jtp?type=node&node=7623117&i=0>> wrote: > > > Sorry for the cross-post but I didn't get any hits on the user list and > I > > now > > think this could be a bug. > > > > I think I am seeing a race condition with Messenger on Android only: > > > > When I do the typical put/send sequence in a Thread started from an > Android > > Activity, the message is not received by a subscribed peer. If I kill > the > > Activity, the peer will complain that the connection is broken. So it > > seems that the connection is being made but the data is not sent. Here > is > > an example code snippet: > > > > Messenger messenger = Messenger.Factory.create(); > > // do other things like create a message > > messenger.put(msg) > > // Thread.sleep(200) > > messenger.send() > > > > However when I uncomment the sleep statement above, the message is > > received without any problem. The message is also received if I > attempt > > to debug to see what is happening in put(). > > > > I noticed that put() does not simply add the message to a queue, it also > > uses nio methods to do some encoding of the message. I'm wondering if > > since it is not blocking, is there some encoding method happening while > the > > send() is being processed, causing the message to be lost. > > > > We also noticed that there is a big CPU usage (up to 40%) spike during > the > > put/send process, which seems extreme for just a tcp send. > > > > Hi Adam, > > Apologies in advance for the barrage of questions, but some additional > information would be helpful. > > What version of the code are you working with? > I first tried with 0.9, then I built the latest from source and had the same results each time > Is your thread a long running thread or does it terminate shortly after > the > code you have posted? > The thread is long running > What exactly is receiving the message at the other end of the connection? > I have tried 2 subscribers with the same results: one in android and one on a macbook. I get the same results on mac. > Does a similar thread arrangement reproduce the issue outside of Android, > and if so would it be possible to post a reproducer? > No, I couldn't reproduce in a standard JVM. Do you want me to post the android app? > > Thanks, > > --Rafael > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://qpid.2158936.n2.nabble.com/Messenger-race-condition-on-Android-tp7623116p7623117.html > To unsubscribe from Messenger race condition on Android?, click here > <http://qpid.2158936.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=7623116&code=YXd5bm5lQGdtYWlsLmNvbXw3NjIzMTE2fDkyMjA4OTk2MQ==> > . > NAML > <http://qpid.2158936.n2.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > -- View this message in context: http://qpid.2158936.n2.nabble.com/Messenger-race-condition-on-Android-tp7623116p7623203.html Sent from the Apache Qpid Proton mailing list archive at Nabble.com.