-
Notifications
You must be signed in to change notification settings - Fork 166
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Appveyor: failing tests #257
Comments
I'm hoping the tests will be passing after f2ec410 and once #260 is solved. @BergWerkGIS my main question for you is not why the tests are failing but if you have any idea why appveyor does not show the details of the failures (something to do with stderr/stdout?)? |
@BergWerkGIS issue created for @FeodorFitsner at http://help.appveyor.com/discussions/problems/343-logs-from-nodejs-commands-are-missing-some-output asking for some help in understanding stderr/stdout/missing errors. |
Is this error output correct? |
No. It's both missing output for specific tests and missing the final report for how many passes.
|
I think there might maybe be a problem with I've created a minimal test case here:
https://github.com/BergWerkGIS/AppVeyorOutput/blob/master/app.js Output on my local (Windows) machine (level Output on AppVeyor. Whereas manual redirecting |
Looks like some sort of racing condition while capturing stdout and stderr. I will do a small sample as well to see where the source of the issue. |
OK, it seems the problem is in the way This simple example:
gives the following: |
Have to figure out another way of calling external process with more accurate collecting of STDOUT/STDERR. |
@FeodorFitsner @springmeyer When redirecting I suggest, that we use that method until Feodor figures out a way to have all of the messages displayed in the right order. |
I've tried several things with the C# snippet Feodor provided, but I don't think we will be able to have the messages displayed in the right order. My theory in code and picture:
My conclusions: We have to stick with We could submit a patch to |
Good news! I've re-implemented process launching using p/invoke. Now both StdOut and StdErr are collected in sync and in a real time. I'm going to deploy the update in a few hours. Will let you know when finished so you can run your tests. |
Awesome @FeodorFitsner - thank you. Looking forward to testing when it's deployed! |
Quick update. The new method is working. It was high CPU usage first, but I managed to fix that. I did test deployment to production. Results looked promising: https://ci.appveyor.com/project/appvyr/appveyoroutput, but I didn't like log lagging (notice build time increased to 2:50). I'm rolling back for now and will be optimizing log pushing tomorrow. |
Thank you for the update. Keen to test https://ci.appveyor.com/project/springmeyer/node-mapnik tomorrow if you deploy again. |
@springmeyer could it be that there is something wrong with |
Sorry, of course they are not the same. |
Did some further digging. Tested with node-srs and With the code Feodor provided. |
@FeodorFitsner - any update here? Have you deployed the code you mentioned at #257 (comment) yet? I'm still seeing 1) lack of final mocha reporting (no |
I'm sorry guys, it's been a busy week! But I'm going to continue working on it tomorrow. Hopefully, will deploy update till the end of this week. |
@springmeyer @BergWerkGIS wow...I've been messing with that issue for days, but finally got promising results! :) My final solution is collecting child process StdOut and StdErr through the same named pipe. Pipe is the only way to go as it allows async reading. I tried collecting through the file, but it doesn't allow async reading, so you have to poll the file stream. Polling is bad and takes a lot of CPU. However, there was an issue in Node.js with non-blocking StdErr (nodejs/node-v0.x-archive#3584) which was fixed in this pull request nodejs/node-v0.x-archive#7196 and finally landed in Node.js v0.11.13 (nodejs/node-v0.x-archive@20176a9) With latest Node.js v0.11.13 and AppVeyor update that I'm going to deploy today to build workers image the output from test application https://ci.appveyor.com/project/appvyr/appveyoroutput will look as expected! Unfortunately, Node v0.10.x and below will be giving you garbled output. |
Wow, incredible work @FeodorFitsner and thank you for the update. I'm working on bringing many of our node.js modules to 0.11.x so I'll be keen to test soon. |
AppVeyor with updated StdOut/StdErr redirect deployed! This is how it looks now with update and Node v0.11.13: https://ci.appveyor.com/project/appvyr/appveyoroutput/build/1.0.25 Just to compare, this is how it was before update: https://ci.appveyor.com/project/appvyr/appveyoroutput/build/1.0.24 Test app: https://github.com/FeodorFitsner/AppVeyorOutput/blob/master/app.js |
@FeodorFitsner - thank you. I can confirm that your fix appears to be working well with node v0.11.x. I chose one simple module to port to node v.0.11.x, which is node-srs. The Which shows only stderr. But with node v0.11.x things look correct. For example, here is the tail end of the So, I'm going to close this issue! Thank you for fixing this @FeodorFitsner and especially for figuring out the node.js subtlety on windows. |
update here: got node-mapnik running on v0.11.x and confirmed that now appeveyor shows the logs correctly! This finally uncovered the mysterious hidden error preventing publishing which is now tracked at #277 |
@BergWerkGIS - I see there are two failing tests currently on the appveyor builds (https://ci.appveyor.com/project/springmeyer/node-mapnik/build/1.0.27/job/fxhcup8w5a45mvel#L552). These are surely my fault and responsibility to fix. However, I can't see the actual errors. Do you have any idea why they are not showing up?
The text was updated successfully, but these errors were encountered: