Skip to content

Cherry-picks for 10.2.0 RC1 (2026-08-12) - #13539

Merged
cmcfarlen merged 5 commits into
apache:10.2.xfrom
cmcfarlen:10.2.x-picks-20260812
Aug 12, 2026
Merged

Cherry-picks for 10.2.0 RC1 (2026-08-12)#13539
cmcfarlen merged 5 commits into
apache:10.2.xfrom
cmcfarlen:10.2.x-picks-20260812

Conversation

@cmcfarlen

Copy link
Copy Markdown
Contributor

Cherry-picks for the 10.2.0 RC1, covering the PRs at "For v10.2.0" in the ATS v10.2.x project — the fixes and feedback that came out of rc0 testing.

All picked with git cherry-pick -x in master merge order. Every pick applied cleanly with no conflicts, and each commit's diffstat matches its master commit exactly.

PR Title
#13532 Fix signature on flz_maxcopy to avoid cast error
#13531 Change libswoc test for undefined errno to a much higher number
#13535 Fix an intermittent cache unit test deadlock at exit
#13536 cache: fix shm sizing on large-page Linux
#13537 Share regex_remap rule sets

Two of these are follow-ups to work already on this branch, so ordering relative to the earlier rounds matters more than ordering among themselves (no files overlap within this batch):

One thing worth noting about the #13536 pick. This branch carries a local adaptation to include/shared/cache_shm/Layout.h: the storage_signature comment says storage.config rather than master's storage.yaml, because that is the file this release actually reads. #13536 also edits Layout.h, but in a different region (the control-segment size helper around line 87 versus the comment at line 70), so the pick applied without touching the adaptation. Verified afterward that no storage.yaml reference has crept back into include/, src/, doc/ or tests/.

Verified before pushing: every Disk.* attribute and Test.* helper used by the new and modified tests exists on this branch — Test.AddConfigReload (via #13502) and Test.AddAwaitFileContainsTestRun in particular — and no picked test reaches for a master-only config idiom.

Local build is clean and ctest is 167/167. cmake --build ... --target format makes no changes.

Draft so the full CI matrix runs against the picked set before the release branch moves; it will be landed by fast-forward.

jeredfloyd and others added 5 commits August 12, 2026 10:28
flz_maxcopy takes void* arguments but calls fastlz_memcopy (taking uint8_t* arguments) without a cast. I don't see a reason for flz_maxcopy to not take uint8_t* arguments; for arch-specific speedups these get cast to the appropriately-sized pointer. Resolves build issues on ppc64le architecture.

(cherry picked from commit ad0b638)
…he#13531)

libswoc tests include one that expects errno 134 to be unknown;
this is no longer the case in Linux 7.2. This patch increases the
errno to one that should be unknown for the forseeable future.

(cherry picked from commit a2009d7)
The cache unit test harness starts the event and net processors but
never stops them, so every test binary reaches exit() with ET_NET
threads still running. Static destruction then frees globals out from
under those threads: the records table in RecCore.cc is destroyed while
a still-initializing event thread reads it through RecGetRecordInt(),
and the ts::Metrics storage blob is released while NetHandler's activity
loop increments a counter into it. Both are heap-use-after-frees, and
under ASan the reporting thread races the exiting main thread. Usually
the process dies first and the report is truncated to two lines with a
zero exit status, so ctest reports a pass; occasionally the report
deadlocks instead and the test hangs until ctest times it out after
1500 seconds. The short tests that never touch the cache lose this race
most often, which is why CacheAggregateWriteBuffer and CacheStripe are
the ones that fail.

This addresses the deadlock at its source by giving the harness's Catch2
listener a testRunEnded hook that shuts the event system down and joins
the event threads before the test binary returns from main. Once the
threads are gone, static destruction has no concurrent reader to race,
so neither use-after-free can be reported and the ASan reporting
deadlock cannot arise.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
(cherry picked from commit 0c18d46)
POSIX shared-memory objects on Linux retain the exact length passed
to ftruncate(), but the cache shm gates accepted any size through the
next page boundary. On 64 KiB-page systems, a foreign control layout
could therefore be treated as compatible, causing cleanup and tooling
paths to walk an untrusted stripe table and leave segments behind.

This patch requires exact shared-memory object sizes outside macOS
while preserving macOS's page-rounded allowance. It keeps the
foreign-layout test at its original size and directly covers the
platform-specific sizing contract.

Fixes: apache#13534
(cherry picked from commit f0668e1)
Reloading remap.config becomes slow when it contains many mappings that
reference the same regex_remap rule files. Since the PCRE2 conversion,
every plugin instance JIT-compiles an independent copy, making reload
time scale with instances rather than unique rule sets.

This patch caches immutable compiled rule sets by resolved filename and
exact source content. It keeps match contexts and profiling counters per
instance and uses weak ownership so obsolete reload generations are
released, preserving JIT request performance without redundant reload
work.

(cherry picked from commit f869b9c)
@cmcfarlen
cmcfarlen merged commit 3ac694d into apache:10.2.x Aug 12, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants