Viacheslav Blinov created IGNITE-26933:
------------------------------------------

             Summary: Compute: ClassNotFound if the deployment unit file does 
not end with .jar
                 Key: IGNITE-26933
                 URL: https://issues.apache.org/jira/browse/IGNITE-26933
             Project: Ignite
          Issue Type: Improvement
          Components: compute ai3
    Affects Versions: 3.1
            Reporter: Viacheslav Blinov
            Assignee: Vadim Pakhnushev


STR:
 # I was trying to deploy a jar that is contained within my app resources. The 
file does not have .jar in it's name.
 # When this unit is deployed, this jar is silently discarded from classpath 
because it does not end with .jar
 # The only error I get is ClassNotFoundException: `Cannot load job class by 
name 'org.apache.ignite.internal.compute.SendAllMetastorageCommandTypesJob'
org.apache.ignite.compute.ComputeException: IGN-COMPUTE-3 Cannot load job class 
by name 'org.apache.ignite.internal.compute.SendAllMetastorageCommandTypesJob'` 
Caused by: java.lang.ClassNotFoundException: 
org.apache.ignite.internal.compute.SendAllMetastorageCommandTypesJob
No futher mentioning that the classpath of the unit was empty. No additional 
info in the logs. The status of deployment unit is DEPLOYED.

Questions:
 # Perhaps its worth to return an error at the attempt to deploy a unit that 
does not have any files with .jar extension, if that is an error

 # In 
org.apache.ignite.internal.compute.loader.JobClasspath.ClasspathCollector#visitFile
 we filter contents based on .jar filter. Its worth to check if the resulting 
classpath is empty, and report a better error when job is unable to start with 
ClassNotFoundException, like we do when no deployment unit is provided.

 # Maybe it's worth to write a warning in the logs if deployment unit has 
something other than jar? 
 # Side note: what's the point of allowing loading random files with random 
extensions besides jars if those files will not be included in classpath? Do we 
expect compute jobs to be able to access files within their storage directory? 
What happens if they escape their directory and access random data file?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to