Repository navigation
Conversation
### What problem does this PR solve? Issue Number: None Related PR: None Parallel FE unit tests could lose a probed RPC port before Thrift started, causing FE startup to exit the test JVM. Bind an ephemeral listener once, publish the assigned port before catalog initialization, and pass the live listener to the blocking Thrift server. ### Release note None ### Check List (For Author) - Test: ThriftServerTest and CheckRowPolicyTest passed (12 tests). FE Checkstyle passed. - Behavior changed: No user-facing change. - Does this need documentation: No.
Contributor
Author
|
run buildall |
Contributor
Author
|
run feut |
### Background Mocked FE tests use a local journal and disable the query and HTTP services. Startup still tried binding their configured ports before starting the catalog. ### What problem does this PR solve? Issue Number: None Related PR: None PR Type: Bugfix AnotherDemoTest exited when the edit-log port was occupied. RestoreCommandTest exited at the same startup check for the query port. Use the configured journal and startup options to select listener checks. Enabled services still detect port conflicts before startup. ### Testing Held the edit-log and query sockets open during preflight. The previous implementation failed for a local journal and disabled query service. The new implementation passes and rejects the occupied port when BDB or the query service is enabled. Ran AnotherDemoTest, RestoreCommandTest and the RPC callback test concurrently in separate local JVMs. FE Core Checkstyle passed. ### Release note None ### Check List (For Author) - Behavior changed: Yes. Port preflight follows the selected journal and services. - Does this need documentation: No. - Pre-submission status: Ready. ### AI Disclosure - Tool: OpenAI Codex. - Generated: Code, regression test and validation.
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.
Background
FE unit tests start a mocked frontend in each test JVM. It uses a local file journal and disables the query and HTTP services. Mock backends still need to call the FE's advertised Thrift RPC port.
What problem does this PR solve?
Issue Number: None
Related PR: None
PR Type: Bugfix
Mocked FE startup could exit the entire test JVM when another process occupied a port between selection and startup. The FE now keeps the ephemeral RPC listener bound until Thrift takes ownership. Startup checks the other ports only for the selected journal and enabled services.
Details
DorisFE.checkAllPorts:AnotherDemoTestreported an occupied edit-log port andRestoreCommandTestan occupied query port. Both forks exited with code 255 before writing their JUnit XML.Testing
AnotherDemoTest,RestoreCommandTest, andDemoTest.testAdvertisedRpcPortconcurrently in three local JVMs. All four test methods passed. The RPC test connects to the port advertised to the mock backend.RestoreCommandTest(PluginMgr.init, before the test wrote its XML). Its mocked FE log identified a filesystem error. The other four selected classes completed.run-fe-ut.shselected five test classes with one fork. All six selected methods passed with zero skips, failures or errors.ThriftServerTestandCheckRowPolicyTest. FE Core Checkstyle passed for the updated code and test.Release note
None
Check List (For Author)
AI Disclosure