You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Xuannan Su (Jira)" <ji...@apache.org> on 2025/09/17 12:46:00 UTC
[jira] [Updated] (FLINK-36113) Condition 'transform instanceof PhysicalTransformation' is always 'false'
[ https://issues.apache.org/jira/browse/FLINK-36113?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xuannan Su updated FLINK-36113:
-------------------------------
Fix Version/s: 1.20.4
(was: 1.20.3)
> Condition 'transform instanceof PhysicalTransformation' is always 'false'
> --------------------------------------------------------------------------
>
> Key: FLINK-36113
> URL: https://issues.apache.org/jira/browse/FLINK-36113
> Project: Flink
> Issue Type: Improvement
> Reporter: tiancx
> Priority: Major
> Fix For: 1.20.4
>
> Attachments: Snipaste_2024-08-21_01-29-52.png
>
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> The legacyTransform method in the StreamGraphGenerator class has a judgment: the transform instance of PhysicalTransformation is always false
> {code:java}
> //代码占位符
> private Collection<Integer> legacyTransform(Transformation<?> transform) {
> Collection<Integer> transformedIds;
> if (transform instanceof FeedbackTransformation<?>) {
> transformedIds = transformFeedback((FeedbackTransformation<?>) transform);
> } else if (transform instanceof CoFeedbackTransformation<?>) {
> transformedIds = transformCoFeedback((CoFeedbackTransformation<?>) transform);
> } else if (transform instanceof SourceTransformationWrapper<?>) {
> transformedIds = transform(((SourceTransformationWrapper<?>) transform).getInput());
> } else {
> throw new IllegalStateException("Unknown transformation: " + transform);
> }
> if (transform.getBufferTimeout() >= 0) {
> streamGraph.setBufferTimeout(transform.getId(), transform.getBufferTimeout());
> } else {
> streamGraph.setBufferTimeout(transform.getId(), getBufferTimeout());
> }
> if (transform.getUid() != null) {
> streamGraph.setTransformationUID(transform.getId(), transform.getUid());
> }
> if (transform.getUserProvidedNodeHash() != null) {
> streamGraph.setTransformationUserHash(
> transform.getId(), transform.getUserProvidedNodeHash());
> }
> if (!streamGraph.getExecutionConfig().hasAutoGeneratedUIDsEnabled()) {
> if (transform instanceof PhysicalTransformation
> && transform.getUserProvidedNodeHash() == null
> && transform.getUid() == null) {
> throw new IllegalStateException(
> "Auto generated UIDs have been disabled "
> + "but no UID or hash has been assigned to operator "
> + transform.getName());
> }
> }
> if (transform.getMinResources() != null && transform.getPreferredResources() != null) {
> streamGraph.setResources(
> transform.getId(),
> transform.getMinResources(),
> transform.getPreferredResources());
> }
> streamGraph.setManagedMemoryUseCaseWeights(
> transform.getId(),
> transform.getManagedMemoryOperatorScopeUseCaseWeights(),
> transform.getManagedMemorySlotScopeUseCases());
> return transformedIds;
> } {code}
> If this needs optimization, I am willing to do so
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)