[ https://issues.apache.org/jira/browse/FLINK-16638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17063416#comment-17063416 ]
Roman Khachatryan commented on FLINK-16638: ------------------------------------------- Thanks for reporting this issue [~basharaj], You're right the allOperatorIDs contains non-user-defined IDs. However, I see that the other side of the check is also using non-user-defined IDs (StateAssignmentOperation#operatorStates). So the code looks fine to me. Probably, the snapshot data is corrupted. The log message you provided looks strange: it should contain the operator ID that can't be mapped. In your case it's just {}. Can you please post a full message with a stacktrace? > Flink checkStateMappingCompleteness doesn't include UserDefinedOperatorIDs > -------------------------------------------------------------------------- > > Key: FLINK-16638 > URL: https://issues.apache.org/jira/browse/FLINK-16638 > Project: Flink > Issue Type: Bug > Components: Runtime / Checkpointing > Affects Versions: 1.10.0 > Reporter: Bashar Abdul Jawad > Priority: Critical > > [StateAssignmentOperation.checkStateMappingCompleteness|https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/checkpoint/StateAssignmentOperation.java#L555] > doesn't check for UserDefinedOperatorIDs (specified using setUidHash), > causing the exception: > {code} > java.lang.IllegalStateException: There is no operator for the state {} > {code} > to be thrown when a savepoint can't be mapped to an ExecutionJobVertex, even > when the operator hash is explicitly specified. > I believe this logic should be extended to also include > UserDefinedOperatorIDs as so: > {code:java} > for (ExecutionJobVertex executionJobVertex : tasks) { > allOperatorIDs.addAll(executionJobVertex.getOperatorIDs()); > allOperatorIDs.addAll(executionJobVertex.getUserDefinedOperatorIDs()); > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)