[
https://issues.apache.org/jira/browse/DRILL-5044?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15705314#comment-15705314
]
ASF GitHub Bot commented on DRILL-5044:
---------------------------------------
Github user arina-ielchiieva commented on a diff in the pull request:
https://github.com/apache/drill/pull/669#discussion_r89993367
--- 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 --
You are right. Updated the code, so now we delete jars only once on error.
> 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: Arina Ielchiieva
>
> 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)