cmcfarlen commented on PR #13189:
URL: https://github.com/apache/trafficserver/pull/13189#issuecomment-4512896481
# Trial Revert v2 — Notes
Companion log for `revert-incompat-plan-v2.md`. Each section captures one
revert step on branch `revert-incompat-trial-v2`.
## Setup
- **Source branch**: `upstream/master`
- **Source HEAD**: `09c4f8a125` (Enable code review settings in .asf.yaml,
#13183)
- **Trial branch**: `revert-incompat-trial-v2`
- **Plan**: 11 reverts, dependency-aware order, pre-emptive LogAccess
fix-up after 11-Dev revert.
## Reverts
### Step 1–4: Config-reload + TLS-cert-compression dependents
| Step | PR | Commit | Result |
|---|---|---|---|
| 1 | #13090 | `4645b7dcb3` | clean, 43 files / +227 -903 |
| 2 | #13110 | `34790b0a9d` | clean, 10 files / +11 -657 |
| 3 | #13117 | `4f1d3594dd` | clean, 4 files / -27 |
| 4 | #13088 | `b98d8d0b31` | clean (large; deletes TLS cert compression
infra) |
### Step 5: #13070 plugin.yaml migration
| | |
|---|---|
| Commit | `49d109470b` |
| Result | **clean** (was 6 conflicts in v1; the dependent reverts cleared
the path) |
### Step 6–7: Storage migration chain
| Step | PR | Commit | Result |
|---|---|---|---|
| 6 | #13048 | `9828150402` | clean, 3 files |
| 7 | #13031 | `6d32974095` | **clean** (was 5 conflicts in v1; #13048 +
#13070 reverts already removed) |
### Step 8: #12998 Parallel SSL cert load
| | |
|---|---|
| Commit | `e5136dde5b` |
| Result | clean, 8 files (auto-merged records.yaml docs, RecordsConfig.cc,
SSLConfig.cc) |
### Step 9: #12988 + #12997 — surface conflict on ReverseProxy.cc
Initially attempted `git revert #12997` directly. Hit:
- 1 content conflict in ReverseProxy.cc
- 10 modify/delete conflicts on `tests/gold_tests/remap_yaml/*.yaml` files
(added by #12997, modified by #13003 "Proxy Verifier: use concise stack
protocol")
Aborted, added **#12988** ("Publish remap table after initial load") to the
revert list. #12988 is *not* incompatible — it's a compat improvement —
but it touched the same `init_reverse_proxy()` block as #12997, creating a
surface-level conflict.
Revert order: #12988 → #12997. Both clean after that.
| Step | PR | Commit |
|---|---|---|
| 9a | #12988 | `f0b3be46b7` |
| 9b | #12997 | `8ef420635d` |
### Step 10: 11-Dev merge (#12983)
| | |
|---|---|
| Commit | `30a01d6e41` |
| Result | **9 conflicts** (down from 17 in v1 — dependent reverts cleared
most surfaces) |
Conflict resolution:
- Manual: `Filenames.h`, `hostdb/CMakeLists.txt` (kept #13115
`add_subdirectory(unit_tests)`), `records/CMakeLists.txt` (kept only
`test_RecDumpRecords.cc`), `P_SSLConfig.h` (restored session-cache fields).
- `--theirs`: `SSLUtils.cc` (tightly coupled to ssl_multicert.yaml), 4× gold
tests.
- `git rm`: 1 UD file (`negative-caching-malformed-cc.replay.yaml`).
### Step 11: #12913 master-side version bump
| | |
|---|---|
| Commit | `f0f4f16149` |
| Result | clean, 1 line |
### Step 12 (added during execution): #12404 cqssrt log field
After 11-Dev revert, the restored `marshal_client_ssl_resumption_type`
function referenced `m_http_sm`, which #13123 (kept on master, in 10.2.x as
#13124) renamed to `m_data`. v1 fixed this with a fixup commit; v2 instead
reverts the original PR (#12404) for cleanliness.
| | |
|---|---|
| Commit | `26cafc24d2` |
| Result | clean, 5 files / +3 -49 |
#12404 is in **both** master and 10.2.x (pre-divergence). Reverting it on
the trial branch is safe; reverting it in production would require also
removing the `cqssrt` log field from 10.2.x (out of scope for the trial).
### Step 13 (incidental): cmake-format.sh fix
Format hook hung because `git ls-tree -r HEAD` listed
`src/config/CMakeLists.txt` (which had been deleted by an earlier revert)
and `cmake-format` raised `FileNotFoundError`. Patched the script to
filter out files staged for deletion via
`git diff --cached --name-only --diff-filter=D`.
| | |
|---|---|
| Commit | `3a8d37117b` |
| Status | useful for upstream — not a revert |
## Build verification
```
$ cmake --build build-mydev
[265/266] Linking CXX executable src/traffic_server/traffic_server
$ echo $?
0
```
**`traffic_server` binary built cleanly** (18 MB). Some `ld: warning:
ignoring
duplicate libraries` are present but cosmetic, not errors.
## Final state vs upstream/10.2.x
- 261 commits on trial-v2 not on 10.2.x (master-additive PRs that survived)
- 98 commits on 10.2.x not on trial-v2 (10.2.x branch-specific work)
- 507 files changed, +15,778 / -3,869 lines
## v2 verdict: how painful, with lessons applied?
**Mechanical effort once dependencies were known:** ~90 minutes total.
13 reverts including the two discovered during execution (#12988, #12404).
**Cost categories that v1 surfaced and v2 confirmed:**
1. **Direct conflicts — small.** #13031 had 0 conflicts in v2 vs 5 in v1
once the dependent reverts (#13070, #13048) ran first. The 11-Dev
merge had 9 conflicts vs 17 in v1.
2. **Dependency-chain reverts — predictable but additive.** The plan
identified 7 dependents up front. One more (#12988) surfaced as a
surface conflict during execution.
3. **Silent post-merge dependencies — eliminated** by reverting #13088,
#12998, #12997 *before* the 11-Dev merge. The build went clean on
first attempt afterward.
4. **#12404-style "old PR uses now-renamed member" — predicted, found.**
Pre-emptive fix-up was in the plan; user preferred clean revert
instead of fix-up.
**Revised effort estimate for production:**
- v1 estimate was 3–5 days optimistic / 1–2 weeks realistic.
- v2 result: with dependency map in hand, the mechanical work is
tractable in a single afternoon. **1–2 days realistic** for someone
who can review the plan and resolve conflicts confidently.
- The remaining cost is **social, not mechanical**: 13 reverts means 13
contributor conversations about dropped/deferred features. Several of
the reverted PRs (#12892, #13070, #12997, #13088, #12998) are
significant work that authors will want re-landed once 10.2.0 ships.
## Trial branch state at completion
- Branch: `revert-incompat-trial-v2`
- HEAD: `3a8d37117b` (cmake-format.sh fix)
- Build: **clean** ✓
- Notes file and plan are uncommitted (intentional; trial artifacts)
--
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]