HDDS-14932. Optional Recon and Httpfs Start Up - #10760
Draft
henrybear327 wants to merge 3 commits into
Draft
Conversation
henrybear327
marked this pull request as draft
July 14, 2026 11:14
henrybear327
force-pushed
the
HDDS-14932
branch
3 times, most recently
from
July 14, 2026 22:16
5974e6b to
b60dd0d
Compare
henrybear327
force-pushed
the
HDDS-14932
branch
6 times, most recently
from
July 22, 2026 11:54
f294d96 to
b209d72
Compare
henrybear327
force-pushed
the
HDDS-14932
branch
3 times, most recently
from
August 5, 2026 19:10
e064e3c to
6c723c6
Compare
`ozone local run` swallowed every failure it hit: shutdown and start() rollback errors went to IOUtils.closeQuietly with a null logger, the readiness wait collapsed its conditions into a single boolean, and the CLI converters rejected a value without naming it. The launcher sets OZONE_LOGLEVEL=OFF for ozone-tools, so logging on its own would stay invisible. A failed start now reports a message the user can act on, pointing at `ozone --loglevel INFO local run` for the service logs and --verbose for the stack trace. Local defaults that replace a user-configured value are now recorded and repeated on stderr by the CLI, so a discarded override stays visible even when it is the very setting the user is debugging. The datanode-count limit is checked before the format step so that format mode ALWAYS cannot delete the data dir for a run that can never start. Naming the unmet safe mode rules reads them as commons-lang3 Pair values, a use that leaves no import behind, so ozone-tools declares commons-lang3 for the dependency analyzer.
`ozone local run` starts an in-process S3 Gateway next to SCM, OM, and the datanodes, so S3 clients can target a local cluster without a separate gateway process or credential bootstrap. The runtime reserves and persists ports for the gateway's HTTP, HTTPS, and web-admin endpoints, provisions the fixed local credentials in OM (no `ozone s3 getsecret` step), and prints the endpoint plus the AWS settings a local client needs, including path-style addressing. --no-s3g turns the gateway off. Listeners bind loopback by default. The provisioned credentials are fixed and well known, so the previous wildcard default served a remotely writable S3 endpoint on every interface while the summary printed 127.0.0.1. --bind-host 0.0.0.0 is the opt-in for wider exposure. The gateway starts through call() rather than execute(): GenericCli's execution-exception handler reduces a startup failure to a bare exit code and can System.exit the JVM. call() returns only once Jetty serves requests, so no readiness poll follows; the call runs under the configured startup timeout so a hung startup rolls the cluster back instead of blocking forever. A timed-out attempt can ignore the interrupt and still finish late, so its cleanup is queued behind it on the startup thread as that attempt's only stopper.
Recon stays off unless --recon asks for it, and starts in the same JVM as the other services, reading its configuration through the static ConfigurationProvider the way MiniOzoneCluster does. ReconServer reports startup success even when its initialization failed, so the launcher waits on an HTTP response from the Recon endpoint instead. That wait is the S3 Gateway readiness probe, generalized to take an endpoint.
henrybear327
force-pushed
the
HDDS-14932
branch
from
August 6, 2026 13:48
6c723c6 to
8d819b2
Compare
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.
What changes were proposed in this pull request?
Order:
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-14932
How was this patch tested?
https://github.com/apache/ozone/actions/runs/29328163181