mirror of
https://github.com/redis/redis.git
synced 2026-10-28 08:25:04 +08:00
CI upgrade FreeBSD to 15.1 (#15989)
## Issue The FreeBSD CI job still runs on FreeBSD 13.2. This version is no longer available for the current CI setup, so the job needs to move to a supported FreeBSD release. On FreeBSD 15.1, the `unit/networking` prefetch test creates 300 Tcl clients. Each client requests an ephemeral local port. The FreeBSD 15 port allocation and lookup changes can sometimes return `EADDRINUSE` during client creation before the Redis assertion runs. ## Change - Use `cross-platform-actions/action@v1.6.0` with FreeBSD 15.1. - Disable randomized ephemeral-port selection in the CI VM with `net.inet.ip.portrange.randomized=0` to avoid the observed port collision.
This commit is contained in:
1 parent
4e4c65bc71
commit
24cb291304
1 file changed
+15
-2
@@ -1093,15 +1093,28 @@ jobs:
|
||||
repository: ${{ env.GITHUB_REPOSITORY }}
|
||||
ref: ${{ env.GITHUB_HEAD_REF }}
|
||||
- name: test
|
||||
uses: cross-platform-actions/action@v1.0.0
|
||||
uses: cross-platform-actions/action@v1.6.0
|
||||
with:
|
||||
operating_system: freebsd
|
||||
environment_variables: MAKE
|
||||
version: 13.2
|
||||
version: 15.1
|
||||
shell: bash
|
||||
run: |
|
||||
sudo pkg install -y bash gmake lang/tcl86 lang/tclX gcc
|
||||
gmake
|
||||
# The unit/networking test "Prefetch works with maximum batch size
|
||||
# of 128 and client number larger than batch size" creates 300 Tcl
|
||||
# clients in one run. Each client asks the kernel to choose an
|
||||
# ephemeral local port (port 0). FreeBSD 15
|
||||
# changed the local-port allocation/lookup implementation; under
|
||||
# this workload its randomized selection can transiently choose a
|
||||
# port/connection tuple that is still present in the socket table,
|
||||
# and the client creation fails with EADDRINUSE before the Redis
|
||||
# assertion runs. Disable randomized selection for this disposable
|
||||
# CI VM as a workaround. This does not change Redis's listening
|
||||
# port or the ephemeral-port range, and the setting is lost at
|
||||
# reboot.
|
||||
sudo sysctl net.inet.ip.portrange.randomized=0
|
||||
./runtest --single unit/keyspace --single unit/auth --single unit/networking --single unit/protocol
|
||||
|
||||
test-alpine-jemalloc:
|
||||
|
||||
Reference in new issue
Block a user