Fraser Adams created PROTON-760:
-----------------------------------
Summary: Improve the JavaScript binding's internal Event loop and
add additional tests
Key: PROTON-760
URL: https://issues.apache.org/jira/browse/PROTON-760
Project: Qpid Proton
Issue Type: Improvement
Reporter: Fraser Adams
Improve the JavaScript binding's internal Event loop and add additional tests.
The addition of JavaScript soak/performance tests msgr-send.js and
msgr-recv.js, which mirror tests of the same name in C and Python flagged up a
few edge cases that caused sporadic failures. The problems seem to be related
to the ws WebSocket library directly calling some callbacks rather than posting
to the JavaScript internal Event queue. The effect of calling directly mean
that the main message handler and the close handler could actually get called
*concurrently* which is clearly a bad thing and somewhat undexpected in
JavaScript..... The improvements here add a number of guard tests and introduce
a setTimeout that allows the "real" close handler to be deferred by posting it
onto the Event queue.
msgr-send and msgr-recv have been run with counts of several million messages
and also with message sizes of up to 2MB and everything seems stable now.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)