Hi, I found that my beam app run is not very stable. In the same pod, it sometimes failed with ``` java.lang.ClassNotFoundException: nonapi.io.github.classgraph.utils.URLPathEncoder ``` During the same pod, if I retried the submission again, sometimes it would just succeed. (Namely, no change on the dependencies, but the first couple submit usually would just fail) Google search shows me it could potentially related to `classgraph` [1 <[https://github.com/classgraph/classgraph/issues/331>] But I'm still not sure how I can fix this issue.
I'm using beam 2.41.0 with flink 1.14.5 and here's the full error: ``` 2023-01-27 00:23:58,808 ERROR org.apache.beam.runners.jobsubmission.InMemoryJobService [] - Encountered Unexpected Exception for Preparation job_1c650c6a-aee3-44eb-9ab8-a2b18cbda6a5 io.github.classgraph.ClassGraphException: Uncaught exception during scan at io.github.classgraph.ClassGraph.scan(ClassGraph.java:1570) ~[beam-runner.jar:?] at io.github.classgraph.ClassGraph.scan(ClassGraph.java:1587) ~[beam-runner.jar:?] at org.apache.beam.runners.core.construction.resources.ClasspathScanningResourcesDetector.detect(ClasspathScanningResourcesDetector.java:51) ~[beam-runner.jar:?] at org.apache.beam.runners.core.construction.resources.PipelineResources.detectClassPathResourcesToStage(PipelineResources.java:57) ~[beam-runner.jar:?] at org.apache.beam.runners.flink.FlinkJobInvoker.invokeWithExecutor(FlinkJobInvoker.java:83) ~[beam-runner.jar:?] at org.apache.beam.runners.jobsubmission.JobInvoker.invoke(JobInvoker.java:48) ~[beam-runner.jar:?] at org.apache.beam.runners.jobsubmission.InMemoryJobService.run(InMemoryJobService.java:246) [beam-runner.jar:?] at org.apache.beam.model.jobmanagement.v1.JobServiceGrpc$MethodHandlers.invoke(JobServiceGrpc.java:949) [beam-runner.jar:?] at org.apache.beam.vendor.grpc.v1p43p2.io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:182) [beam-runner.jar:?] at org.apache.beam.vendor.grpc.v1p43p2.io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35) [beam-runner.jar:?] at org.apache.beam.vendor.grpc.v1p43p2.io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23) [beam-runner.jar:?] at org.apache.beam.vendor.grpc.v1p43p2.io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40) [beam-runner.jar:?] at org.apache.beam.vendor.grpc.v1p43p2.io.grpc.Contexts$ContextualizedServerCallListener.onHalfClose(Contexts.java:86) [beam-runner.jar:?] at org.apache.beam.vendor.grpc.v1p43p2.io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:340) [beam-runner.jar:?] at org.apache.beam.vendor.grpc.v1p43p2.io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:866) [beam-runner.jar:?] at org.apache.beam.vendor.grpc.v1p43p2.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) [beam-runner.jar:?] at org.apache.beam.vendor.grpc.v1p43p2.io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) [beam-runner.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_342] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_342] at java.lang.Thread.run(Thread.java:750) [?:1.8.0_342] Caused by: java.lang.NoClassDefFoundError: nonapi/io/github/classgraph/utils/URLPathEncoder at io.github.classgraph.ClasspathElementZip.getURI(ClasspathElementZip.java:682) ~[?:?] at io.github.classgraph.ClasspathElementZip.getAllURIs(ClasspathElementZip.java:695) ~[?:?] at io.github.classgraph.ScanResult.getClasspathURIs(ScanResult.java:384) ~[?:?] at io.github.classgraph.ScanResult.getClasspathURLs(ScanResult.java:408) ~[?:?] at io.github.classgraph.ClassGraphClassLoader.<init>(ClassGraphClassLoader.java:108) ~[?:?] at io.github.classgraph.ScanResult.<init>(ScanResult.java:295) ~[?:?] at io.github.classgraph.Scanner.performScan(Scanner.java:1013) ~[?:?] at io.github.classgraph.Scanner.openClasspathElementsThenScan(Scanner.java:1112) ~[?:?] at io.github.classgraph.Scanner.call(Scanner.java:1146) ~[?:?] at io.github.classgraph.Scanner.call(Scanner.java:83) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_342] ... 3 more Caused by: java.lang.ClassNotFoundException: nonapi.io.github.classgraph.utils.URLPathEncoder at java.net.URLClassLoader.findClass(URLClassLoader.java:387) ~[?:1.8.0_342] at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_342] at org.apache.flink.util.FlinkUserCodeClassLoader.loadClassWithoutExceptionHandling(FlinkUserCodeClassLoader.java:64) ~[flink-dist_2.12-1.14.5.jar:1.14.5] at org.apache.flink.util.ChildFirstClassLoader.loadClassWithoutExceptionHandling(ChildFirstClassLoader.java:74) ~[flink-dist_2.12-1.14.5.jar:1.14.5] at org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:48) ~[flink-dist_2.12-1.14.5.jar:1.14.5] at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_342] at io.github.classgraph.ClasspathElementZip.getURI(ClasspathElementZip.java:682) ~[?:?] at io.github.classgraph.ClasspathElementZip.getAllURIs(ClasspathElementZip.java:695) ~[?:?] at io.github.classgraph.ScanResult.getClasspathURIs(ScanResult.java:384) ~[?:?] at io.github.classgraph.ScanResult.getClasspathURLs(ScanResult.java:408) ~[?:?] at io.github.classgraph.ClassGraphClassLoader.<init>(ClassGraphClassLoader.java:108) ~[?:?] at io.github.classgraph.ScanResult.<init>(ScanResult.java:295) ~[?:?] at io.github.classgraph.Scanner.performScan(Scanner.java:1013) ~[?:?] at io.github.classgraph.Scanner.openClasspathElementsThenScan(Scanner.java:1112) ~[?:?] at io.github.classgraph.Scanner.call(Scanner.java:1146) ~[?:?] at io.github.classgraph.Scanner.call(Scanner.java:83) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_342] ... 3 more ``` Thanks for helping! Sincerely, Lydian Lee