[ https://issues.apache.org/jira/browse/FLINK-26537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Igal Shilman closed FLINK-26537. -------------------------------- Resolution: Fixed Added at 38f5518f26f96387f0c266531b6ef2c3fd0df729. > 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 > Labels: pull-request-available > > 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)