From f6f0f022c0de8b40d90f0e9236cbe8bcf353e0e1 Mon Sep 17 00:00:00 2001 From: Dilum Aluthge Date: Mon, 16 Jun 2025 14:08:17 -0400 Subject: [PATCH 1/3] Merge pull request #137 from JuliaLang/dpa/dont-use-link-local Worker: Bind to the first non-link-local IPv4 address (cherry picked from commit 3679026d7b510befdedfa8c6497e3cb032f9cea1) --- src/cluster.jl | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/cluster.jl b/src/cluster.jl index 2444695..9467f8e 100644 --- a/src/cluster.jl +++ b/src/cluster.jl @@ -1262,6 +1262,28 @@ function terminate_all_workers() end end +function choose_bind_addr() + # We prefer IPv4 over IPv6. + # + # We also prefer non-link-local over link-local. + # (This is because on HPC clusters, link-local addresses are usually not + # usable for communication between compute nodes. + # + # Therefore, our order of preference is: + # 1. Non-link-local IPv4 + # 2. Non-link-local IPv6 + # 3. Link-local IPv4 + # 4. Link-local IPv6 + addrs = getipaddrs() + i = something( + findfirst(ip -> !islinklocaladdr(ip) && ip isa IPv4, addrs), # first non-link-local IPv4 + findfirst(ip -> !islinklocaladdr(ip) && ip isa IPv6, addrs), # first non-link-local IPv6 + findfirst(ip -> ip isa IPv4, addrs), # first IPv4 + findfirst(ip -> ip isa IPv6, addrs), # first IPv6 + ) + return addrs[i] +end + # initialize the local proc network address / port function init_bind_addr() opts = JLOptions() @@ -1276,7 +1298,7 @@ function init_bind_addr() else bind_port = 0 try - bind_addr = string(getipaddr()) + bind_addr = string(choose_bind_addr()) catch # All networking is unavailable, initialize bind_addr to the loopback address # Will cause an exception to be raised only when used. From ded3ced02ab74fb69440e9044498b1d8e12eb3a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jul 2024 00:42:58 +0200 Subject: [PATCH 2/3] Bump actions/cache from 1 to 4 (#98) Bumps [actions/cache](https://github.com/actions/cache) from 1 to 4. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v1...v4) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> (cherry picked from commit cde40787a98cd1e1b0b3136201d2f65c1eb3760d) --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 01e6847..5b204ae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: with: version: ${{ matrix.version }} arch: ${{ matrix.arch }} - - uses: actions/cache@v1 + - uses: actions/cache@v4 env: cache-name: cache-artifacts with: From 7fb6e8dd6fe6f33f394d6a22ae6bd7ab2ff9b4ff Mon Sep 17 00:00:00 2001 From: Dilum Aluthge Date: Mon, 25 Aug 2025 10:56:37 -0400 Subject: [PATCH 3/3] `release-julia-1.11`: Run CI on Julia 1.11.x (#142) --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5b204ae..b363638 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: fail-fast: false matrix: version: - - 'nightly' + - '1.11' # This is the `release-julia-1.11` branch, so we run CI on Julia 1.11.x os: - ubuntu-latest - macOS-latest @@ -64,7 +64,7 @@ jobs: - uses: julia-actions/setup-julia@latest with: # version: '1.6' - version: 'nightly' + version: '1.11' # This is the `release-julia-1.11` branch, so we run CI on Julia 1.11.x - name: Generate docs run: | julia --color=yes -e 'write("Project.toml", replace(read("Project.toml", String), r"uuid = .*?\n" =>"uuid = \"47e2e46d-f89d-539d-b4ee-838fcccc9c8e\"\n"));'