cmcfarlen opened a new pull request, #13526:
URL: https://github.com/apache/trafficserver/pull/13526

   Fifth round of cherry-picks for the 10.2.0 release candidate, covering the 
PRs at "For v10.2.0" in the [ATS v10.2.x 
project](https://github.com/orgs/apache/projects/573).
   
   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 |
   |---|---|
   | #13517 | Bound `RegexMatches::operator[]` by what the match populated |
   | #13352 | prefetch: don't drop replacements for non-participating optional 
capture groups |
   | #13523 | Shut the client read side down per transaction, not per 
connection |
   
   **Merge order is load-bearing here even though no files overlap.** #13352's 
`replace()` relies on `matches[replIndex]` returning a non-null view for a 
capture group inside the match count that did not participate:
   
   ```cpp
   std::string_view dst = (replIndex < matchCount) ? matches[replIndex] : 
std::string_view{""};
   PrefetchDebug("replacing '$%d' with '%.*s'", replIndex, 
static_cast<int>(dst.length()), dst.data());
   ```
   
   The `""` there covers only the out-of-range branch. The 
non-participating-but-in-range case is what #13517 fixes centrally, by 
returning `""` instead of a default-constructed `std::string_view` from 
`RegexMatches::operator[]`. #13441 — already on this branch — introduced that 
null-`data()` return, so picking #13352 without #13517 first would leave a null 
pointer reaching `"%.*s"` and `std::string::append`. #13517 merged four minutes 
before #13352 upstream, so master merge order gives the correct sequence.
   
   #13523 completes the other half of #12529: `state_watch_for_client_abort` 
reached past the transaction to the shared `NetVConnection` to half-close the 
client read side, which for HTTP/2 and HTTP/3 stopped the whole session from 
reading frames for every other stream. #12529 converted the two branches it 
touched but left the pre-existing `IO_SHUTDOWN_READ` call, and `HttpSM.cc` was 
the only site in the tree still doing that.
   
   Verified before pushing: every `Disk.*` attribute, `Test.*` helper and 
`Condition.*` used by the new tests exists on this branch — including 
`Test.AddAwaitFileContainsTestRun` and 
`Condition.HasProxyVerifierVersion('2.8.0')`, which this branch satisfies since 
it pins Proxy Verifier v3.1.3 — and all eight `proxy.config.*` records the new 
tests reference resolve in `RecordsConfig.cc`. No picked test reaches for a 
master-only config idiom (`ssl_multicert_yaml` or `storage_yaml`).
   
   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.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to