Step 1: Try to identify which artifact is supposed to contain
nonapi.io.github.classgraph.utils.URLPathEncoder
Your IDE helps this.

Step 2: Get dependency graph of your project (mvn dependency:tree or
gradlew dependencies).



On Thu, Jan 26, 2023 at 19:30 Lydian <lydia...@gmail.com> wrote:

> 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]
> 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
>
> --
Regards,
Tomo

Reply via email to