Visitar URL original
docs(inkless:release): record 4.1 cherry-pick session · aiven/kafka@b11cb0a · GitHub
Skip to content

Commit b11cb0a

Browse files
docs(inkless:release): record 4.1 cherry-pick session
Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 3bee2d2 commit b11cb0a

1 file changed

Lines changed: 96 additions & 0 deletions

File tree

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# Cherry-pick Session: inkless-4.1
2+
3+
## Session Info
4+
- **Date**: 2026-09-24
5+
- **Source**: origin/main (d16ea421f5, #804)
6+
- **Target**: inkless-4.1
7+
- **Base**: a09a645876 (#802)
8+
- **Status**: Complete
9+
10+
---
11+
12+
## Commits to Cherry-pick
13+
14+
| # | Hash | PR | Subject | Status |
15+
|---|------|-----|---------|--------|
16+
| 1 | e9de1e2e9b | #805 | fix(inkless:controller): count diskless topics with remote storage effectively off [KC-540] | Applied |
17+
| 2 | b15ea95d2d | #808 | fix(inkless:retention): skip consolidating topics in WAL retention [KC-552] | Applied |
18+
| 3 | c9b88d7ad9 | #809 | fix(inkless:retention): reject new copy-disabled consolidating topics [KC-552] | Applied |
19+
| 4 | 2e3f24e376 | #806 | fix(inkless:consolidation): freeze cross-tier start during prune | Applied with 4.1 adaptation |
20+
| 5 | d16ea421f5 | #804 | fix(inkless:config): allow routine alters on diskless topics with remote.storage.enable=false | Applied with conflict |
21+
22+
---
23+
24+
## Conflict Resolution Log
25+
26+
### #804 - fix(inkless:config): allow routine alters on diskless topics with remote.storage.enable=false
27+
28+
**File**: `storage/src/main/java/org/apache/kafka/storage/internals/log/LogConfig.java`
29+
- **Conflict**: The private validation method used `requestedConfigs` and `Map<?, ?>` on 4.1, while the cherry-pick changed the merged state parameter to `resultingConfigs` and narrowed the parsed config type to `Map<String, ?>`.
30+
- **Resolution**: Kept the cherry-pick's `resultingConfigs` semantics and retained 4.1's `Map<?, ?>` parsed config type.
31+
- **Reason**: #804 must validate the controller's merged topic state, while 4.1's older `ConfigDef.parse` call and public validation API still produce wildcard maps.
32+
33+
---
34+
35+
## Compilation Errors
36+
37+
| # | File:Line | Error | Cherry-pick | Fix | Status |
38+
|---|-----------|-------|-------------|-----|--------|
39+
| 1 | Build script | Java 25 produced `Unsupported class file major version 69` | #805 | Ran all verification with Java 17, which 4.1 supports | Fixed |
40+
| 2 | `RemoteLogManager.java:1353` | `RetriableRemoteStorageException` does not exist on Kafka 4.1 | #806 | Used 4.1's `RemoteStorageException` and adapted the assertion; the task scheduler retries both exceptions | Fixed |
41+
| 3 | `LogConfig.java:948` | 4.1's `Map<?, ?>` could not be passed to the main-branch `Map<String, ?>` signature | #804 | Retained `Map<?, ?>` for the parsed config parameter | Fixed |
42+
43+
---
44+
45+
## Verification
46+
47+
### Build
48+
```bash
49+
make build
50+
```
51+
- [x] Build passes
52+
53+
### Tests
54+
```bash
55+
make test
56+
```
57+
- [x] Tests pass
58+
59+
### Checklist
60+
- [x] All cherry-picks applied
61+
- [x] All conflicts documented
62+
- [x] Compilation verified after each cherry-pick
63+
- [x] Full build passes
64+
- [x] Full tests pass
65+
66+
---
67+
68+
## Summary
69+
70+
### Results
71+
| Result | Count |
72+
|--------|-------|
73+
| Successfully cherry-picked | 4 |
74+
| Cherry-picked with conflicts | 1 |
75+
| Skipped (not applicable) | 0 |
76+
| Failed | 0 |
77+
78+
### Key Conflict Patterns
79+
80+
| Pattern | Files | Resolution |
81+
|---------|-------|------------|
82+
| Newer upstream exception absent on 4.1 | `RemoteLogManager.java`, `RemoteLogManagerTest.java` | Use `RemoteStorageException`; 4.1 reschedules the task after that exception |
83+
| Parsed config generic type differs | `LogConfig.java` | Keep 4.1's `Map<?, ?>` type while carrying the merged-state behavior |
84+
85+
### Deferred Commits
86+
87+
| PR | Reason | Blocked By |
88+
|----|--------|------------|
89+
90+
---
91+
92+
## Notes
93+
94+
- The consistency check also reports #548 and #502 as old missing commits. They remain intentionally skipped.
95+
- Applied commits on 4.1: `28adbc4f82`, `0589163c45`, `716fd236f4`, `4143d241b5`, and `3bee2d20df`.
96+
- `make build` and `make test` pass with Java 17.

0 commit comments

Comments
 (0)