-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Karma + Node.js 17: can't connect to karma server. There is no server listening on port 9876 #3730
Karma + Node.js 17: can't connect to karma server. There is no server listening on port 9876 #3730
Comments
In case it helps, here are some dependencies (in case it's one of those that is causing it):
|
Some steps to reproduce.
Console should show the error above: "can't connect to karma server. There is no server listening on port 9876". To confirm.. you can switch back to Node 16 and it should work fine again. |
I've tried the above steps using Node v17.1.0, Chrome 96.0.4664.55 on macOS 12.0.1 and the tests ran successfully. I've also tried our own test suite which also completed successfully. I've tried to run using Karma configuration from WebStorm and it worked as well. Can you double check on your side? |
Update documentation, so that it does not become outdated whenever a new version of Node is released. Test on the current version of Node, so we can spot problems early, but don't claim to support it as current release line often introduces bugs, which are later fixed by Node itself. Fixes karma-runner#3730, fixes karma-runner#3728 Closes karma-runner#3729
Reproduced on CI: https://github.com/karma-runner/karma/runs/4304771965?check_suite_focus=true. I'll look more into it tomorrow. |
Thanks! and yeah, we were able to reproduce it on a different Mac (cc @sideshowbarker) running different versions of MacOS (Monterey and Big Sur)... so, at least, it doesn't seem to be an OS thing, but more likely a Node 17 thing. |
+1 |
This issue also occurs with Node 18, unfortunately. |
Update documentation, so that it does not become outdated whenever a new version of Node is released. Test on the current version of Node, so we can spot problems early, but don't claim to support it as current release line often introduces bugs, which are later fixed by Node itself. Fixes karma-runner#3730, fixes karma-runner#3728 Closes karma-runner#3729
nodejs/node#40702 seems to be the culprit. Node 17 changed the DNS resolution, so now it resolves I'll think what's the best way to make it work out of the box. In the meantime you can address the issue by setting |
Node 17+ changed the DNS resolution (see nodejs/node#40702), so now it resolves `localhost` according to the OS settings instead of IPv4-address first. The Karma server only listens on IPv4 address (127.0.0.1) by default, but the requests are sent to `localhost` in several places and `localhost` is resolved into IPv6 address (`::`) in Node 17+. So the run/stop/proxy request is unable to reach the Karma server and produces an error. This commit configures karma to use the IPv4-address first approach in newer Node version as well. In the future major release, we may consider changing defaults to listen on IPv6 address instead, but IPv6 is not supported in Docker on macOS and Windows, so I think we should not rush such a change to make sure karma works there out of the box. Fixes karma-runner#3730
Node 17+ changed the DNS resolution (see nodejs/node#40702), so now it resolves `localhost` according to the OS settings instead of IPv4-address first. The Karma server only listens on IPv4 address (127.0.0.1) by default, but the requests are sent to `localhost` in several places and `localhost` is resolved into IPv6 address (`::`) in Node 17+. So the run/stop/proxy request is unable to reach the Karma server and produces an error. This commit configures karma to use the IPv4-address first approach in newer Node version as well. In the future major release, we may consider changing defaults to listen on IPv6 address instead, but IPv6 is not supported in Docker on macOS and Windows, so I think we should not rush such a change to make sure karma works there out of the box. Fixes karma-runner#3730
Node 17+ changed the DNS resolution (see nodejs/node#40702), so now it resolves `localhost` according to the OS settings instead of IPv4-address first. The Karma server only listens on IPv4 address (127.0.0.1) by default, but the requests are sent to `localhost` in several places and `localhost` is resolved into IPv6 address (`::`) in Node 17+. So the run/stop/proxy request is unable to reach the Karma server and produces an error. This commit configures karma to use the IPv4-address first approach in newer Node version as well. In the future major release, we may consider changing defaults to listen on IPv6 address instead, but IPv6 is not supported in Docker on macOS and Windows, so I think we should not rush such a change to make sure karma works there out of the box. Fixes karma-runner#3730
Node 17+ changed the DNS resolution (see nodejs/node#40702), so now it resolves `localhost` according to the OS settings instead of IPv4-address first. The Karma server only listens on IPv4 address (127.0.0.1) by default, but the requests are sent to `localhost` in several places and `localhost` is resolved into IPv6 address (`::`) in Node 17+. So the run/stop/proxy request is unable to reach the Karma server and produces an error. This commit configures karma to use the IPv4-address first approach in newer Node version as well. In the future major release, we may consider changing defaults to listen on IPv6 address instead, but IPv6 is not supported in Docker on macOS and Windows, so I think we should not rush such a change to make sure karma works there out of the box. Fixes karma-runner#3730
Node 17+ changed the DNS resolution (see nodejs/node#40702), so now it resolves `localhost` according to the OS settings instead of IPv4-address first. The Karma server only listens on IPv4 address (127.0.0.1) by default, but the requests are sent to `localhost` in several places and `localhost` is resolved into IPv6 address (`::`) in Node 17+. So the run/stop/proxy request is unable to reach the Karma server and produces an error. This commit configures karma to use the IPv4-address first approach in newer Node version as well. In the future major release, we may consider changing defaults to listen on IPv6 address instead, but IPv6 is not supported in Docker on macOS and Windows, so I think we should not rush such a change to make sure karma works there out of the box. Fixes #3730
## [6.3.20](v6.3.19...v6.3.20) (2022-05-13) ### Bug Fixes * prefer IPv4 addresses when resolving domains ([e17698f](e17698f)), closes [#3730](#3730)
🎉 This issue has been resolved in version 6.3.20 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [karma](https://karma-runner.github.io/) ([source](https://github.com/karma-runner/karma)) | devDependencies | patch | [`6.3.19` -> `6.3.20`](https://renovatebot.com/diffs/npm/karma/6.3.19/6.3.20) | --- ### Release Notes <details> <summary>karma-runner/karma</summary> ### [`v6.3.20`](https://github.com/karma-runner/karma/blob/HEAD/CHANGELOG.md#​6320-httpsgithubcomkarma-runnerkarmacomparev6319v6320-2022-05-13) [Compare Source](karma-runner/karma@v6.3.19...v6.3.20) ##### Bug Fixes - prefer IPv4 addresses when resolving domains ([e17698f](karma-runner/karma@e17698f)), closes [#​3730](karma-runner/karma#3730) </details> --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1351 Reviewed-by: crapStone <crapstone@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Why not make listening on |
Because some environments may not support IPv6, that would be a breaking change for them. Primarily thinking about Docker on Windows/Mac here, but there could be others. I've added an item #3503 to consider this for the next major release. |
Hey @devoto13
Context: I've found this thread while investigating why karma server doesn't start on my setup (macOS 12.4, node v16.15.0) with default |
@cherniavskii That's actually a very good suggestion! I didn't know about this possibility. I think it would be indeed a good idea to do that in the next major instead of setting the default outright to IPv6. I'm not sure if this is actually a root cause of the issue you describe. I would be interested to look into a minimal reproduction of the problem, because the defaults should work just fine on macOS 12.4 and Node v16.15.0. I have tested on my machine and I don't seem to experience any problems. Are you sure, you're running the latest version of |
Hey @devoto13 Indeed, I just realised that the root cause of the issue is that I use VPN (NordVPN to be specific). Anyway, I've changed karma |
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [karma](https://karma-runner.github.io/) ([source](https://github.com/karma-runner/karma)) | devDependencies | minor | [`6.3.20` -> `6.4.0`](https://renovatebot.com/diffs/npm/karma/6.3.20/6.4.0) | --- ### Release Notes <details> <summary>karma-runner/karma</summary> ### [`v6.4.0`](https://github.com/karma-runner/karma/blob/HEAD/CHANGELOG.md#​640-httpsgithubcomkarma-runnerkarmacomparev6320v640-2022-06-14) [Compare Source](karma-runner/karma@v6.3.20...v6.4.0) ##### Features - support SRI verification of link tags ([dc51a2e](karma-runner/karma@dc51a2e)) - support SRI verification of script tags ([6a54b1c](karma-runner/karma@6a54b1c)) #### [6.3.20](karma-runner/karma@v6.3.19...v6.3.20) (2022-05-13) ##### Bug Fixes - prefer IPv4 addresses when resolving domains ([e17698f](karma-runner/karma@e17698f)), closes [#​3730](karma-runner/karma#3730) #### [6.3.19](karma-runner/karma@v6.3.18...v6.3.19) (2022-04-19) ##### Bug Fixes - **client:** error out when opening a new tab fails ([099b85e](karma-runner/karma@099b85e)) #### [6.3.18](karma-runner/karma@v6.3.17...v6.3.18) (2022-04-13) ##### Bug Fixes - **deps:** upgrade socket.io to v4.4.1 ([52a30bb](karma-runner/karma@52a30bb)) #### [6.3.17](karma-runner/karma@v6.3.16...v6.3.17) (2022-02-28) ##### Bug Fixes - **deps:** update colors to maintained version ([#​3763](karma-runner/karma#3763)) ([fca1884](karma-runner/karma@fca1884)) #### [6.3.16](karma-runner/karma@v6.3.15...v6.3.16) (2022-02-10) ##### Bug Fixes - **security:** mitigate the "Open Redirect Vulnerability" ([ff7edbb](karma-runner/karma@ff7edbb)) #### [6.3.15](karma-runner/karma@v6.3.14...v6.3.15) (2022-02-05) ##### Bug Fixes - **helper:** make mkdirIfNotExists helper resilient to concurrent calls ([d9dade2](karma-runner/karma@d9dade2)), closes [/github.com/karma-runner/karma-coverage/issues/434#issuecomment-1017939333](https://github.com//github.com/karma-runner/karma-coverage/issues/434/issues/issuecomment-1017939333) #### [6.3.14](karma-runner/karma@v6.3.13...v6.3.14) (2022-02-05) ##### Bug Fixes - remove string template from client code ([91d5acd](karma-runner/karma@91d5acd)) - warn when `singleRun` and `autoWatch` are `false` ([69cfc76](karma-runner/karma@69cfc76)) - **security:** remove XSS vulnerability in `returnUrl` query param ([839578c](karma-runner/karma@839578c)) #### [6.3.13](karma-runner/karma@v6.3.12...v6.3.13) (2022-01-31) ##### Bug Fixes - **deps:** bump log4js to resolve security issue ([5bf2df3](karma-runner/karma@5bf2df3)), closes [#​3751](karma-runner/karma#3751) #### [6.3.12](karma-runner/karma@v6.3.11...v6.3.12) (2022-01-24) ##### Bug Fixes - remove depreciation warning from log4js ([41bed33](karma-runner/karma@41bed33)) #### [6.3.11](karma-runner/karma@v6.3.10...v6.3.11) (2022-01-13) ##### Bug Fixes - **deps:** pin colors package to 1.4.0 due to security vulnerability ([a5219c5](karma-runner/karma@a5219c5)) #### [6.3.10](karma-runner/karma@v6.3.9...v6.3.10) (2022-01-08) ##### Bug Fixes - **logger:** create parent folders if they are missing ([0d24bd9](karma-runner/karma@0d24bd9)), closes [#​3734](karma-runner/karma#3734) #### [6.3.9](karma-runner/karma@v6.3.8...v6.3.9) (2021-11-16) ##### Bug Fixes - restartOnFileChange option not restarting the test run ([92ffe60](karma-runner/karma@92ffe60)), closes [#​27](karma-runner/karma#27) [#​3724](karma-runner/karma#3724) #### [6.3.8](karma-runner/karma@v6.3.7...v6.3.8) (2021-11-07) ##### Bug Fixes - **reporter:** warning if stack trace contains generated code invocation ([4f23b14](karma-runner/karma@4f23b14)) #### [6.3.7](karma-runner/karma@v6.3.6...v6.3.7) (2021-11-01) ##### Bug Fixes - **middleware:** replace %X_UA_COMPATIBLE% marker anywhere in the file ([f1aeaec](karma-runner/karma@f1aeaec)), closes [#​3711](karma-runner/karma#3711) #### [6.3.6](karma-runner/karma@v6.3.5...v6.3.6) (2021-10-25) ##### Bug Fixes - bump vulnerable ua-parser-js version ([6f2b2ec](karma-runner/karma@6f2b2ec)), closes [#​3713](karma-runner/karma#3713) #### [6.3.5](karma-runner/karma@v6.3.4...v6.3.5) (2021-10-20) ##### Bug Fixes - **client:** prevent socket.io from hanging due to mocked clocks ([#​3695](karma-runner/karma#3695)) ([105da90](karma-runner/karma@105da90)) #### [6.3.4](karma-runner/karma@v6.3.3...v6.3.4) (2021-06-14) ##### Bug Fixes - bump production dependencies within SemVer ranges ([#​3682](karma-runner/karma#3682)) ([36467a8](karma-runner/karma@36467a8)), closes [#​3680](karma-runner/karma#3680) #### [6.3.3](karma-runner/karma@v6.3.2...v6.3.3) (2021-06-01) ##### Bug Fixes - **server:** clean up vestigial code from proxy ([#​3640](karma-runner/karma#3640)) ([f4aeac3](karma-runner/karma@f4aeac3)), closes [/tools.ietf.org/html/std66#section-3](https://github.com//tools.ietf.org/html/std66/issues/section-3) #### [6.3.2](karma-runner/karma@v6.3.1...v6.3.2) (2021-03-29) ##### Bug Fixes - fix running tests in IE9 ([#​3668](karma-runner/karma#3668)) ([0055bc5](karma-runner/karma@0055bc5)), closes [/github.com/karma-runner/karma/blob/026fff870913fb6cd2858dd962935dc74c92b725/client/main.js#L14](https://github.com//github.com/karma-runner/karma/blob/026fff870913fb6cd2858dd962935dc74c92b725/client/main.js/issues/L14) [#​3665](karma-runner/karma#3665) #### [6.3.1](karma-runner/karma@v6.3.0...v6.3.1) (2021-03-24) ##### Bug Fixes - **client:** clearContext after complete sent ([#​3657](karma-runner/karma#3657)) ([c0962e3](karma-runner/karma@c0962e3)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1412 Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Node 17+ changed the DNS resolution (see nodejs/node#40702), so now it resolves `localhost` according to the OS settings instead of IPv4-address first. The Karma server only listens on IPv4 address (127.0.0.1) by default, but the requests are sent to `localhost` in several places and `localhost` is resolved into IPv6 address (`::`) in Node 17+. So the run/stop/proxy request is unable to reach the Karma server and produces an error. This commit configures karma to use the IPv4-address first approach in newer Node version as well. In the future major release, we may consider changing defaults to listen on IPv6 address instead, but IPv6 is not supported in Docker on macOS and Windows, so I think we should not rush such a change to make sure karma works there out of the box. Fixes karma-runner#3730
## [6.3.20](karma-runner/karma@v6.3.19...v6.3.20) (2022-05-13) ### Bug Fixes * prefer IPv4 addresses when resolving domains ([e17698f](karma-runner@e17698f)), closes [karma-runner#3730](karma-runner#3730)
### Why? ``` 07 08 2023 18:16:36.397:INFO [karma-server]: Karma v6.4.2 server started at http://localhost:9876/ 07 08 2023 18:16:36.398:INFO [launcher]: Launching browsers jsdom with concurrency unlimited 07 08 2023 18:16:36.402:INFO [launcher]: Starting browser jsdom 07 08 2023 18:16:36.421:ERROR [karma-server]: UnhandledRejection: Error: connect ECONNREFUSED ::1:9876 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) 07 08 2023 18:16:36.422:ERROR [karma-server]: Error: connect ECONNREFUSED ::1:9876 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '::1', port: 9876 } error Command failed with exit code 1. ``` > The Karma server only listens on IPv4 address (`0.0.0.0`) by default, > but the requests are sent to `localhost` and `localhost` is resolved > into IPv6 address (`::`) in Node 17+. So the run request is unable to > reach the Karma server. ### References * http://karma-runner.github.io/6.4/config/configuration-file.html#listenaddress * karma-runner/karma#3730 (comment)
### Why? ``` 07 08 2023 18:16:36.397:INFO [karma-server]: Karma v6.4.2 server started at http://localhost:9876/ 07 08 2023 18:16:36.398:INFO [launcher]: Launching browsers jsdom with concurrency unlimited 07 08 2023 18:16:36.402:INFO [launcher]: Starting browser jsdom 07 08 2023 18:16:36.421:ERROR [karma-server]: UnhandledRejection: Error: connect ECONNREFUSED ::1:9876 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) 07 08 2023 18:16:36.422:ERROR [karma-server]: Error: connect ECONNREFUSED ::1:9876 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1495:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '::1', port: 9876 } error Command failed with exit code 1. ``` > The Karma server only listens on IPv4 address (`0.0.0.0`) by default, > but the requests are sent to `localhost` and `localhost` is resolved > into IPv6 address (`::`) in Node 17+. So the run request is unable to > reach the Karma server. ### References * http://karma-runner.github.io/6.4/config/configuration-file.html#listenaddress * karma-runner/karma#3730 (comment)
See karma-runner/karma#3730 for more details
See karma-runner/karma#3730 for more details
When running under Node 17, running karma reports:
Switching back to Node 16 seems to "fix" the issue.
See also:
https://youtrack.jetbrains.com/issue/WEB-53632
The text was updated successfully, but these errors were encountered: