René's URL Explorer Experiment


Title: Not all processes rebind when switching from :: to 0.0.0.0 or vice versa · Issue #60086 · nodejs/node · GitHub

Open Graph Title: Not all processes rebind when switching from :: to 0.0.0.0 or vice versa · Issue #60086 · nodejs/node

X Title: Not all processes rebind when switching from :: to 0.0.0.0 or vice versa · Issue #60086 · nodejs/node

Description: Version v22.14.0 Platform Darwin YJF7M4-i4Xp 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:55 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6031 arm64 Linux b2dae3f0c05d 6.10.14-linuxkit #1 SMP Thu Mar 20 16:32:56 UTC 2025 aar...

Open Graph Description: Version v22.14.0 Platform Darwin YJF7M4-i4Xp 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:55 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6031 arm64 Linux b2dae3f0c05d 6.10.14-linuxkit...

X Description: Version v22.14.0 Platform Darwin YJF7M4-i4Xp 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:55 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6031 arm64 Linux b2dae3f0c05d 6.10.14-linuxkit...

Opengraph URL: https://github.com/nodejs/node/issues/60086

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Not all processes rebind when switching from :: to 0.0.0.0 or vice versa","articleBody":"### Version\n\nv22.14.0\n\n### Platform\n\n```text\nDarwin YJF7M4-i4Xp 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:55 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6031 arm64\n\nLinux b2dae3f0c05d 6.10.14-linuxkit #1 SMP Thu Mar 20 16:32:56 UTC 2025 aarch64 aarch64 aarch64 GNU/\n```\n\n### Subsystem\n\ncluster\n\n### What steps will reproduce the bug?\n\n1. Run program attached: `node listen-retry-issue.js `\n2. After all processes start (will take time), send `SIGTERM` to master process to initiate a rolling restart. \n\n    This will switch interfaces (initially from :: to 0.0.0.0 will toggle each time a SIGTERM is sent): `kill -SIGTERM \u003cmasterPid\u003e`\n\n3. After all workers restart (will take time) notice only a subset will successfully listen successfully\n\nFor example: if we have 10 processes and process 5 rebinds first: processes 5, 6, 7, 8, 9 will successfully rebind\nprocesses 0, 1, 2, 3, 4 will not rebind and will retry forever\n\nDepending on the platform tested with may need to send 2 SIGTERMS to trigger the `EADDRINUSE` scenario.\n\nAlso note that not using the `ipv6Only` listen option as our application must support dual stack when binding to ipv6 addresses.\n\n[listen-retry-issue.js](https://github.com/user-attachments/files/22643581/listen-retry-issue.js)\n\n### How often does it reproduce? Is there a required condition?\n\nUsing the program above it seems to reproduce most of the time. The only scenario that would cause the issue to not surface is if process 0 is the first to listen successfully. \n\nThe required condition is:\n\n1. Multiple processes bound to all interfaces with dual stack (::)\n2. Processes will retry listen when `EADDRINUSE` error occurs\n3. Switch interface from `:: to 0.0.0.0` (or vice versa) \n4. Perform a rolling restart (2 processes at a time) so some processes are still bound to the old interface and port during restart.\n5. After all processes restart, the problem should surface.\n6. Only a subset of workers will successfully bind to the new interface and port\n\n### What is the expected behavior? Why is that the expected behavior?\n\nExpected behavior is that all workers successfully rebind to the interface and port, not a subset.\n\n### What do you see instead?\n\nA subset of workers processes are successfully rebinding and there is a strange pattern that dictates which workers rebind. For example:\n\nWith 10 processes are restarted and worker 6 is the first to bind, workers 6, 7, 8, and 9 will successfully rebind to the interface and port. Workers 0, 1, 2, 3, 4, and 5 will fail to rebind and be in a forever retry loop.\n\n### Additional information\n\nHere is annotated log output from the attached program demonstrating the problem.\n\n**Scenario**\n- 12 processes\n- Process 6 listens first, end up with:\n  - processes 6, 7, 8, 9, 10, 11 successfully listening\n  - processes 0, 1, 2, 3, 4, 5 in a retry forever loop\n  - Expecting all processes successfully rebind\n\n...\n#\n# The final 2 processes are restarted here\n#\nMaster process 0 (25286) detected worker 10 (27562) died\nMaster process 0 (25286) detected worker 11 (27563) died\n#\n# Process 6 and 7 bind successfully\n#\nWorker process 6 (29061) listening on 0.0.0.0:8000\nWorker process 7 (29062) listening on 0.0.0.0:8000\nWorker process 11 (29207) detected address 0.0.0.0:8000 in use, retrying in 517 MS...\nWorker process 10 (29206) detected address 0.0.0.0:8000 in use, retrying in 526 MS...\nWorker process 9 (29131) detected address 0.0.0.0:8000 in use, retrying in 537 MS...\nWorker process 8 (29130) detected address 0.0.0.0:8000 in use, retrying in 573 MS...\nWorker process 5 (28984) detected address 0.0.0.0:8000 in use, retrying in 572 MS...\nWorker process 4 (28985) detected address 0.0.0.0:8000 in use, retrying in 580 MS...\nWorker process 3 (28898) detected address 0.0.0.0:8000 in use, retrying in 548 MS...\nWorker process 2 (28897) detected address 0.0.0.0:8000 in use, retrying in 549 MS...\nWorker process 1 (28820) detected address 0.0.0.0:8000 in use, retrying in 528 MS...\nWorker process 0 (28821) detected address 0.0.0.0:8000 in use, retrying in 567 MS...\nMaster process 0 (25286) rolling restart completed, 12 processes restarted\n#\n# Process 8 and 9 bind successfully\n#\nWorker process 8 (29130) listening on 0.0.0.0:8000\nWorker process 9 (29131) listening on 0.0.0.0:8000\nWorker process 11 (29207) detected address 0.0.0.0:8000 in use, retrying in 555 MS...\nWorker process 10 (29206) detected address 0.0.0.0:8000 in use, retrying in 554 MS...\nWorker process 5 (28984) detected address 0.0.0.0:8000 in use, retrying in 574 MS...\nWorker process 4 (28985) detected address 0.0.0.0:8000 in use, retrying in 556 MS...\nWorker process 3 (28898) detected address 0.0.0.0:8000 in use, retrying in 570 MS...\nWorker process 2 (28897) detected address 0.0.0.0:8000 in use, retrying in 519 MS...\nWorker process 1 (28820) detected address 0.0.0.0:8000 in use, retrying in 535 MS...\nWorker process 0 (28821) detected address 0.0.0.0:8000 in use, retrying in 559 MS...\n#\n# Process 10 and 11 bind successfully\n#\nWorker process 10 (29206) listening on 0.0.0.0:8000\nWorker process 11 (29207) listening on 0.0.0.0:8000\n#\n# Processes 0, 1, 2, 3, 4, 5 are in a retry forever loop\n#\nWorker process 5 (28984) detected address 0.0.0.0:8000 in use, retrying in 523 MS...\nWorker process 4 (28985) detected address 0.0.0.0:8000 in use, retrying in 580 MS...\nWorker process 3 (28898) detected address 0.0.0.0:8000 in use, retrying in 531 MS...\nWorker process 2 (28897) detected address 0.0.0.0:8000 in use, retrying in 566 MS...\nWorker process 1 (28820) detected address 0.0.0.0:8000 in use, retrying in 550 MS...\nWorker process 0 (28821) detected address 0.0.0.0:8000 in use, retrying in 574 MS...\nWorker process 5 (28984) detected address 0.0.0.0:8000 in use, retrying in 514 MS...\nWorker process 4 (28985) detected address 0.0.0.0:8000 in use, retrying in 512 MS...\nWorker process 3 (28898) detected address 0.0.0.0:8000 in use, retrying in 570 MS...\nWorker process 2 (28897) detected address 0.0.0.0:8000 in use, retrying in 573 MS...\nWorker process 1 (28820) detected address 0.0.0.0:8000 in use, retrying in 575 MS...\nWorker process 0 (28821) detected address 0.0.0.0:8000 in use, retrying in 563 MS...\nWorker process 5 (28984) detected address 0.0.0.0:8000 in use, retrying in 567 MS...\nWorker process 4 (28985) detected address 0.0.0.0:8000 in use, retrying in 538 MS...\nWorker process 3 (28898) detected address 0.0.0.0:8000 in use, retrying in 540 MS...\nWorker process 2 (28897) detected address 0.0.0.0:8000 in use, retrying in 529 MS...\nWorker process 1 (28820) detected address 0.0.0.0:8000 in use, retrying in 563 MS...\nWorker process 0 (28821) detected address 0.0.0.0:8000 in use, retrying in 528 MS...\nWorker process 5 (28984) detected address 0.0.0.0:8000 in use, retrying in 549 MS...\nWorker process 4 (28985) detected address 0.0.0.0:8000 in use, retrying in 577 MS...\nWorker process 3 (28898) detected address 0.0.0.0:8000 in use, retrying in 577 MS...\nWorker process 2 (28897) detected address 0.0.0.0:8000 in use, retrying in 557 MS...\nWorker process 0 (28821) detected address 0.0.0.0:8000 in use, retrying in 515 MS...\nWorker process 1 (28820) detected address 0.0.0.0:8000 in use, retrying in 544 MS...\nWorker process 5 (28984) detected address 0.0.0.0:8000 in use, retrying in 571 MS...\nWorker process 4 (28985) detected address 0.0.0.0:8000 in use, retrying in 542 MS...\nWorker process 3 (28898) detected address 0.0.0.0:8000 in use, retrying in 537 MS...\nWorker process 2 (28897) detected address 0.0.0.0:8000 in use, retrying in 548 MS...\nWorker process 0 (28821) detected address 0.0.0.0:8000 in use, retrying in 518 MS...\nWorker process 1 (28820) detected address 0.0.0.0:8000 in use, retrying in 569 MS...\n...","author":{"url":"https://github.com/hgardneriv","@type":"Person","name":"hgardneriv"},"datePublished":"2025-10-01T16:10:48.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/60086/node/issues/60086"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:ffeda7ec-2c70-b83f-4575-94419fedc159
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idAFCC:2AB98E:4545A9:5F606E:6A4C812A
html-safe-nonce705e8e1141c1e47d1ebeef14d28c15a41e47634aecb3ff549bac67605f48887e
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBRkNDOjJBQjk4RTo0NTQ1QTk6NUY2MDZFOjZBNEM4MTJBIiwidmlzaXRvcl9pZCI6IjY1OTQ1ODYzNTM5MjQzNDIwNTgiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac3ca34b22c62f7d5e366c8a3fbd09650a02a3ed230032c3e263501829eb0c810c
hovercard-subject-tagissue:3474226725
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/nodejs/node/60086/issue_layout
twitter:imagehttps://opengraph.githubassets.com/1512af92e12706601a2044dd4d6f2dd3bdb23989298e2fbc0a8d4c2071a8056f/nodejs/node/issues/60086
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/1512af92e12706601a2044dd4d6f2dd3bdb23989298e2fbc0a8d4c2071a8056f/nodejs/node/issues/60086
og:image:altVersion v22.14.0 Platform Darwin YJF7M4-i4Xp 24.6.0 Darwin Kernel Version 24.6.0: Mon Jul 14 11:30:55 PDT 2025; root:xnu-11417.140.69~1/RELEASE_ARM64_T6031 arm64 Linux b2dae3f0c05d 6.10.14-linuxkit...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamehgardneriv
hostnamegithub.com
expected-hostnamegithub.com
None3d11bb817438277de2a940854450e83a7d32b6aeb5014e9e6b00a6423900251c
turbo-cache-controlno-preview
go-importgithub.com/nodejs/node git https://github.com/nodejs/node.git
octolytics-dimension-user_id9950313
octolytics-dimension-user_loginnodejs
octolytics-dimension-repository_id27193779
octolytics-dimension-repository_nwonodejs/node
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id27193779
octolytics-dimension-repository_network_root_nwonodejs/node
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasecd470457e909b9d062f8002cf438ba870e6acff6
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/nodejs/node/issues/60086#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fissues%2F60086
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode%2Fissues%2F60086
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=nodejs%2Fnode
Reloadhttps://github.com/nodejs/node/issues/60086
Reloadhttps://github.com/nodejs/node/issues/60086
Reloadhttps://github.com/nodejs/node/issues/60086
Please reload this pagehttps://github.com/nodejs/node/issues/60086
nodejs https://github.com/nodejs
nodehttps://github.com/nodejs/node
Please reload this pagehttps://github.com/nodejs/node/issues/60086
Notifications https://github.com/login?return_to=%2Fnodejs%2Fnode
Fork 36k https://github.com/login?return_to=%2Fnodejs%2Fnode
Star 118k https://github.com/login?return_to=%2Fnodejs%2Fnode
Code https://github.com/nodejs/node
Issues 1.4k https://github.com/nodejs/node/issues
Pull requests 964 https://github.com/nodejs/node/pulls
Actions https://github.com/nodejs/node/actions
Projects https://github.com/nodejs/node/projects
Security and quality 0 https://github.com/nodejs/node/security
Insights https://github.com/nodejs/node/pulse
Code https://github.com/nodejs/node
Issues https://github.com/nodejs/node/issues
Pull requests https://github.com/nodejs/node/pulls
Actions https://github.com/nodejs/node/actions
Projects https://github.com/nodejs/node/projects
Security and quality https://github.com/nodejs/node/security
Insights https://github.com/nodejs/node/pulse
#60141https://github.com/nodejs/node/pull/60141
Not all processes rebind when switching from :: to 0.0.0.0 or vice versahttps://github.com/nodejs/node/issues/60086#top
#60141https://github.com/nodejs/node/pull/60141
https://github.com/hgardneriv
hgardnerivhttps://github.com/hgardneriv
on Oct 1, 2025https://github.com/nodejs/node/issues/60086#issue-3474226725
listen-retry-issue.jshttps://github.com/user-attachments/files/22643581/listen-retry-issue.js
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.