Chesnay Schepler created FLINK-27974:
----------------------------------------

             Summary: Potentially wrong classloader being used to create 
dynamic table sources
                 Key: FLINK-27974
                 URL: https://issues.apache.org/jira/browse/FLINK-27974
             Project: Flink
          Issue Type: Bug
          Components: Table SQL / Planner
    Affects Versions: 1.15.0
            Reporter: Chesnay Schepler


A user reported an issue on slack where a job fails in the CLI because of 
{{ClassNotFoundException: 
org.apache.flink.table.planner.delegation.ParserFactory}} in 
{{FileSystemTableFactory#formatFactoryExists}} when trying to load the 
{{Factory}} service.

While looking through the call stack I noticed that the classloader passed via 
the context is a thread's context classloader, set in 
{{CatalogSourceTable#createDynamicTableSource}}.

This seems a bit fishy; since this runs in the context of the CLI this CL is 
likely the user CL, but the planner classes are loaded in a separate 
classloader (not in the parent). As a result the planner classes cannot be 
looked up via the service loader mechanism.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to