Repository navigation
[common] Load index factories across classloader boundaries - #10991
Merged
JingsongLi merged 1 commit intoNov 6, 2026
Merged
Conversation
Member
Author
|
No description provided. |
Member
Author
|
No description provided. |
sundapeng
marked this pull request as draft
November 5, 2026 07:55
Member
Author
|
No description provided. |
Discover built-in index factories with the interface classloader so a blind JobMaster context classloader cannot initialize an empty registry. On a lookup miss, discover optional providers with the current context classloader without retaining them in the static registry. Cover child-only provider discovery after blind initialization, sibling classloader isolation, registration checks, and global file selection. Align the CSV dynamic-option test with deferred runtime validation; the test-contract adjustment follows apache#10989.
sundapeng
force-pushed
the
fix/file-index-factory-classloader
branch
from
November 5, 2026 09:01
fcd665d to
68eee8c
Compare
sundapeng
marked this pull request as ready for review
November 5, 2026 09:43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Index factory registries can be initialized on a Flink JobMaster RPC thread whose context classloader cannot see Paimon's service files. Since #10850 deferred file-store validation until runtime initialization, this can prevent indexed tables from starting.
Discover factories with the interfaces' own classloader, then use the current context classloader on lookup misses so optional index providers in job JARs remain discoverable. Context-loaded providers are not cached globally, preserving job classloader isolation. Apply the same discovery behavior to
load, file-indexisRegistered, and global-indexselectFiles.The CSV dynamic-option test also needs to trigger a read before asserting deferred validation, following #10989.
Tests
CsvSkipEmptyLinesTableTestpasses on JDK 8 (4 tests).