sollhui opened a new pull request, #70057:
URL: https://github.com/apache/doris/pull/70057
### What problem does this PR solve?
Problem Summary:
During a rolling upgrade from 4.1 to master, the same Thrift enum value or
field ID can have different meanings on FE and BE:
- `TSchemaTableType` diverges starting at value 62. For example, 4.1 sends
`SCH_FILE_CACHE_INFO = 62`, which master interprets as `SCH_BLACKHOLE`.
- `TRLTaskTxnCommitAttachment.firstErrorMsg` uses field 12 in 4.1 but field
13 in master. Master uses field 12 for the Kinesis progress struct, so
mixed-version readers skip the error message because the wire types do not
match.
Align master's shared enum values with branch-4.1 (also matching
branch-4.2), place master-only database properties and table stream values at
70–72, and preserve extensions/TSO at 73/74. Restore `firstErrorMsg` to field
12 and move the optional Kinesis progress field to 13.
Compatibility review: checked both definitions on branch-3.1, branch-4.0,
branch-4.1, branch-4.2 and master. Branch-4.0 already differs from 4.1 for
`SCH_BLACKHOLE`, `SCH_COLUMN_DATA_SIZES`, `SCH_LOAD_JOBS` and
`SCH_BE_COMPACTION_TASKS`; this master-only fix does not resolve that existing
release-to-release mismatch. These corrections also change the affected wire
IDs relative to unpatched master.
### Release note
Fix schema table enum values and routine load commit attachment field IDs on
master to match Doris 4.1 and 4.2 during rolling upgrades.
### Check List (For Author)
- Test
- [x] Manual test (steps below)
- Generated C++ bindings for both complete modified Thrift files with
Apache Thrift 0.24.0; successful, with existing warnings in included files.
- Generated isolated Python bindings from the actual target definitions
on master, the four release branches, and the patched files. With Binary and
Compact protocols, reproduced the original bidirectional loss of
`firstErrorMsg`, then passed 814 checks: shared schema enum wire round trips
with 3.1/4.1/4.2; bidirectional routine load attachment transfers with
3.1/4.0/4.1/4.2; older readers skipping optional Kinesis progress;
patched-master Kinesis round trips. Verified unique enum values and shared
attachment field IDs/types.
- `git diff --check` passed. Full FE/BE builds and cluster upgrade tests
were not run.
- Behavior changed:
- [x] Yes. Correct the affected wire IDs to match 4.1/4.2.
- Does this need documentation?
- [x] No.
Self-review: the change is limited to the two requested definitions; FE/BE
consumers use generated symbolic enums and fields. No concurrency, lifecycle,
configuration, transaction persistence, visibility/version/delete-bitmap logic,
memory ownership, or error-handling changes are introduced. No new fields,
execution paths, allocations, logs, or metrics are added. Compatibility checks
cover the intended wire change; full cluster upgrade behavior remains for
CI/integration validation.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]