[ https://issues.apache.org/jira/browse/PROTON-760?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Justin Ross updated PROTON-760: ------------------------------- Component/s: javascript-binding > 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 > Components: javascript-binding > 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)