You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Alex (JIRA)" <ji...@apache.org> on 2019/06/14 13:46:00 UTC
[jira] [Commented] (FLINK-12143) Mechanism to ship plugin jars in
the cluster
[ https://issues.apache.org/jira/browse/FLINK-12143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16864085#comment-16864085 ]
Alex commented on FLINK-12143:
------------------------------
The problem is because
* {{parentFirstLoaderPatterns}} contains {{org.apache.flink.}} as matching prefix;
* the hadoop file system component loads some classes dynamically ({{java.lang.Class.forName}}) and one of them {{org.apache.flink.fs.shaded.hadoop3.org.apache.commons.configuration2.PropertiesConfiguration}} matches the pattern.
This triggers to use the application global class loader, instead of searching in the jar.
The test failure can be reproduced by slightly modifying {{PluginLoaderTest}}:
setting the matching {{loaderExcludePatterns}} on [line 42|[https://github.com/apache/flink/blob/master/flink-tests/src/test/java/org/apache/flink/test/plugin/PluginLoaderTest.java#L42]]. For example to:
{code:java}
// Use explicit prefix of org.apache.flink.test.plugin.jar.plugina.DynamicClassA
PluginDescriptor pluginDescriptorA = new PluginDescriptor("A", new URL[]{classpathA}, new String[]{"org.apache.flink."});
{code}
Although, running this test in IDE would not throw {{ClassNotFound}} exception, but the actual class lookup would use the global class loader.
> Mechanism to ship plugin jars in the cluster
> --------------------------------------------
>
> Key: FLINK-12143
> URL: https://issues.apache.org/jira/browse/FLINK-12143
> Project: Flink
> Issue Type: Sub-task
> Components: FileSystems, Runtime / Coordination
> Reporter: Stefan Richter
> Assignee: Alex
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.9.0
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)