[ 
https://issues.apache.org/jira/browse/DRILL-5044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15702751#comment-15702751
 ] 

ASF GitHub Bot commented on DRILL-5044:
---------------------------------------

Github user paul-rogers commented on a diff in the pull request:

    https://github.com/apache/drill/pull/669#discussion_r89848150
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/handlers/CreateFunctionHandler.java
 ---
    @@ -175,22 +175,20 @@ private void initRemoteRegistration(List<String> 
functions,
         List<Jar> remoteJars = 
remoteRegistry.getRegistry(version).getJarList();
         validateAgainstRemoteRegistry(remoteJars, jarManager.getBinaryName(), 
functions);
         jarManager.copyToRegistryArea();
    -    boolean cleanUp = true;
         List<Jar> jars = Lists.newArrayList(remoteJars);
         
jars.add(Jar.newBuilder().setName(jarManager.getBinaryName()).addAllFunctionSignature(functions).build());
         Registry updatedRegistry = 
Registry.newBuilder().addAllJar(jars).build();
         try {
           remoteRegistry.updateRegistry(updatedRegistry, version);
    -      cleanUp = false;
         } catch (VersionMismatchException ex) {
    +      jarManager.deleteQuietlyFromRegistryArea();
           if (retryAttempts-- == 0) {
             throw new DrillRuntimeException("Failed to update remote function 
registry. Exceeded retry attempts limit.");
           }
           initRemoteRegistration(functions, jarManager, remoteRegistry, 
retryAttempts);
    -    } finally {
    -      if (cleanUp) {
    -        jarManager.deleteQuietlyFromRegistryArea();
    -      }
    +    } catch (Exception e) {
    --- End diff --
    
    Since recursion is used on retry, won't we end up deleting the jar multiple 
times? No harm, but seems odd...


> After the dynamic registration of multiple jars simultaneously not all UDFs 
> were registered
> -------------------------------------------------------------------------------------------
>
>                 Key: DRILL-5044
>                 URL: https://issues.apache.org/jira/browse/DRILL-5044
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Functions - Drill
>    Affects Versions: 1.9.0
>            Reporter: Roman
>            Assignee: Paul Rogers
>
> I tried to register 21 jars simultaneously (property 'udf.retry-attempts' = 
> 30) and not all jars were registered. As I see in output, all function were 
> registered and /staging directory was empty, but not all of jars were moved 
> into /registry directory. 
> For example, after simultaneously registration I saw "The following UDFs in 
> jar test-1.1.jar have been registered: [test1(VARCHAR-REQUIRED)" message, but 
> this jar was not in /registry directory. When I tried to run function test1, 
> I got this error: "Error: SYSTEM ERROR: SqlValidatorException: No match found 
> for function signature test1(<CHARACTER>)". And when I tried to reregister 
> this jar, I got "Jar with test-1.1.jar name has been already registered".



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to