Skip to content
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

win: gc/test-http-client-onerror.js failure in v6.6.0 #8667

Closed
gdams opened this issue Sep 20, 2016 · 16 comments
Closed

win: gc/test-http-client-onerror.js failure in v6.6.0 #8667

gdams opened this issue Sep 20, 2016 · 16 comments
Labels
dns Issues and PRs related to the dns subsystem. http Issues or PRs related to the http subsystem. test Issues and PRs related to the tests. windows Issues and PRs related to the Windows platform.

Comments

@gdams
Copy link
Member

gdams commented Sep 20, 2016

  • Version:v6.6.0
  • Platform:win 2012 (x64)
  • Subsystem:

I have been observing the following error when running this test script on server 2012:

not ok 3 gc/test-http-client-onerror
# D:\build\jenkins-new\v6tstwin\x64node\node\test\gc\test-http-client-onerror.js:37
#       throw er;
#       ˆ
#
# Error: connect ECONNREFUSED 127.0.0.1:62572
#     at Object.exports._errnoException (util.js:1036:11)
#     at exports._exceptionWithHostPort (util.js:1059:20)
#     at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)
# We should do 500 requests
# Done: 64/500
# Collected: 64/460
  ---
  duration_ms: 2.266tres
  ...

I believe the problem to be with this section of code in test-http-client-onerror.js

    var req = http.get({
      hostname: 'localhost',
      pathname: '/',
      port: server.address().port

changing hostname to this seeemed to remove the problem for me:

    var req = http.get({
      hostname: '127.0.0.1',
      pathname: '/',
      port: server.address().port

When running the test in a loop, it failed 16/1000 times but with my fix it did not fail once

@mscdex mscdex added http Issues or PRs related to the http subsystem. windows Issues and PRs related to the Windows platform. test Issues and PRs related to the tests. dns Issues and PRs related to the dns subsystem. labels Sep 20, 2016
@gibfahn
Copy link
Member

gibfahn commented Sep 21, 2016

@GeorgeAdams95 do you have any other info about why this would fix the test? Looking at the error, it seems like localhost resolved to 127.0.0.1 correctly, so it seems strange that we're getting ECONNREFUSED with localhost.

@gibfahn
Copy link
Member

gibfahn commented Sep 21, 2016

Also is this only failing on win2012? Not on win7 etc?

@gdams
Copy link
Member Author

gdams commented Sep 21, 2016

@gibfahn I have only tested on win2012, will run some tests on win7

@gibfahn
Copy link
Member

gibfahn commented Apr 6, 2017

ping @gdams

@gdams
Copy link
Member Author

gdams commented Apr 6, 2017

this is appearing on windows 7 as well. It seems that on certain machines (mainly post win7) localhost is resolving to IPv6 instead of IPv4 which is why hard coding it back to 127.0.0.1 results in different behavior.

@gibfahn
Copy link
Member

gibfahn commented Apr 6, 2017

I don't think that would cause this to fail intermittently though.

cc/ @nodejs/platform-windows , any thoughts on what the issue could be here?

Stress test: https://ci.nodejs.org/job/node-stress-single-test/nodes=win2016/1152/console

@refack
Copy link
Contributor

refack commented Apr 6, 2017

@gibfahn kill the CI it's running on blank (it didn't build the bindings for the client)

1..10000
not ok 1 gc/test-http-client-onerror
  ---
  duration_ms: 0.229
  severity: fail
  stack: |-
    module.js:500
        throw err;
        ^
    
    Error: Cannot find module './build/Release/binding'
        at Function.Module._resolveFilename (module.js:498:15)
        at Function.Module._load (module.js:437:25)
        at Module.require (module.js:526:17)
        at require (internal/module.js:19:18)
        at Object.<anonymous> (c:\workspace\node-stress-single-test\nodes\win2016\test\gc\test-http-client-onerror.js:14:14)
        at Module._compile (module.js:607:30)
        at Object.Module._extensions..js (module.js:618:10)
        at Module.load (module.js:516:32)
        at tryModuleLoad (module.js:466:12)
        at Function.Module._load (module.js:458:3)
  ...

@refack
Copy link
Contributor

refack commented Apr 6, 2017

Since it's ECONNREFUSED, off the top of my head I'd say the internal firewall a.k.a. MpsSvc.

@refack
Copy link
Contributor

refack commented Apr 6, 2017

And since it's ECONNREFUSED I think changing the address is placebo.

@bzoz
Copy link
Contributor

bzoz commented May 29, 2017

@gdams Are you by any chance have those failures on a VM?

@gibfahn
Copy link
Member

gibfahn commented May 30, 2017

@gdams Are you by any chance have those failures on a VM?

The failures were on a VMware VM

@bzoz
Copy link
Contributor

bzoz commented May 30, 2017

I could not reproduce those, so I have a wild guess that maybe it is a VM issue. Do you by any chance remember the VMware version?

@gdams
Copy link
Member Author

gdams commented May 30, 2017

I'm afraid we don't have access to the vmware server. Interestingly this only occurred on one of many machines in the vmware farm suggesting that the network config for that machine could be different. I will talk to our infra team to see if I can find out

@bzoz
Copy link
Contributor

bzoz commented Aug 10, 2017

Should this remain open?

@gibfahn
Copy link
Member

gibfahn commented Aug 10, 2017

Ping @gdams

@apapirovski
Copy link
Member

Given the lack of a follow-up or a clear reproduction I'm going to close this but feel free to reopen if more information is available or anything has changed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dns Issues and PRs related to the dns subsystem. http Issues or PRs related to the http subsystem. test Issues and PRs related to the tests. windows Issues and PRs related to the Windows platform.
Projects
None yet
Development

No branches or pull requests

6 participants