Update S3 snapshot version tests for the new id format and name cache
The daemon now spells a snapshot version id as zfs.<created>.<hex(name)>
and checks the instant against the snapshot's creation, and its
snapshot-name cache is invalidated by .zfs/snapshot's change time
rather than a timer. The tests still used the old zfs.<hex(name)> id
and asserted that a recreated snapshot served under the old id.
- Build ids from `zfs get creation`; check listed ids decode to the
snapshot name and creation.
- Reject the old spelling, non-canonical instants and a wrong instant.
- After destroy and same-name recreate: old id is NoSuchVersion, new id
serves and lists. Wait past the creation second first, since ZFS
stamps creation in whole seconds.
- A snapshot created, renamed, or destroyed under the running daemon
appears in / leaves the next listing. Rename keeps the creation.
- Drop the destroy retry loop and lazy umount; an EBUSY here is a bug.
(cherry picked from commit de09ce2b7d04a9b69877c11b5919522154b012e7)
NAS-143965 / 27.0.0-BETA.1 / Update S3 snapshot version tests for the new id format and name cache (#19821)
The daemon now spells a snapshot version id as zfs.<created>.<hex(name)>
and checks the instant against the snapshot's creation, and its
snapshot-name cache is invalidated by .zfs/snapshot's change time rather
than a timer. The tests still used the old zfs.<hex(name)> id and
asserted that a recreated snapshot served under the old id.
- Build ids from `zfs get creation`; check listed ids decode to the
snapshot name and creation.
- Reject the old spelling, non-canonical instants and a wrong instant.
- After destroy and same-name recreate: old id is NoSuchVersion, new id
serves and lists. Wait past the creation second first, since ZFS stamps
creation in whole seconds.
- A snapshot created, renamed, or destroyed under the running daemon
appears in / leaves the next listing. Rename keeps the creation.
- Drop the destroy retry loop and lazy umount; an EBUSY here is a bug.
[libc++] Add a compact, bounded iterator (#208271)
- By taking advantage of unused alignment bits for a pointer of type `T`
and the static capacity known at compile time, we can make a compact
bounded iterator who's size == `sizeof(T*)` by stuffing a counter inside
those bits.
- This new iterator type is `static_packed_bounded_iterator<class _Ptr, size_t _RangeCapacity>` and is only valid if:
- `_Ptr` is a pointer
- `_RangeCapacity` is <= `(1 << (bit_width(alignof(T)) - 1)) - 1`. The
extra -1 is required, because we need to represent the end position past
the last element.
---------
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
amd64 memchr(3): Fix case when ptr + len wraps around address space.
While here, give meaningful names to the various internal labels.
PR lib/60744: memchr(3) is busticated
atari: Fix fatal 68030 MMU TC initialization bug
ATARITT kernels from NetBSD 11.0 and -current fail to boot on my
Atari TT030.
The inline asm that loads TC specifies only `"a" (&tc)` as an input,
so the compiler may eliminate the initialization of tc as a dead store.
Then the generated code loads an uninitialized value from the stack
into TC.
Add an `"m" (tc)` input operand to the inline asm so that the compiler
knows that the asm reads tc from memory.
Tested with both NetBSD 11.0 and -current on Atari TT030 and
must be pulled up to netbsd-11.
[clang-tidy] Add detection of decltype(nullptr) => std::nullptr_t to modernize-use-nullptr (#224591)
Hidden behind an option switch, but on by default.
Provide both the peer's unverified bundle, and the verified chain.
Our tls_peer_cert_chain_pem was always the full bundle of unverified
certificates sent by the peer, which can certainly violate the
principle of least astonishment.
Provide tls_peer_cert_bundle_unverified_pem and
tls_peer_cert_chain_verified_pem and adjust the documentation for both
to indicate what they are returning.
We also indicate that tls_peer_cert_chain_pem returns the unverified bundle
and may go away in a future release.
firefox52: fix a type problem
Still doesn't build:
ld: warning: ../../../firefox-52.9.0esr/toolkit/library/StaticXULComponents.ld contains output sections; did you forget -T?
ld: cannot find -lcrmf: No such file or directory
ld: cannot find -lsmime: No such file or directory
ld: cannot find -lnss: No such file or directory
ld: cannot find -lnssutil: No such file or directory
[RISCV] Add UImmLsbZeroAsmOperand class to use isUImmShifted<N, S> as the PredicateMethod. NFC (#224789)
Allows us to remove some wrappers from RISCVAsmParser.
[SelectionDAG] Document that UADDO/USUBO_CARRRY follow getBooleanContents. NFC (#224764)
Use 'true' instead of '1'.
Follow up from post commit discussion in #223396.
[DAGCombiner] Restrict combineOrOfSetCCToUSUBOCarry to ZeroOrOneBooleanContent. (#224759)
We need to ensure the carry in matches boolean contents. We are checking
MaskedValueIsZero which is only valid for ZeroOrOneBooleanContent.
We could check ComputeNumSignBits for ZeroOrNegativeOneBooleanContent,
but no in tree target supports USUBO_CARRY and
ZeroOrNegativeOneBooleanContent.
This was an oversight in #223396 due to incorrect documentation for
USUBO_CARRY. I will fix that in a separate patch.
[flang][OpenMP] Reword some diagnostic messages, NFC
Instead of "something...something in OpenMP vX.Y on SOME clause" say
"something...something on SOME clause in OpenMP vX.Y".
hastd: Use fixed-length protocol names
All communication between hastd nodes and internally between hastd and
its worker children passes through the same pair of send / receive
functions. The receive function uses recv(2) with the MSG_WAITALL flag,
which in theory means we should never get a short read. However, when
handing off a socket to a worker child, we also pass a variable-length
string identifying the type of socket we're passing, and reading this
string relies on a short read. This used to work because the arrival of
the descriptor would interrupt the recv(2) call, but this bug was fixed
when the AF_UNIX code was rewritten a while ago and hastd has been
broken ever since.
Fixing the length of the protocol name to four characters including the
terminating null solves the short-read bug by never requiring a short
read (nothing else in hastd requires one).
Note that this issue appears to have been reported independently first
by Alessandro Sagratini in PR 292322 and then by Martin Vidovic in
[11 lines not shown]
hastd: Ensure nvpair padding is initialized
The proto-libnv implementation embedded in hastd pads names and values
out to the nearest multiple of eight bytes, but leaves the padding
uninitialized, leaking up to 14 bytes of recycled heap per pair in a
message.
While here, switch from bcopy() to memcpy().
MFC after: 3 days
Reviewed by: kevans, emaste
Differential Revision: https://reviews.freebsd.org/D59343
(cherry picked from commit 911bda7cffbf358c4e83ea05cfe980d429aff61c)
tests: Fix graid3 insert tests
The script was passing the wrong device name to `graid3 insert` and
didn't notice that the command was failing.
MFC after: 1 week
Event: EuroBSDcon 2026 DevSummit
Reviewed by: delphij
Differential Revision: https://reviews.freebsd.org/D59564
(cherry picked from commit 4cc85d1f00fa1938923fe8d6fc2934593d4303b4)
graid3: Restore lock acquisition
The lock acquisition in g_raid3_ctl_insert() was improperly dropped a
while ago, making it impossible to add or replace a device in an
existing graid3. This went unnoticed because the tests are broken.
MFC after: 1 week
Fixes: fcf69f3dbce6 ("Consistently use gctl_get_provider instead of home-grown variants.")
Event: EuroBSDcon 2026 DevSummit
Reviewed by: delphij
Differential Revision: https://reviews.freebsd.org/D59563
(cherry picked from commit 9094f86b57a7e4b356cae83f35c8d41c842b42a2)
hastd: Ensure nvpair padding is initialized
The proto-libnv implementation embedded in hastd pads names and values
out to the nearest multiple of eight bytes, but leaves the padding
uninitialized, leaking up to 14 bytes of recycled heap per pair in a
message.
While here, switch from bcopy() to memcpy().
MFC after: 3 days
Reviewed by: kevans, emaste
Differential Revision: https://reviews.freebsd.org/D59343
(cherry picked from commit 911bda7cffbf358c4e83ea05cfe980d429aff61c)
hastd: Use fixed-length protocol names
All communication between hastd nodes and internally between hastd and
its worker children passes through the same pair of send / receive
functions. The receive function uses recv(2) with the MSG_WAITALL flag,
which in theory means we should never get a short read. However, when
handing off a socket to a worker child, we also pass a variable-length
string identifying the type of socket we're passing, and reading this
string relies on a short read. This used to work because the arrival of
the descriptor would interrupt the recv(2) call, but this bug was fixed
when the AF_UNIX code was rewritten a while ago and hastd has been
broken ever since.
Fixing the length of the protocol name to four characters including the
terminating null solves the short-read bug by never requiring a short
read (nothing else in hastd requires one).
Note that this issue appears to have been reported independently first
by Alessandro Sagratini in PR 292322 and then by Martin Vidovic in
[11 lines not shown]
tests: Fix graid3 insert tests
The script was passing the wrong device name to `graid3 insert` and
didn't notice that the command was failing.
MFC after: 1 week
Event: EuroBSDcon 2026 DevSummit
Reviewed by: delphij
Differential Revision: https://reviews.freebsd.org/D59564
(cherry picked from commit 4cc85d1f00fa1938923fe8d6fc2934593d4303b4)
graid3: Restore lock acquisition
The lock acquisition in g_raid3_ctl_insert() was improperly dropped a
while ago, making it impossible to add or replace a device in an
existing graid3. This went unnoticed because the tests are broken.
MFC after: 1 week
Fixes: fcf69f3dbce6 ("Consistently use gctl_get_provider instead of home-grown variants.")
Event: EuroBSDcon 2026 DevSummit
Reviewed by: delphij
Differential Revision: https://reviews.freebsd.org/D59563
(cherry picked from commit 9094f86b57a7e4b356cae83f35c8d41c842b42a2)
Merge tag 'x86-urgent-2026-09-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Ingo Molnar:
- Reject the loading of a potentially problematic microcode version
on Intel Granite Rapids systems (Chang S. Bae)
- On FRED, reconstruct the proper #GP context for rejected INT
instructions, to fix a signal ABI regression (Matthew Schwartz)
- Add a test for this signal ABI regression the x86
self-test suite (Matthew Schwartz)
- Don't emit the new and not yet properly supported EGPR instructions
(%r16-%r31) on CONFIG_X86_NATIVE_CPU=y builds (Chang S. Bae)
* tag 'x86-urgent-2026-09-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/build/64: Prevent native builds from generating EGPR use
selftests/x86: Check signal state for rejected software interrupts
[2 lines not shown]