[ 
https://issues.apache.org/jira/browse/FLINK-38540?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Leonard Xu reassigned FLINK-38540:
----------------------------------

    Assignee: Xiqian Yu

> 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
>            Assignee: Xiqian Yu
>            Priority: Major
>              Labels: pull-request-available
>
> 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)

Reply via email to