Mirror SMB local account state to HA standby
passdb.tdb, the SMB account policy stored inside it, and group_mapping.tdb are
node-local derived state. Account changes made on the active controller updated
them only there, so the standby carried a stale copy until its next boot or
takeover.
A normal failover reconciles this on its own: cifs is a dependent service, so
directoryservices.setup runs smb.configure before restarting it and no client
is ever authenticated against the stale copy. The window before that completes
is still visible to an administrator, though. Samba tools run on the new active
node as soon as it comes up report the pre-failover accounts, account policy
and group mappings, which is needlessly confusing.
Add smb.synchronize_local_accounts, a single job that reconciles all three
against the configuration database, and route the existing hand-rolled
orchestration through it:
- smb.configure replaces apply_account_policy + synchronize_passdb +
[16 lines not shown]
[lldb][test] Skip the sp/rsp check in register sets that have no rsp (#226176)
The test asserts the ABI name `"sp"` resolves to `"rsp"` within the same
register set. However, on Windows the architectural 16-bit `"sp"` lives
in `"supplementary registers"` while `"rsp"` is in `"General Purpose
Registers"`, so there is nothing to compare against.
https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/x64-architecture
This fixes `python_api/value/TestValueAPI.py` (`test_register`) on
Windows in swiftlang.
NAS-144052 / 26.0.0-RC.1 / Only use `create_task` from main loop
`loop.create_task` is not thread-safe
Original PR: https://github.com/truenas/middleware/pull/19865
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
Revert "[AArch64][CostModel] Consider some nxv1 operations as legal" (#226531)
Reverts llvm/llvm-project#214471
This caused a failure in
https://lab.llvm.org/buildbot/#/builders/198/builds/15417 and I want to
spend a bit more time to test the ISel for vector_reverse and
vector_splice. It's also quite surprising that the test picked a VF of
`vscale x 1`
[clang-repl] Initialized HIP environment for clang-repl (#217582)
This PR initializes the HIP environment for clang-repl. Since an
IncrementalHipDeviceParser does not exist yet, a message is printed
after the environment setup indicating that the HIP environment was set
up but is not yet supported.
It also adds a test file that runs clang-repl with the -hip option and
checks that this message is printed. Once the parser is built, the
current test file will be removed and replaced with tests that verify
the complete flow.
This PR has a prerequisite, #217228, which skips emitting the
`__hip_cuid_` global under incremental extensions. Without it,
clang-repl's HIP mode would emit the same symbol in every incremental
module and fail at JIT link with a duplicate-symbol error.
Assisted by Claude Opus 4.8
[GVN] Don't coerce forwarded byte values through integers
When GVN forwards a store to a load of a different type, it goes through an
integer. It casts the stored value to `iN`, then shifts and truncates it. For
byte values that cast is wrong. It drops pointer provenance, and a single
poison bit makes the whole result poison.
Byte stores, and pointer stores that feed byte loads, no longer go through an
integer. GVN bitcasts the stored value to `bN`, takes the loaded bits with
`bitextract`, and bitcasts the result to the load type. Byte vector stores
take the same path.
[lldb] Introduce DynamicRegisterInfo::RegisterSetWithStorage (#225555)
The RegisterSet struct is created in 2 different ways:
1.) Statically in headers/source files for register sets that are known
ahead of time.
2.) Dynamically according to input from outside of LLDB. Usually this is
through the gdb-remote stub, but may also come from a python script or
by determining an ISA variant's features (e.g. in RISCV).
This PR aims to address the lifetime of strings in RegisterSet. In
scenario (1), the lifetime of all data in a RegisterSet is static and
there is no concern about dangling pointers. However, in scenario (2),
DynamicRegisterInfo maintains a vector of RegisterSets. Until now, it
has relied on ConstString to persist the storage for the strings
indefinitely. As part of my quest to remove ConstString, I am
introducing a new struct wrapping RegisterSet that is responsible for
the storage and lifetime of the underlying RegisterSet strings.
Mips: Remove redundant Triple copy from the subtarget (#226528)
MCSubtargetInfo already stores the target triple, so MipsSubtarget's own
copy is unnecessary.
Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
compat/linux: Fix IFLA_IFNAME translation for multi-message netlink
nlmsg_translate_ifname_nla() always used nw->ifp for the name,
which is fine for a single-message ifnet event, but an RTM_GETLINK
dump holds one RTM_NEWLINK per interface and is translated with
the ifp the writer had when the buffer was flushed.
The root of the problem is that msgs_to_linux() takes a single
ifp for a buffer that may contain messages about many interfaces.
Use ifi_index to resolve the name instead.
Reviewed by: glebius
Differential Revision: https://reviews.freebsd.org/D59595