[
https://issues.apache.org/jira/browse/FLINK-26537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17503780#comment-17503780
]
Igal Shilman commented on FLINK-26537:
--------------------------------------
[~Fil Karnicki], that's perfect thanks for picking this up :).
I don't have a config name in mind, I think that simply a boolean named
statefun.embedded should be enough.
> Allow disabling StatefulFunctionsConfigValidator validation for
> classloader.parent-first-patterns.additional
> ------------------------------------------------------------------------------------------------------------
>
> Key: FLINK-26537
> URL: https://issues.apache.org/jira/browse/FLINK-26537
> Project: Flink
> Issue Type: Improvement
> Components: Stateful Functions
> Reporter: Fil Karnicki
> Assignee: Fil Karnicki
> Priority: Major
>
> For some deployments of stateful functions onto existing, shared clusters, it
> is impossible to tailor which classes exist on the classpath. An example
> would be a Cloudera Flink cluster, which adds protobuf-java classes that
> clash with statefun ones.
> Stateful functions require the following flink-config.yaml setting:
> {{classloader.parent-first-patterns.additional:
> org.apache.flink.statefun;org.apache.kafka;{+}*com.google.protobuf*{+}}}
> In the case of the cloudera flink cluster, this will cause old, 2.5.0
> protobuf classes to be loaded by statefun, which causes MethodNotFound
> exceptions.
> The idea is to allow disabling of the validation below, if some config
> setting is present in the global flink configuration, for example:
> statefun.validation.parent-first-classloader.disable=true
>
> {code:java}
> private static void validateParentFirstClassloaderPatterns(Configuration
> configuration) {
> final Set<String> parentFirstClassloaderPatterns =
> parentFirstClassloaderPatterns(configuration);
> if
> (!parentFirstClassloaderPatterns.containsAll(PARENT_FIRST_CLASSLOADER_PATTERNS))
> {
> throw new StatefulFunctionsInvalidConfigException(
> CoreOptions.ALWAYS_PARENT_FIRST_LOADER_PATTERNS_ADDITIONAL,
> "Must contain all of " + String.join(", ",
> PARENT_FIRST_CLASSLOADER_PATTERNS));
> }
> } {code}
>
> Then, we wouldn't need to contain com.google.protobuf in
> {{classloader.parent-first-patterns.additional:}} and it would be up to the
> statefun user to use protobuf classes which are compatible with their version
> of statefun.
>
>
--
This message was sent by Atlassian Jira
(v8.20.1#820001)