While submitting a set of commits for the http palette I started receiving the following error while the test suite ran:
RangeError: Maximum call stack size exceeded
at tt (/home/travis/build/rajsite/VireoSDK/dist/vireo.js:7:79054)
at st (/home/travis/build/rajsite/VireoSDK/dist/vireo.js:7:74524)
at Ft (/home/travis/build/rajsite/VireoSDK/dist/vireo.js:7:85190)
at Ft (/home/travis/build/rajsite/VireoSDK/dist/vireo.js:7:85838)
at Ft (/home/travis/build/rajsite/VireoSDK/dist/vireo.js:7:85838)
at Ft (/home/travis/build/rajsite/VireoSDK/dist/vireo.js:7:85838)
at Ft (/home/travis/build/rajsite/VireoSDK/dist/vireo.js:7:85838)
at Ft (/home/travis/build/rajsite/VireoSDK/dist/vireo.js:7:85838)
at Ft (/home/travis/build/rajsite/VireoSDK/dist/vireo.js:7:85838)
at Ft (/home/travis/build/rajsite/VireoSDK/dist/vireo.js:7:85838)
make: *** [testjs] Error 7
See build results or attached 1.firstoccurence.txt
The error occurred during execution of the Vireo VTR-based test suite using the node.js runner. The strange thing is that none of the commits had code that should be exercise by the VTR-based test suite. Only the karma test suite runs HTTP based tests.
As an aside it is also strange that the test resulted in a false positive and did not fail. As Travis reports The command "make testjs" exited with 0.
Enabling test names allows one to see that the change is resulting in failures for JS tests that are undergoing their second run. See build result or attached 2.withtestnames.txt
Disabling the test that appears to fail does not seem to prevent the failure but instead delay how long until the Maximum call stack exceeded error occurs.
I was able to bisect the changes down to applying changes to HTTPClient.cpp on top of incoming at the time but I was not able to identify a specific subportion of the file resulting in the failure.
It was observed that changing the optimization level to -O2 prevented the same failure (as well as -g4 and -O1). However, PhantomJS starts to get errors at this time. See build result or attached 3.withopt2flag.txt.
The PhantomJS failures seem to be independent of this set of changes as changing the flag to -g4 on incoming at the time also shows failures. See build result or attached 4.incomingwithg4.txt
However after some changes were submitted to incoming, no test failures continued to occur when trying to integrate my changes. We have seen this behavior once before and the same thing (some new commits going in) also prevented the failures from continuing to occur.
The following discussion on the emscripten mailing list make me believe the problem is possibly related to optimization passes resulting in functions with lots of local variables which is causing available stack space to be consumed too quickly: https://groups.google.com/forum/#!topic/emscripten-discuss/qHnUyzF1eAY
Unfortunately we have not retrieved the files that are generated on Travis or have been able to reproduce the behavior locally to try and reproduce the behavior.
As additional changes went in and the code is no longer in a state that causes failures I'm closing this issue.