[Bug] [Java Task] java task failed
Search before asking
- [X] I had searched in the issues and found no similar issues.
What happened
I have upgraded to 3.2.1 version,but find some errors to execute simple jar file。 error logs: 2.txt
it looks like jar path error.
What you expected to happen
support jar file
How to reproduce
execute simple jar file
Anything else
No response
Version
3.2.x
Are you willing to submit PR?
- [ ] Yes I am willing to submit a PR!
Code of Conduct
- [X] I agree to follow this project's Code of Conduct
选jar的时候,不要再选resource。但是你会碰到接下来另一个错误
[ERROR] 2024-02-23 03:52:11.382 -0500 o.a.d.p.t.j.JavaTask:[146] - java task failed java.lang.IllegalArgumentException: Cannot find the resourceItem: file:/dolphinscheduler/default/resources/test001/demo.jar at org.apache.dolphinscheduler.plugin.task.api.resource.ResourceContext.getResourceItem(ResourceContext.java:51) at org.apache.dolphinscheduler.plugin.task.java.JavaTask.buildJarCommand(JavaTask.java:181) at org.apache.dolphinscheduler.plugin.task.java.JavaTask.handle(JavaTask.java:123) at org.apache.dolphinscheduler.server.worker.runner.DefaultWorkerTaskExecutor.executeTask(DefaultWorkerTaskExecutor.java:54) at org.apache.dolphinscheduler.server.worker.runner.WorkerTaskExecutor.run(WorkerTaskExecutor.java:175) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) [ERROR] 2024-02-23 03:52:11.382 -0500 o.a.d.s.w.r.WorkerTaskExecutor:[181] - Task execute failed, due to meet an exception org.apache.dolphinscheduler.plugin.task.api.TaskException: run java task error at org.apache.dolphinscheduler.plugin.task.java.JavaTask.handle(JavaTask.java:148) at org.apache.dolphinscheduler.server.worker.runner.DefaultWorkerTaskExecutor.executeTask(DefaultWorkerTaskExecutor.java:54) at org.apache.dolphinscheduler.server.worker.runner.WorkerTaskExecutor.run(WorkerTaskExecutor.java:175) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: java.lang.IllegalArgumentException: Cannot find the resourceItem: file:/dolphinscheduler/default/resources/test001/demo.jar at org.apache.dolphinscheduler.plugin.task.api.resource.ResourceContext.getResourceItem(ResourceContext.java:51) at org.apache.dolphinscheduler.plugin.task.java.JavaTask.buildJarCommand(JavaTask.java:181) at org.apache.dolphinscheduler.plugin.task.java.JavaTask.handle(JavaTask.java:123) ... 5 common frames omitted
[ERROR] 2024-02-23 03:52:11.382 -0500 o.a.d.p.t.j.JavaTask:[146] - java task failed java.lang.IllegalArgumentException: Cannot find the resourceItem: file:/dolphinscheduler/default/resources/test001/demo.jar at org.apache.dolphinscheduler.plugin.task.api.resource.ResourceContext.getResourceItem(ResourceContext.java:51) at org.apache.dolphinscheduler.plugin.task.java.JavaTask.buildJarCommand(JavaTask.java:181) at org.apache.dolphinscheduler.plugin.task.java.JavaTask.handle(JavaTask.java:123) at org.apache.dolphinscheduler.server.worker.runner.DefaultWorkerTaskExecutor.executeTask(DefaultWorkerTaskExecutor.java:54) at org.apache.dolphinscheduler.server.worker.runner.WorkerTaskExecutor.run(WorkerTaskExecutor.java:175) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) [ERROR] 2024-02-23 03:52:11.382 -0500 o.a.d.s.w.r.WorkerTaskExecutor:[181] - Task execute failed, due to meet an exception org.apache.dolphinscheduler.plugin.task.api.TaskException: run java task error at org.apache.dolphinscheduler.plugin.task.java.JavaTask.handle(JavaTask.java:148) at org.apache.dolphinscheduler.server.worker.runner.DefaultWorkerTaskExecutor.executeTask(DefaultWorkerTaskExecutor.java:54) at org.apache.dolphinscheduler.server.worker.runner.WorkerTaskExecutor.run(WorkerTaskExecutor.java:175) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: java.lang.IllegalArgumentException: Cannot find the resourceItem: file:/dolphinscheduler/default/resources/test001/demo.jar at org.apache.dolphinscheduler.plugin.task.api.resource.ResourceContext.getResourceItem(ResourceContext.java:51) at org.apache.dolphinscheduler.plugin.task.java.JavaTask.buildJarCommand(JavaTask.java:181) at org.apache.dolphinscheduler.plugin.task.java.JavaTask.handle(JavaTask.java:123) ... 5 common frames omitted
是的,不选resource后,出来的就是这个异常,不过我的jar放在hdfs上,错误跟你类似。
我在3.2.1也遇到了同样的问题,只选择jar路径,不选resource报错:无法找到jar资源:
[ERROR] 2024-05-05 00:48:23.518 -0700 - java task failed
java.lang.IllegalArgumentException: Cannot find the resourceItem: file:/dolphinscheduler/default/resources/jar/test-1.0-SNAPSHOT.jar
at org.apache.dolphinscheduler.plugin.task.api.resource.ResourceContext.getResourceItem(ResourceContext.java:51)
at org.apache.dolphinscheduler.plugin.task.java.JavaTask.buildJarCommand(JavaTask.java:181)
at org.apache.dolphinscheduler.plugin.task.java.JavaTask.handle(JavaTask.java:123)
at org.apache.dolphinscheduler.server.worker.runner.DefaultWorkerTaskExecutor.executeTask(DefaultWorkerTaskExecutor.java:54)
at org.apache.dolphinscheduler.server.worker.runner.WorkerTaskExecutor.run(WorkerTaskExecutor.java:175)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
[ERROR] 2024-05-05 00:48:23.518 -0700 - Task execute failed, due to meet an exception
org.apache.dolphinscheduler.plugin.task.api.TaskException: run java task error
at org.apache.dolphinscheduler.plugin.task.java.JavaTask.handle(JavaTask.java:148)
at org.apache.dolphinscheduler.server.worker.runner.DefaultWorkerTaskExecutor.executeTask(DefaultWorkerTaskExecutor.java:54)
at org.apache.dolphinscheduler.server.worker.runner.WorkerTaskExecutor.run(WorkerTaskExecutor.java:175)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: Cannot find the resourceItem: file:/dolphinscheduler/default/resources/jar/test-1.0-SNAPSHOT.jar
at org.apache.dolphinscheduler.plugin.task.api.resource.ResourceContext.getResourceItem(ResourceContext.java:51)
at org.apache.dolphinscheduler.plugin.task.java.JavaTask.buildJarCommand(JavaTask.java:181)
at org.apache.dolphinscheduler.plugin.task.java.JavaTask.handle(JavaTask.java:123)
... 5 common frames omitted
选了resource以后出现jar无法访问的问题:
[INFO] 2024-05-05 00:49:12.634 -0700 - #!/bin/bash
BASEDIR=$(cd `dirname $0`; pwd)
cd $BASEDIR
${JAVA_HOME}/bin/java -classpath .:/tmp/dolphinscheduler/exec/process/root/13497703320224/13498447194144_11/13/23:/tmp/dolphinscheduler/exec/process/root/13497703320224/13498447194144_11/13/23//tmp/dolphinscheduler/exec/process/root/13497703320224/13498447194144_11/13/23/jar/test-1.0-SNAPSHOT.jar -jar /tmp/dolphinscheduler/exec/process/root/13497703320224/13498447194144_11/13/23//tmp/dolphinscheduler/exec/process/root/13497703320224/13498447194144_11/13/23/jar/test-1.0-SNAPSHOT.jar xms:50m
[INFO] 2024-05-05 00:49:12.634 -0700 - ****************************** Script Content *****************************************************************
[INFO] 2024-05-05 00:49:12.634 -0700 - Executing shell command : sudo -u root -i /tmp/dolphinscheduler/exec/process/root/13497703320224/13498447194144_11/13/23/13_23.sh
[INFO] 2024-05-05 00:49:12.653 -0700 - process start, process id is: 32966
[INFO] 2024-05-05 00:49:13.655 -0700 - ->
Error: Unable to access jarfile /tmp/dolphinscheduler/exec/process/root/13497703320224/13498447194144_11/13/23//tmp/dolphinscheduler/exec/process/root/13497703320224/13498447194144_11/13/23/jar/test-1.0-SNAPSHOT.jar
[INFO] 2024-05-05 00:49:13.656 -0700 - process has exited. execute path:/tmp/dolphinscheduler/exec/process/root/13497703320224/13498447194144_11/13/23, processId:32966 ,exitStatusCode:1 ,processWaitForStatus:true ,processExitValue:1
[INFO] 2024-05-05 00:49:13.656 -0700 - java task run result: TaskResponse(varPool=null, processId=32966, resultString=null, appIds=null, process=null, cancel=false, exitStatusCode=1, status=null)
看上去是/tmp/dolphinscheduler/exec/process/root/13497703320224/13498447194144_11/13/23//tmp/dolphinscheduler/exec/process/root/13497703320224/13498447194144_11/13/23/jar/test-1.0-SNAPSHOT.jar这个路径被拼接了2次。
这个问题有排期修复的计划吗?