-
Notifications
You must be signed in to change notification settings - Fork 639
chore: add TODO breadcrumbs for the Helm chart's server workarounds #3260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -167,6 +167,11 @@ public void onLeaderStart(final long term) { | |
| @Override | ||
| public void onLeaderStop(final Status status) { | ||
| this.leaderTerm.set(-1); | ||
| // TODO: keep STATE_ERROR set by onError instead of overwriting it with STATE_FOLLOWER, so | ||
| // the probe view (and /v1/health, see StoreAPI.checkHealthy) can report a PD that stepped | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Blocking: no. Summary: Preserving STATE_ERROR here affects the probe view used by readiness, but StoreAPI.checkHealthy still returns 200 without consulting Raft state. Please scope this TODO to /v1/ready and point to the separate StoreAPI health TODO. Evidence: checkHealthy returns an empty string and its Javadoc says it does not read the Raft state. |
||
| // down for good after a snapshot failure. The Helm chart (helm/hugegraph) works around the | ||
| // missing signal with pd.livenessPath on /v1/ready for a single PD. | ||
| // https://github.com/apache/hugegraph/issues/3222 | ||
| this.probeView = new ProbeView(State.STATE_FOLLOWER, false); | ||
| super.onLeaderStop(status); | ||
| log.info("Raft lost leader "); | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -146,6 +146,10 @@ if [[ -n "${PASSWORD:-}" && -z "${HG_SERVER_AUTH_TOKEN_SECRET:-}" ]]; then | |
| fi | ||
|
|
||
| # ── Map env → properties file ───────────────────────────────────────── | ||
| # TODO: map server.urls_to_pd, server.deploy_in_k8s and auth.admin_pa from the environment here. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Blocking: no. Summary: This TODO says auth.admin_pa still needs an environment mapping, but this script already maps PASSWORD to auth.admin_pa at lines 175–176. The chart wrapper is also not the only read-only filesystem blocker because this entrypoint continues editing configuration through set_prop. Please remove auth.admin_pa from the missing list and clarify the remaining writable-configuration requirement. Evidence: the existing PASSWORD branch and set_prop calls in this file. |
||
| # Without them the Helm chart (helm/hugegraph) rewrites rest-server.properties in a wrapper before | ||
| # exec'ing this script, which is why it refuses readOnlyRootFilesystem for Server; drop that | ||
| # wrapper once these keys have an env mapping. | ||
| [[ -n "${HG_SERVER_BACKEND:-}" ]] && set_prop "backend" "${HG_SERVER_BACKEND}" "${GRAPH_CONF}" | ||
| [[ -n "${HG_SERVER_PD_PEERS:-}" ]] && set_prop "pd.peers" "${HG_SERVER_PD_PEERS}" "${GRAPH_CONF}" | ||
| [[ -n "${HG_SERVER_USE_PD:-}" ]] && \ | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -27,6 +27,10 @@ management: | |
|
|
||
| rocksdb: | ||
| # rocksdb total memory usage, force flush to disk when reaching this value | ||
| # TODO: make this overridable from the environment, or default it to 0 so AppConfig falls back | ||
| # to the JVM max heap: pinned at 32 GB, a Store in a container with a smaller memory limit is | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Blocking: no. Summary: The configured 32 GB is an LRUCache capacity, not memory allocated up front, so a smaller container limit does not by itself guarantee an OOM kill. Please say cache growth can exceed the container limit and cause OOM under load. Evidence: RaftRocksdbOptions passes total_memory_size as the capacities of two LRUCache instances. |
||
| # OOM-killed by native caches outside the heap. The Helm chart (helm/hugegraph) can only | ||
| # document the ceiling and size its cluster preset around it until then. | ||
| total_memory_size: 32000000000 | ||
| # memtable size used by rocksdb | ||
| write_buffer_size: 32000000 | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Blocking: no. Summary: The relative helm/hugegraph path is absent from this PR's tree, so readers cannot follow the rollout procedure from this revision. Please link the companion chart source or apache/hugegraph#3218, and update the other new helm/hugegraph references too. Evidence: helm/hugegraph is added only in the separate, still-open chart PR.