yuxiqian opened a new pull request, #3533: URL: https://github.com/apache/flink-cdc/pull/3533
Occasionally, CDC composer ITcase will fail when running test cases consecutively, with the following error message: ``` Caused by: java.lang.IllegalStateException: Trying to access closed classloader. Please check if you store classloaders directly or indirectly in static fields. If the stacktrace suggests that the leak occurs in a third party library and cannot be fixed immediately, you can disable this check with the configuration 'classloader.check-leaked-classloader'. at org.apache.flink.util.FlinkUserCodeClassLoaders$SafetyNetWrapperClassLoader.ensureInner(FlinkUserCodeClassLoaders.java:184) at org.apache.flink.util.FlinkUserCodeClassLoaders$SafetyNetWrapperClassLoader.loadClass(FlinkUserCodeClassLoaders.java:198) at java.lang.ClassLoader.loadClass(ClassLoader.java:411) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at sun.misc.Unsafe.defineClass(Native Method) at java.security.AccessController.doPrivileged(Native Method) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.janino.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:541) at org.codehaus.janino.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:533) at org.apache.flink.cdc.runtime.operators.transform.TransformFilterProcessor.process(TransformFilterProcessor.java:78) at org.apache.flink.cdc.runtime.operators.transform.PostTransformOperator.processFilter(PostTransformOperator.java:393) at org.apache.flink.cdc.runtime.operators.transform.PostTransformOperator.processDataChangeEvent(PostTransformOperator.java:335) at org.apache.flink.cdc.runtime.operators.transform.PostTransformOperator.processElement(PostTransformOperator.java:227) at org.apache.flink.streaming.runtime.tasks.OneInputStreamTask$StreamTaskNetworkOutput.emitRecord(OneInputStreamTask.java:237) at org.apache.flink.streaming.runtime.io.AbstractStreamTaskNetworkInput.processElement(AbstractStreamTaskNetworkInput.java:146) at org.apache.flink.streaming.runtime.io.AbstractStreamTaskNetworkInput.emitNext(AbstractStreamTaskNetworkInput.java:110) at org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:65) at org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:562) at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:231) at org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:858) at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:807) at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:953) at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:932) at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:746) at org.apache.flink.runtime.taskmanager.Task.run(Task.java:562) at java.lang.Thread.run(Thread.java:748) ``` Turns out it was caused by the static field `COMPILED_EXPRESSION_CACHE` used for caching transform expression evaluators. `PostTransformOperator` tried to invalidate cahce by calling `Cache#cleanUp`, which doesn't have a well-defined behavior. Whether clearing cache or not is implementation-dependent[1]. Since `Cache#invalidateAll` will discard all entries immediately, it should resolve such exception. [1] https://guava.dev/releases/21.0/api/docs/com/google/common/cache/Cache.html -- 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: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org