tests/sys/kern: stress FP registers across sigreturn on powerpc64
This is the program that found the races fixed in 1f1043d550ea. One
thread keeps a pattern in f14-f31 across a signal, while helpers pinned
to the same CPU keep different patterns in the real registers and get
woken up from another CPU to preempt it at random points. If the kernel
ever hands it somebody else's registers, the pattern doesn't match.
The register loads, the thr_kill() and the handshake with the helper are
in assembly so that nothing touches the FP registers between sigreturn
and the check. It runs for ten seconds and is skipped with fewer than
two CPUs.
Requested by: adrian
Approved by: jhibbits
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D60411
powerpc64: give each CPU its own KDB trap stack
Kernel mode program, trace, breakpoint and machine check exceptions go
through dbtrap, which saves the registers on trapstk and, if KDB doesn't
want the trap, restores them from there and continues with the normal
trap handler. There was just one trapstk for all CPUs, so when two of
them trapped at the same time they overwrote each other's frame and one
of them carried on with the other's registers. DTrace fbt probes are
these traps, so a probe on a function that runs on several CPUs at once
took the kernel down within seconds.
Keep the stack in the pcpu instead. The boot CPU gets a static one,
since it's set up before malloc works, the others allocate theirs in
cpu_pcpu_init() like the Book-E critical interrupt stack.
Approved by: jhibbits
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D60362
databases/postgresql19-server: Update to 19RC1
The PostgreSQL Global Development Group announces that the first release
candidate of PostgreSQL 19 is now available for download. As a release
candidate, PostgreSQL 19 RC 1 will be mostly identical to the initial
release of PostgreSQL 19, though some more fixes may be applied prior to
the general availability of PostgreSQL 19.
To upgrade to PostgreSQL 19 RC 1 from earlier versions of PostgreSQL,
you will need to use a major version upgrade strategy, e.g. pg_upgrade
or pg_dump / pg_restore. For more information, please visit the
documentation section on upgrading:
https://www.postgresql.org/about/news/postgresql-19-rc-1-released-3409/
www/bunkerweb: Update to 1.6.16
The web UI now compresses its responses, which adds py-brotli and
py-flask-compress to the run dependencies.
Replace the LUA_VER substitutions makeplist left in pkg-plist: they
stand for parts of bundled version numbers, not for the Lua version.
Changes: https://github.com/bunkerity/bunkerweb/releases/tag/v1.6.16
Sponsored by: Netzkommune GmbH
rtld: add .cfi_undefined lr to rtld_start.S on powerpc*
Without it, LLVM libunwind doesn't know where to stop when unwinding the
main thread, so it uses a stale LR as the return address and crashes.
Our libunwind doesn't do that since 5866c369e4fd reverted it, but
programs that bundle their own copy, like ClickHouse, are hit by it.
amd64, arm64, i386 and riscv already have the same annotation.
Approved by: jhibbits
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D60740
acpi_apple: Apple platform ACPI driver,
handles wake-on-LAN arming and lid state on the PCH
PMC/GMUX platform instance, and panel backlight
control on the PNLF instance, registering with
backlight(9).
Reviewed by: ziaee, adrian
Differential Revision: https://reviews.freebsd.org/D58867
ggate: fix test intermittency
* ggatel: fix piped output. Flush stdout before daemonizing, so the
output can be read when it's in a command pipeline.
* ggated: bind the port _before_ daemonizing, so an invoking script can
be sure that the port is bound as soon as the command returns.
* tests: allow ggatec or ggatel to automatically allocate a device
number instead of choosing one in a racy way.
With all of these changes I can no run the tests 1000 times without
fail. And in parallel, too.
MFC after: 1 week
Sponsored by: ConnectWise
PR: 298942
Reported by: siva
Reviewed by: ngie
Differential Revision: https://reviews.freebsd.org/D60707
www/{nginx,nginx-devel,freenginx}: Bump PORTREVISION for the module updates
The cache_purge, njs and lua modules are built into these ports, and a
BUILD_DEPENDS does not rebuild them by itself.
Sponsored by: Netzkommune GmbH
www/nginx-module-njs: Update to 1.0.2
Fixes memory corruption in RegExp operations, crashes after a failed
module compilation, and excessive resource usage when sorting huge sparse
arrays.
Both local patches are gone: njs 1.0.2 carries the indexed fast path fix
for exotic objects itself.
Sponsored by: Netzkommune GmbH
www/nginx-module-lua: Update to 0.10.31
Two stable releases at once, 0.10.29 is from 2025.
All three local patches are gone: 0.10.31 guards the freenginx cases
upstream, in the client hello handler, in the subrequest start time and in
ngx_http_lua_time.
Sponsored by: Netzkommune GmbH