Repository navigation
[PRIORITY] Persistent failures on Windows #1005
Description
Activity
ping @iojs/platform-windows, this needs fairly urgent attention from anyone capable of digging in and figuring these out.
Two of these have been fixed by #1008
Last complete
test-simplerun I can find is: https://jenkins-iojs.nodesource.com/job/iojs+any-pr+multi/nodes=iojs-win2012r2/54/console which is back at January 12th. i.e. so it seems that we've been happily seeing passes in CI for Windows builds since we've been "releasing" and none of us have noticed that it's been mainlytest-messagethat's been running. This is entirely because it's been assumed thatvcbuild.bat ... test-simple test-messageis supposed to bundle both of them in to one, but unfortunately vcbuild.bat never had that properly working anyway. Fixed now in #998.That means two things:
- We're much further behind on Windows quality than we thought
- These fixes probably aren't quite as urgent as we thought because some of these may be have been broken for longer than just 1.4.1 but we haven't had direct bug reports about them.
/cc @iojs/build
I had limited success in reproducing many of these. Running them locally on a Windows machine and even running them on the exact same server that is giving us the failures via Jenkins, I can only make either 4 or 3 tests fail. The block of timeouts seem to be somehow Jenkins-specific.
Can other Windows users verify against 1.v HEAD and report back?
vcbuild x64 release nosign test-simple(addtest-messageat the end to do exactly the same as Jenkins).- addedwindowsIssues and PRs related to the Windows platform.Issues and PRs related to the Windows platform.
on Mar 1, 2015 I get these failures: https://github.com/proxy/gist.github.com/domenic/ad191da152fc6632fa32 Unsure what to make of them compared to yours above.
I guess the first one, maybe others, is due to not having the openssl binary installed. I'll go check my prereqs and report back if anything else changes.
Install git bash and you'll get what you need. Google "git windows" and download and install that one.
Yeah I have Git bash but when I try to run .bat files from within it all hell breaks loose.
You should be able to run vcbuild.bat from cmd.exe but git bash comes with curl and other Unix utils that can go in your PATH. I think that's an install option though.
OK yeah, getting the same failures minus the first one (the openssl one).
I have 32-bit Windows at home so I ran
vcbuild release nosign test-simpleagainst b72fa03, The result is similar to @domenic's: https://github.com/proxy/gist.github.com/seishun/ebba8198423259444892After deleting tmp.0 manually I re-ran parallel/test-fs-access and it passed.
right, sorry, I'm barking up the wrong
treetest, I need to narrow this down but there's definitely more failures after that merge for Windows than before but cross referencing with what's already fixed is tough.so, ignore my comment for now!
I haven't looked at the tests or the Jenkins config, so forgive me if this isn't helpful..
The combination of Jenkins and Windows immediately brings to mind the problems I've had with build console logs being garbled or out of order because it is non-blocking. Depending on how the scripts are wired up, that could introduce timing issues.
Restarting Jenkins seems to have fixed the timeouts, I was playing with running Jenkins from cmd rather than as a service but soon discovered it was simply a matter of needing to restart. I also did a full cleanout of the build workspace so that potentially could have helped too, I really don't know. Jenkins

These are the remaining persistent failures on both 2008 and 2012.
If you want to contribute but don't feel confident enough to actually find and fix the underlying problem then running a
git bisectwould be a great help to narrow down the commits where these were introduced (I suppose one at a time, best not to assume they are all related). I don't know agoodto start from though so you'll have to go fishing.Build with
vcbuild x64 release nosign, then test withRelease\iojs.exe test\parallel\test-http-content-length.js(etc.).=== release test-http-content-length === Path: parallel/test-http-content-length events.js:141 throw er; // Unhandled 'error' event ^ Error: read ECONNRESET at exports._errnoException (util.js:734:11) at TCP.onread (net.js:538:26) Command: c:\workspace\iojs+any-pr+multi\nodes\iojs-win2008r2\Release\iojs.exe c:\workspace\iojs+any-pr+multi\nodes\iojs-win2008r2\test\parallel\test-http-content-length.js=== release test-regress-GH-io-1068 === Path: parallel/test-regress-GH-io-1068 events.js:141 throw er; // Unhandled 'error' event ^ Error: shutdown EPIPE at exports._errnoException (util.js:734:11) at Socket.onSocketFinish (net.js:218:26) at emitNone (events.js:67:13) at Socket.emit (events.js:163:7) at finishMaybe (_stream_writable.js:477:14) at endWritable (_stream_writable.js:486:3) at Socket.Writable.end (_stream_writable.js:452:5) at Socket.end (net.js:393:31) at process._tickCallback (node.js:349:13) at Function.Module.runMain (module.js:487:11) Command: c:\workspace\iojs+any-pr+multi\nodes\iojs-win2008r2\Release\iojs.exe c:\workspace\iojs+any-pr+multi\nodes\iojs-win2008r2\test\parallel\test-regress-GH-io-1068.js=== release test-tls-over-http-tunnel === Path: parallel/test-tls-over-http-tunnel CLIENT: Making CONNECT request PROXY: got a client connection PROXY: got CONNECT request PROXY: creating a tunnel PROXY: replying to client CONNECT request CLIENT: got CONNECT response CLIENT: Making HTTPS request SERVER: got request SERVER: sending response CLIENT: got HTTPS response events.js:141 throw er; // Unhandled 'error' event ^ Error: read ECONNRESET at exports._errnoException (util.js:734:11) at TCP.onread (net.js:538:26) Command: c:\workspace\iojs+any-pr+multi\nodes\iojs-win2008r2\Release\iojs.exe c:\workspace\iojs+any-pr+multi\nodes\iojs-win2008r2\test\parallel\test-tls-over-http-tunnel.js9 remaining items
@mathiask88 thanks for pointing that out. Given that is a changelog commit I believe it was committed in error from dev testing. #1198
ping @rvagg
I restarted jenkins again on the 2008 machines (actually the 2012 ones as well) and we're back to parity between test runs on both: https://jenkins-iojs.nodesource.com/job/iojs+any-pr+multi/331/nodes=iojs-win2008r2/console
So now it's just test-regress-GH-io-1068 and test-net-reconnect-error left.
improving, but we now have test-child-process-stdout-flush-exit in the mix occasionally, not sure if this is a new failure but it's shown up a few times in recent runs.
Maybe it helps, but on my windows machine
test-regress-GH-io-1068works.🍺 to everyone! Now to figure out some odd leak.
woo! thanks all
Thank you very much @indutny !
Same thing on OS X Yosemite
$ http-server events.js:141 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE 0.0.0.0:8080 at Object.exports._errnoException (util.js:837:11) at exports._exceptionWithHostPort (util.js:860:20) at Server._listen2 (net.js:1231:14) at listen (net.js:1267:10) at net.js:1376:9 at doNTCallback3 (node.js:440:9) at process._tickCallback (node.js:346:17) at Function.Module.runMain (module.js:477:11) at startup (node.js:117:18) at node.js:951:3Same thing on OS X Yosemite could we open this issue
Perhaps you have a server listening on 8080 port?
- locked and limited conversation to collaborators
on Oct 6, 2015 I'm going to lock this. This is historical only. Please report new issues if they arise in new issue thread. :)
See https://jenkins-iojs.nodesource.com/job/iojs+any-pr+multi/215/nodes=iojs-win2012r2/console for sample output, consistent with 2008 build and consistent across runs at the moment too.
10 failures in total. These have gone uncaught for a little while because of a combination of:
test-cistill doesn't work on any platform so we have to resort to more hacky means of making enough tests runSo we've been getting lots of blue when they really should have been red; so totally off everyone's radar.
I'm can't assess the severity of these failures at a glance, nor can I see a single common theme that would point to something to address. When I have time I'll go back and find a run that had these passing so we can start a manual bisect at least.
_test-child-process-stdio-big-write-end fixed in #1008_
_test-pipe-head fixed in #1008_