NAS-141951 / 27.0.0-BETA.1 / fix SMART alerts on drives that crash (#19430)
Fix a KeyError crash when the `passed` key doesn't exist in the smartctl
output in json form. We're installed on a range of hardware that
misbehaves. Furthermore, the lack of deterministic shapes in responses
with the json flag in smartctl is alarming.
[NFC][OpenMP] Add mapper-specific tests exercising pointee section mapping. (#204269)
* Add a few tests for when a mapper does something like `map(s.p[0:10])`
where `p` is a pointer.
* Add a few tests that require propagation of bits like `present/always`
into a mapper.
* Fix a few tests that were expecting `p` to be mapped when the mapper
only said `map(s.p[0:10])`.
The output of a few tests is different from what we expect. They have
been annotated with FIXMEs, and the expected output for when the
follow-up changes in this stack to propagate the map-type-modifier bits
and using attach-style mapping for mappers get merged.
---------
Co-authored-by: Claude Opus 4.8 <noreply at anthropic.com>
Fix termination of clustered secrets entry migration
This commit fixes an issue where the clustered secrets file
entries were being migrated with a terminated an extra null.
The termination behvaior depends on the particular tdb file
in question in samba / winbind.
(cherry picked from commit 0500a6c551c3ca84009020689c520819a324fde0)
Fix termination of clustered secrets entry migration
This commit fixes an issue where the clustered secrets file
entries were being migrated with a terminated an extra null.
The termination behvaior depends on the particular tdb file
in question in samba / winbind.
(cherry picked from commit 0500a6c551c3ca84009020689c520819a324fde0)
NAS-141967 / 27.0.0-BETA.1 / Fix termination of clustered secrets key names (#19422)
This commit fixes an issue where the clustered secrets file entries were
being migrated with a terminated an extra null for their name. The
termination behavior depends on the particular tdb file in question in
samba / winbind.
openssh: Move back UseBlocklist to global config
Revert UseBlocklist from SSHCFG_ALL to SSHCFG_GLOBAL (with
SSHCFG_COPY_NONE), ensuring it can only be set globally in sshd_config
rather than within conditional Match blocks, matching historical
behavior.
Reviewed by: emaste
Fixes: bb5c77e9d281 ("OpenSSH: Update to 10.4p1")
Differential Revision: https://reviews.freebsd.org/D58520
Revert "[Driver][SYCL] Add compile-time device library linking for SPIR-V targets" (#212550)
Reverts llvm/llvm-project#196656
The CI does not yet build compiler-rt with SPIR-V support, so
libclang_rt.builtins.bc is absent on that bot. This change made the
missing file a hard error, breaking all libsycl functional tests that
compile with -fsycl.
Re-landing after CI is updated to build compiler-rt for SPIR-V.
NAS-141948 / 26.0.0-BETA.3 / Fix `JobProgressBuffer.set_progress` not being thread-safe (by themylogin) (by bugclerk) (#19431)
`JobProgressBuffer.set_progress` called `self.job.loop.call_later`. When
doing so from a thread, it might break event the loop.
Original PR: https://github.com/truenas/middleware/pull/19402
Original PR: https://github.com/truenas/middleware/pull/19409
---------
Co-authored-by: themylogin <themylogin at gmail.com>
PowerPC: Rename "float-abi" module flag to "long-double-type" (#210817)
PPC was emitting a "float-abi" module flag for indicating the type of
long double. The "float ABI" naming is already widely taken by soft vs.
hard float controls (e.g., the clang flag is called -mfloat-abi), so this
shouldn't have taken it. This should also not be PPC specific; x86 has
the same problem. Rename the flag to the more specific
long-double-type, and add appropriate verification and documentation
(which was also missing). Also changes the value names to match the IR
type names.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[clang][ClangScanDeps] Relax logging-two-threads for duplicate module validation (#210587)
`ClangScanDeps/logging-two-threads.c` is flaky. It asserts each module's
timestamp is written exactly once, but under
`-fmodules-validate-once-per-build-session` two workers scanning
different TUs can both notice the shared module is unvalidated this
session and each validate and record it before the other's write lands,
so its timestamp is written once or twice depending on the interleaving.
The double write is harmless: the timestamp field is atomic and both
workers store the same session time. Only the exact-count assertion was
wrong.
Relax the test to the real invariant: the shared module A is written
once or twice and the single-TU module B exactly once. Module compile
and pcm write stay exactly once (the in-memory cache builds each module
once) and the per-module event ordering is still checked by the sequence
blocks.
[4 lines not shown]
[CodeGen] Stop requiring analyses that no pass reads (#212430)
Remove analysis requirements whose pass never calls getAnalysis for
them, and MachineSchedContext::MDT, which no scheduler reads. Also remove
addPreserved calls subsumed by setPreservesCFG (MachineDominatorTree and
MachineLoopInfo are CFG-only analyses) and a now-unpaired INITIALIZE_PASS_DEPENDENCY.
The PowerPC, Hexagon and R600 pipelines each drop a MachineDominatorTree
construction.
Aided by Claude Opus 5
[SPIRV] Preserve sign-sensitive width record across G_TRUNC replacement (#211626)
**Summary**
Follow-up to #203661. When the `G_TRUNC` handler in `SPIRVPreLegalizer`
collapses source and destination to the same widened width, it calls
`MRI.replaceRegWith(DstReg, MaskedReg)` and drops the original
`G_TRUNC`. The `SignSensitiveInfo.OrigWidth` map, however, was still
keyed on `DstReg`, so `widenSignSensitiveOps` no longer found the narrow
original width and skipped the `shl/ashr` sign extension for signed
users of the truncated value.
Rekey `OrigWidth` from `DstReg` to `MaskedReg` before the
`replaceRegWith` so signed ops fed by the truncated value still receive
`G_SEXT_INREG` on the widened type.
**Test plan**
New test case is added to
`llvm/test/CodeGen/SPIRV/legalization/signed-narrow-int.ll`: `trunc i8 →
i4` feeding `icmp slt` — src and dst both widen to `i8`, exercising the
same-width `replaceRegWith` path. Checks that the widened `i8` compare
is preceded by matching `OpShiftLeftLogical / OpShiftRightArithmetic`
pairs on both operands.
[SimplifyCFG] Handle degenerate conditional branch (#212552)
IR before entering the function:
```
define void @func(i1 %cond) {
entry:
br i1 %cond, label %exit, label %exit
exit: ; preds = %entry, %entry
%phi = phi i1 [ false, %entry ], [ false, %entry ]
tail call void @llvm.assume(i1 %phi)
ret void
}
```
The original code only removes one edge. There is still an edge from
entry to exit, triggering the `Deleted edge still exists in the CFG`
assertion.
Closes https://github.com/llvm/llvm-project/issues/212542
[asan][NFC] Fix comments in asan_poisoning.cpp (#212449)
Remove duplicated wording and fix typos in comments.
Signed-off-by: Jinseok Kim <always.starving0 at gmail.com>
[lldb] Report the unwound PC for WebAssembly caller frames (#212326)
RegisterContextWasm delegated the PC register read to
GDBRemoteRegisterContext, which reports the live innermost PC for every
frame. Resolving a variable whose DWARF location is a location list in a
caller frame therefore chose the entry using the innermost frame's PC
instead of the caller's, so the variable read back as unavailable even
though its location covered the caller's PC.
Return the program counter the WebAssembly unwinder recorded for the
frame (from qWasmCallStack) when reading a caller frame's PC, so the
location list entry uses the correct frame.
NAS-141988 / 25.10.6 / Move remote disk retaste call in failover event (by yocalebo) (by bugclerk) (by bugclerk) (#19429)
There is no reason that this remote call should be ran before we import
the zpool. This is sending a request to the remote controller on an HA
system and who knows what state it's in at the time we make the request.
The point is that it should never delay or block the importing of the
zpool on the master event.
This does 3 things:
1. move the remote call to outside the "critical" failover section to
prevent unnecessary delays in restoring services in a failover event
2. fix the logging messages to be persistent
3. add the `job: "RETURN"` argument to `failover.call_remote` so we do
not wait for this to complete at all. We just fire and forget
Original PR: https://github.com/truenas/middleware/pull/19426
Original PR: https://github.com/truenas/middleware/pull/19427
[4 lines not shown]