mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-05-24 23:05:52 -04:00
The OpenBSD job runs inside a nested VM. At -j8 the --use-tcp run starts many concurrent loopback daemons, and under that resource pressure the daemon connection handshake occasionally loses a timing race and one test hangs to the 300s runner timeout. It is an environment artifact, not an rsync defect: the daemon handshake writes-then-reads with unbuffered early I/O (no flush/mutual-wait deadlock), the indefinite wait is the documented no-timeout daemon behaviour, and it does not reproduce off OpenBSD even with the full suite pinned to a single CPU at -j8. Drop just this job's --use-tcp parallelism to -j2 so the nested VM stops over-subscribing; the pipe `make check` and every other platform are unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
62 lines
1.9 KiB
YAML
62 lines
1.9 KiB
YAML
name: Test rsync on OpenBSD
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
paths-ignore:
|
|
- '.github/workflows/*.yml'
|
|
- '!.github/workflows/openbsd-build.yml'
|
|
pull_request:
|
|
branches: [ master ]
|
|
paths-ignore:
|
|
- '.github/workflows/*.yml'
|
|
- '!.github/workflows/openbsd-build.yml'
|
|
schedule:
|
|
- cron: '42 8 * * *'
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
name: Test rsync on OpenBSD
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Test in OpenBSD VM
|
|
id: test
|
|
uses: vmactions/openbsd-vm@v1
|
|
with:
|
|
usesh: true
|
|
prepare: |
|
|
pkg_add -I bash autoconf%2.71 automake%1.16
|
|
run: |
|
|
uname -a
|
|
export AUTOCONF_VERSION=2.71
|
|
export AUTOMAKE_VERSION=1.16
|
|
./configure --with-rrsync --disable-zstd --disable-md2man --disable-xxhash --disable-lz4
|
|
make
|
|
./rsync --version
|
|
make check
|
|
# The --use-tcp daemon tests run at -j2 here (vs -j8 elsewhere): this
|
|
# job runs inside a nested VM, and at -j8 the many concurrent loopback
|
|
# daemons occasionally lose a connection-handshake timing race under
|
|
# that resource pressure, hanging one test to the 300s timeout. It is
|
|
# an environment artifact, not an rsync bug (the handshake is
|
|
# deadlock-free and unreproducible elsewhere, even pinned to 1 CPU at
|
|
# -j8); -j2 keeps the VM from over-subscribing. The pipe `make check`
|
|
# above stays at the default parallelism.
|
|
./runtests.py --rsync-bin=`pwd`/rsync --use-tcp -j 2
|
|
./rsync-ssl --no-motd download.samba.org::rsyncftp/ || true
|
|
- name: save artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: openbsd-bin
|
|
path: |
|
|
rsync
|
|
rsync-ssl
|
|
rsync.1
|
|
rsync-ssl.1
|
|
rsyncd.conf.5
|
|
rrsync.1
|
|
rrsync
|