You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Xiqian Yu (Jira)" <ji...@apache.org> on 2025/10/21 11:53:00 UTC
[jira] [Created] (FLINK-38540) Fix potential CME error in TransformExpressionCompiler
Xiqian Yu created FLINK-38540:
---------------------------------
Summary: Fix potential CME error in TransformExpressionCompiler
Key: FLINK-38540
URL: https://issues.apache.org/jira/browse/FLINK-38540
Project: Flink
Issue Type: Bug
Components: Flink CDC
Affects Versions: cdc-3.5.0
Reporter: Xiqian Yu
Just noticed very rare failure in UdfE2eITCase with the following exception stack:
{code}
Caused by: org.apache.flink.util.FlinkRuntimeException: Failed to compile expression TransformExpressionKey{expression='import static org.apache.flink.cdc.runtime.functions.impl.ArithmeticFunctions.*;import static org.apache.flink.cdc.runtime.functions.impl.CastingFunctions.*;import static org.apache.flink.cdc.runtime.functions.impl.ComparisonFunctions.*;import static org.apache.flink.cdc.runtime.functions.impl.LogicalFunctions.*;import static org.apache.flink.cdc.runtime.functions.impl.StringFunctions.*;import static org.apache.flink.cdc.runtime.functions.impl.TemporalFunctions.*;$0', argumentNames=[$0, __time_zone__, __epoch_time__], argumentClasses=[class java.lang.String, class java.lang.String, class java.lang.Long], returnClass=class java.lang.String, columnNameMap={VERSION=$0}}
at org.apache.flink.cdc.runtime.operators.transform.TransformExpressionCompiler.compileExpression(TransformExpressionCompiler.java:88) ~[blob_p-dcef4c05469f1ec41c8cff62eec3acdbed064dd4-acc6987827519710a75bf959e2073b32:3.5-SNAPSHOT]
at org.apache.flink.cdc.runtime.operators.transform.ProjectionColumnProcessor.<init>(ProjectionColumnProcessor.java:63) ~[blob_p-dcef4c05469f1ec41c8cff62eec3acdbed064dd4-acc6987827519710a75bf959e2073b32:3.5-SNAPSHOT]
at org.apache.flink.cdc.runtime.operators.transform.ProjectionColumnProcessor.of(ProjectionColumnProcessor.java:75) ~[blob_p-dcef4c05469f1ec41c8cff62eec3acdbed064dd4-acc6987827519710a75bf959e2073b32:3.5-SNAPSHOT]
at org.apache.flink.cdc.runtime.operators.transform.TransformProjectionProcessor.lambda$createProjectionColumnProcessors$1(TransformProjectionProcessor.java:102) ~[blob_p-dcef4c05469f1ec41c8cff62eec3acdbed064dd4-acc6987827519710a75bf959e2073b32:3.5-SNAPSHOT]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[?:?]
at org.apache.flink.cdc.runtime.operators.transform.TransformProjectionProcessor.createProjectionColumnProcessors(TransformProjectionProcessor.java:109) ~[blob_p-dcef4c05469f1ec41c8cff62eec3acdbed064dd4-acc6987827519710a75bf959e2073b32:3.5-SNAPSHOT]
at org.apache.flink.cdc.runtime.operators.transform.TransformProjectionProcessor.<init>(TransformProjectionProcessor.java:77) ~[blob_p-dcef4c05469f1ec41c8cff62eec3acdbed064dd4-acc6987827519710a75bf959e2073b32:3.5-SNAPSHOT]
at org.apache.flink.cdc.runtime.operators.transform.PostTransformOperator.getProjectionProcessor(PostTransformOperator.java:521) ~[blob_p-dcef4c05469f1ec41c8cff62eec3acdbed064dd4-acc6987827519710a75bf959e2073b32:3.5-SNAPSHOT]
at org.apache.flink.cdc.runtime.operators.transform.PostTransformOperator.processDataChangeEvent(PostTransformOperator.java:375) ~[blob_p-dcef4c05469f1ec41c8cff62eec3acdbed064dd4-acc6987827519710a75bf959e2073b32:3.5-SNAPSHOT]
at org.apache.flink.cdc.runtime.operators.transform.PostTransformOperator.processElementInternal(PostTransformOperator.java:234) ~[blob_p-dcef4c05469f1ec41c8cff62eec3acdbed064dd4-acc6987827519710a75bf959e2073b32:3.5-SNAPSHOT]
at org.apache.flink.cdc.runtime.operators.transform.PostTransformOperator.processElement(PostTransformOperator.java:152) ~[blob_p-dcef4c05469f1ec41c8cff62eec3acdbed064dd4-acc6987827519710a75bf959e2073b32:3.5-SNAPSHOT]
... 13 more
Caused by: java.util.ConcurrentModificationException
at java.util.ArrayList.checkForComodification(ArrayList.java:605) ~[?:?]
at java.util.ArrayList.equalsArrayList(ArrayList.java:599) ~[?:?]
at java.util.ArrayList.equals(ArrayList.java:561) ~[?:?]
at
{code}
Seems some internal `List` fields in TransformExpressionKey are accidentally modified in TransformExpressionCompiler due to accidental object reuse.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)