github-actions[bot] commented on code in PR #68616:
URL: https://github.com/apache/doris/pull/68616#discussion_r4131698556
##########
fs_brokers/cdc_client/src/main/java/org/apache/doris/cdcclient/service/PipelineCoordinator.java:
##########
@@ -732,6 +735,47 @@ public void writeRecords(WriteRecordRequest
writeRecordRequest) throws Exception
taskProgressMap.remove(writeRecordRequest.getTaskId());
}
+ private void validateUnsupportedSchemaChange(
+ WriteRecordRequest request, DeserializeResult result) throws
IOException {
+ if (result.getUnsupportedReason() == null) {
+ return;
+ }
+ if (!request.isTolerateSchemaChange()) {
+ throw new IOException(
+ TaskFailureRequest.SCHEMA_CHANGE_UNSUPPORTED
+ + " "
+ + result.getUnsupportedReason()
+ + ". Review the target schema. RESUME confirms
acceptance of unsupported"
+ + " changes for this recovery round.");
+ }
+ try {
+ SchemaChangeManager.validateTargetSchemas(
+ request.getFrontendAddress(),
+ request.getTargetDb(),
+ request.getToken(),
+ request.getJobId(),
+ result.getUpdatedSchemas(),
+ request.getConfig());
+ } catch (IOException e) {
+ IOException failure =
+ new IOException(
+ TaskFailureRequest.SCHEMA_CHANGE_UNSUPPORTED
Review Comment:
[P2] Keep target-schema lookup failures retryable. After a user resumes an
unsupported change, `validateTargetSchemas` can throw `IOException` for a
transient FE schema-GET timeout or response error as well as for an actual
missing column. This catch prefixes both with `SCHEMA_CHANGE_UNSUPPORTED`; FE
maps that marker to `CANNOT_RESUME_ERR`, so one transient lookup failure pauses
a repaired job until another manual RESUME. Reserve the marker for a confirmed
target mismatch and let transient lookup failures use the existing retry path.
--
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]