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]

Reply via email to