Skip to content

fix: don't assume initial agent port 14100 - #2799

Closed
assafgi wants to merge 1 commit into
09-06-fix_support_new_wekactl_interface_group_responsefrom
09-07-fix_don_t_assume_initial_agent_port_14100
Closed

fix: don't assume initial agent port 14100#2799
assafgi wants to merge 1 commit into
09-06-fix_support_new_wekactl_interface_group_responsefrom
09-07-fix_don_t_assume_initial_agent_port_14100

Conversation

@assafgi

@assafgi assafgi commented Sep 7, 2026

Copy link
Copy Markdown
Member

No description provided.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@assafgi
assafgi marked this pull request as ready for review September 7, 2026 13:07

assafgi commented Sep 7, 2026

Copy link
Copy Markdown
Member Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more


How to use the Graphite Merge Queue

Add the label main-merge-queue to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has required the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@claude

claude Bot commented Sep 7, 2026

Copy link
Copy Markdown

Claude finished @assafgi's task in 4m 51s —— View job


Code Review

  • Fetch PR diff vs 09-06-fix_support_new_wekactl_interface_group_response
  • Investigate agent socket / wapi -U usage in codebase
  • Check configure_agent shell error semantics (set -e?)
  • Verify removed types are truly unused
  • Post review

The core idea is right: rewriting [agent] port= in place instead of pattern-matching the literal 14100 is the correct fix, and scoping the sed to the [agent] section also removes a latent bug where the old global s/port=14100/…/g could rewrite port=14100 in unrelated sections. WekaLocalStatusSlot / WekaLocalStatusContainer / WekaLocalStatusResponse are confirmed dead — no remaining references anywhere in the tree.

Three things I'd want resolved before merge (details in inline comments):

1. Hardcoded socket path is likely wrong — funcs_cluster_joining.go:46

weka_runtime.py:3427 starts the agent with --socket-name weka_agent_ud_socket_{AGENT_PORT}, a deliberately port-suffixed socket name. The Go side hardcodes /opt/weka/data/agent/agent.sock. If that path never materialises, [ -S ... ] is always false, the socket branch is dead code, and the reconciler quietly keeps using TCP — the PR would only appear to work because of the service.conf fix, and would break for real on an image that ships port=0. Please verify the actual path in a running container, and consider deriving it from GetAgentPort() so the two sides can't drift.

Also unverifiable from the repo: weka local run wapi -U <sock>:/jrpc is the only wapi -U usage in the tree, so the flag/format has no precedent to check against.

2. wekaauthcli branch silently dropped — funcs_cluster_joining.go:49

The container.Spec.JoinIps != nil path previously used wekaauthcli (the credentialed CLI used at ~60 sites in internal/services/weka.go); both branches now collapse to plain weka. That's orthogonal to the stated fix and unexplained in the commit message. If container-get-identity truly needs no cluster auth, worth stating that explicitly — otherwise it's a regression for auth-enabled cluster joins.

3. The new assertion doesn't assert the thing it describes — weka_runtime.py:3268-3270

Good news first: run_command prepends set -e (line 2337), so the failing grep -qx genuinely propagates and the assertion is live, not dead code.

But the comment warns about port=0, and when AGENT_PORT is "0" the assertion passes trivially (grep -qx "port=0" matches). AGENT_PORT can reach configure_agent() as "0" — or "" — because wait_for_resources() (line 3941) only resolves it for client mode and a fixed mode list; drivers-*, adhoc-op-with-container etc. fall through with the raw env value from pod.go:282. Validating parse_port(AGENT_PORT) > 0 in Python would catch the real failure mode.

Separately, dropping || true makes this a hard container-start failure on any image where the [agent] section is absent or formatted as port = 0 (the pattern is anchored at column 0 with no space tolerance). Since the next line writes the port into service.json too, worth confirming which file actually wins before making service.conf fatal.

Minor

funcs_cluster_joining.go:49 — the TCP fallback still does unguarded $(cat /opt/weka/k8s-runtime/vars/agent_port); a missing file yields localhost:/jrpc rather than a clear error. Pre-existing, but the branch is now the fallback path rather than the main one, so failures there will be rarer and harder to diagnose.

No security concerns. The Go command string interpolates container.Spec.WekaContainerName into a shell command, but that predates this PR and is constrained by k8s resource naming.
· branch 09-07-fix_don_t_assume_initial_agent_port_14100

@graphite-app

graphite-app Bot commented Sep 7, 2026

Copy link
Copy Markdown

Graphite Automations

"Add anton/matt/sergey/kristina as reviwers on operator PRs" took an action on this PR • (09/07/26)

2 reviewers were added to this PR based on Anton Bykov's automation.

Comment on lines +46 to +51
const agentSocket = "/opt/weka/data/agent/agent.sock"
identityArgs := fmt.Sprintf("-W container-get-identity --container-name %s --json", containerName)
cmd := fmt.Sprintf(
"if [ -S %[1]s ]; then weka local run wapi -U %[1]s:/jrpc %[2]s; else weka local run wapi -H localhost:$(cat /opt/weka/k8s-runtime/vars/agent_port)/jrpc %[2]s; fi",
agentSocket, identityArgs,
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The hardcoded socket path looks wrong for containers this operator starts.

weka_runtime.py:3427 launches the agent as:

return f"exec /usr/bin/weka --agent --socket-name weka_agent_ud_socket_{AGENT_PORT}"

i.e. the operator deliberately gives every agent a port-suffixed socket name (weka_agent_ud_socket_<AGENT_PORT>), precisely so that multiple agents can coexist on a node. A fixed /opt/weka/data/agent/agent.sock is unlikely to be what that produces.

If the path never exists, [ -S ... ] is always false, the socket branch is dead code, and this reconciler silently keeps using the TCP fallback — so the PR would appear to work only because of the service.conf fix in weka_runtime.py, and would regress the moment an image really does ship port=0.

Suggest deriving the socket from the same source of truth rather than hardcoding, e.g.:

const agentSocketDir = "/opt/weka/data/agent"
// socket name must match get_agent_cmd() in weka_runtime.py
agentSocket := fmt.Sprintf("%s/weka_agent_ud_socket_%d", agentSocketDir, container.GetAgentPort())

Could you confirm the actual on-disk path (ls -l /opt/weka/data/agent/ in a running container) before merging? Also worth double-checking that weka local run wapi -U <sock>:/jrpc is the accepted flag/format for the weka versions this operator supports — there's no other wapi -U usage in the repo to compare against.

const agentSocket = "/opt/weka/data/agent/agent.sock"
identityArgs := fmt.Sprintf("-W container-get-identity --container-name %s --json", containerName)
cmd := fmt.Sprintf(
"if [ -S %[1]s ]; then weka local run wapi -U %[1]s:/jrpc %[2]s; else weka local run wapi -H localhost:$(cat /opt/weka/k8s-runtime/vars/agent_port)/jrpc %[2]s; fi",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unrelated behavioral change: the wekaauthcli branch was dropped.

Before this PR, containers joining an existing cluster (container.Spec.JoinIps != nil) ran the identity call through wekaauthcli, not weka:

if container.Spec.JoinIps != nil {
    cmd = fmt.Sprintf("wekaauthcli local run wapi -H 127.0.0.1:$(%s)/jrpc ...", showAgentPortCmd)
}

wekaauthcli is used everywhere else in the codebase (internal/services/weka.go, ~60 call sites) for commands that need cluster credentials. Both branches now collapse to plain weka, which is not what "don't assume initial agent port 14100" implies, and isn't mentioned in the commit message.

If container-get-identity genuinely never needs auth (it's an agent-local JRPC call), that's fine — but please say so in the commit message, since it silently changes behavior for every auth-enabled cluster join. Otherwise the wekaauthcli selection should be preserved on top of the socket/TCP selection.

Comment on lines +3267 to +3270
sed -i "/^\\[agent\\]/,/^\\[/ s/^port=.*/port={AGENT_PORT}/" /etc/wekaio/service.conf
# sed exits 0 on no-match, so assert the rewrite landed: an agent left on
# port=0 listens on no TCP port and the operator cannot read its identity.
sed -n "/^\\[agent\\]/,/^\\[/p" /etc/wekaio/service.conf | grep -qx "port={AGENT_PORT}"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Scoping the rewrite to the [agent] section is a real improvement over the old global s/port=14100/.../g (which could also clobber port=14100 in other sections). Two issues with the assertion though.

1. The assertion is vacuous in exactly the case the comment warns about.

The comment says an agent left on port=0 "listens on no TCP port and the operator cannot read its identity" — but if AGENT_PORT is "0" the sed writes port=0 and grep -qx "port=0" passes happily. AGENT_PORT reaches configure_agent() as "0" whenever the pod env carries GetAgentPort() == 0 (pod.go:282) and wait_for_resources() (line 3941) returns early — it only resolves the port for client mode or the ['drive','s3','compute','nfs','smbw','envoy','client','telemetry','data-services'] set, so drivers-*, adhoc-op-with-container, etc. fall through with the env value untouched. Same for AGENT_PORT == "": sed writes a bare port= and grep -qx "port=" still matches.

Asserting the value in Python before building the command would actually catch this:

if parse_port(AGENT_PORT) <= 0:
    raise Exception(f"Refusing to configure agent with invalid AGENT_PORT={AGENT_PORT!r}")

2. The removal of || true turns any format deviation into a container-start failure.

run_command prepends set -e (line 2337), so the grep -qx failure does propagate — good, the assertion is live. But s/^port=.*/ only matches a literal port= anchored at column 0. On any image where the [agent] section is missing, or writes port = 0 / port=0, the sed no-ops, the grep fails, and configure_agent() raises → the pod never starts, where previously it degraded silently. That's arguably the point, but it's a hard fail across every supported weka image version, and the next line writes the port into /etc/wekaio/service.json anyway. Worth confirming service.json doesn't already take precedence over service.conf — if it does, the strict service.conf assertion buys little and risks a lot. A tolerant ^[[:space:]]*port[[:space:]]*= pattern would cover the formatting variants cheaply.

@assafgi
assafgi force-pushed the 09-06-fix_support_new_wekactl_interface_group_response branch from cf2e107 to a1b3530 Compare September 7, 2026 13:17
@assafgi
assafgi force-pushed the 09-07-fix_don_t_assume_initial_agent_port_14100 branch from 4dfb6c3 to 42ef523 Compare September 7, 2026 13:17
@claude

claude Bot commented Sep 7, 2026

Copy link
Copy Markdown

Claude finished @assafgi's task in 1m 3s —— View job


Code Review

  • Compare current HEAD against previously reviewed state
  • Determine whether re-review is warranted

No changes since my last review. HEAD is still 42ef5231 and git diff origin/09-06-fix_support_new_wekactl_interface_group_response...HEAD is byte-for-byte identical to what I reviewed. This synchronize event came from a downstack restack of the parent branch (09-06-fix_support_new_wekactl_interface_group_response), not from new commits on this PR.

Restating the standing review below, since none of the three points have been addressed yet and the inline threads are still open.


The core idea is right: rewriting [agent] port= in place instead of pattern-matching the literal 14100 is the correct fix, and scoping the sed to the [agent] section also removes a latent bug where the old global s/port=14100/…/g could rewrite port=14100 in unrelated sections. WekaLocalStatusSlot / WekaLocalStatusContainer / WekaLocalStatusResponse are confirmed dead — no remaining references anywhere in the tree.

1. Hardcoded socket path is likely wrong — funcs_cluster_joining.go:46

weka_runtime.py:3427 starts the agent with --socket-name weka_agent_ud_socket_{AGENT_PORT}, a deliberately port-suffixed socket name. The Go side hardcodes /opt/weka/data/agent/agent.sock. If that path never materialises, [ -S ... ] is always false, the socket branch is dead code, and the reconciler quietly keeps using TCP — the PR would only appear to work because of the service.conf fix, and would break for real on an image that ships port=0. Please verify the actual path in a running container, and consider deriving it from GetAgentPort() so the two sides can't drift.

Also unverifiable from the repo: weka local run wapi -U <sock>:/jrpc is the only wapi -U usage in the tree, so the flag/format has no precedent to check against.

Fix this →

2. wekaauthcli branch silently dropped — funcs_cluster_joining.go:49

The container.Spec.JoinIps != nil path previously used wekaauthcli (the credentialed CLI used at ~60 sites in internal/services/weka.go); both branches now collapse to plain weka. That's orthogonal to the stated fix and unexplained in the commit message. If container-get-identity truly needs no cluster auth, worth stating that explicitly — otherwise it's a regression for auth-enabled cluster joins.

3. The new assertion doesn't assert the thing it describes — weka_runtime.py:3268-3270

Good news first: run_command prepends set -e (line 2337), so the failing grep -qx genuinely propagates and the assertion is live, not dead code.

But the comment warns about port=0, and when AGENT_PORT is "0" the assertion passes trivially (grep -qx "port=0" matches). AGENT_PORT can reach configure_agent() as "0" — or "" — because wait_for_resources() (line 3941) only resolves it for client mode and a fixed mode list; drivers-*, adhoc-op-with-container etc. fall through with the raw env value from pod.go:282. Validating parse_port(AGENT_PORT) > 0 in Python would catch the real failure mode.

Separately, dropping || true makes this a hard container-start failure on any image where the [agent] section is absent or formatted as port = 0 (the pattern is anchored at column 0 with no space tolerance). Since the next line writes the port into service.json too, worth confirming which file actually wins before making service.conf fatal.

Fix this →

Minor

funcs_cluster_joining.go:49 — the TCP fallback still does unguarded $(cat /opt/weka/k8s-runtime/vars/agent_port); a missing file yields localhost:/jrpc rather than a clear error. Pre-existing, but the branch is now the fallback path rather than the main one, so failures there will be rarer and harder to diagnose.

No security concerns. The Go command string interpolates container.Spec.WekaContainerName into a shell command, but that predates this PR and is constrained by k8s resource naming.


· branch 09-07-fix_don_t_assume_initial_agent_port_14100

@assafgi
assafgi force-pushed the 09-07-fix_don_t_assume_initial_agent_port_14100 branch from 42ef523 to 0ae8eee Compare September 7, 2026 13:21
@claude

claude Bot commented Sep 7, 2026

Copy link
Copy Markdown

Claude finished @assafgi's task in 2m 36s —— View job


Code Review

  • Compare current HEAD against previously reviewed state
  • Re-verify remaining weka_runtime.py concern
  • Post updated review

The diff changed materially since my last review. The internal/controllers/wekacontainer/funcs_cluster_joining.go change is gone — that file is back to its base state (wapi -H localhost:$(cat .../agent_port), wekaauthcli branch intact). The PR is now a single 4-line change to configure_agent().

That resolves two of my three earlier points by removal:

  • 1. Hardcoded socket path (/opt/weka/data/agent/agent.sock vs the port-suffixed weka_agent_ud_socket_{AGENT_PORT}) — moot, the socket branch is gone.
  • 2. wekaauthcli branch silently dropped — moot, the branch is restored.

The earlier inline threads on that file are stale; feel free to close them.

What remains

Scoping the rewrite to the [agent] section is the right fix, and it also kills a latent bug in the old global s/port=14100/…/g (which could clobber port=14100 in unrelated sections). Two things still need attention — full detail in the inline comment:

The assertion doesn't assert the thing its comment describes. The comment warns about an agent left on port=0, but when AGENT_PORT is "0" the sed writes port=0 and grep -qx "port=0" passes trivially. Same for "" — a bare port= still matches. AGENT_PORT defaults to "" (line 63) and stays unresolved for modes wait_for_resources() (3941) skips, while configure_agent() (4524) runs for every mode but adhoc-op; adhoc-op-with-container (4549) reaches it with the raw env value from pod.go:292, and agent-port allocation is gated on HasAgent() (funcs_allocate_resources.go:98). A Python-side parse_port(AGENT_PORT) <= 0 guard would catch the real case.

Dropping || true makes format deviation a boot failure, and the pattern is stricter than its neighbour. run_command prepends set -e (2337), so the grep -qx failure genuinely propagates and configure_agent raises — the assertion is live, not dead code. But s/^port=.*/ is anchored at column 0 with no space tolerance and no handling for a missing [agent] section, so port = 0 or an absent section means the pod never starts. The no_reserve_space_cmd block 30 lines up (3228-3236) already implements the tolerant idiom — create-section-if-missing, ^[[:space:]]*key[[:space:]]*=, insert-if-absent. Reusing that shape here closes both gaps; a suggestion block is in the inline comment.

Not verifiable from the repo: line 3272 writes the same port into /etc/wekaio/service.json. If service.json takes precedence, the strict service.conf assertion buys little for the added blast radius.

No security concerns. AGENT_PORT is interpolated into a shell command, but it originates from strconv.Itoa on the Go side, so it can't carry shell metacharacters.
· branch 09-07-fix_don_t_assume_initial_agent_port_14100

Comment on lines +3267 to +3270
sed -i "/^\\[agent\\]/,/^\\[/ s/^port=.*/port={AGENT_PORT}/" /etc/wekaio/service.conf
# sed exits 0 on no-match, so assert the rewrite landed: an agent left on
# port=0 listens on no TCP port and the operator cannot read its identity.
sed -n "/^\\[agent\\]/,/^\\[/p" /etc/wekaio/service.conf | grep -qx "port={AGENT_PORT}"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The section-scoped rewrite is the right fix, but the same function already solves this exact problem 30 lines up and the two blocks now disagree. no_reserve_space_cmd (3228-3236) does:

grep -q "^\[mounts\]" /etc/wekaio/service.conf || printf '\n[mounts]\n' >> /etc/wekaio/service.conf
if grep -qE "^[[:space:]]*allocate_reserved_space[[:space:]]*=" /etc/wekaio/service.conf; then
    sed -i -E "s/^[[:space:]]*allocate_reserved_space[[:space:]]*=.*/allocate_reserved_space=false/g" ...
else
    sed -i "/^\[mounts\]/a allocate_reserved_space=false" ...
fi

— create-section-if-missing, whitespace-tolerant match, insert-if-key-absent. The new [agent] block does none of those, and it's now set -e-fatal (run_command prepends set -e at 2337, so the grep -qx failure does propagate and configure_agent raises → pod never starts). That combination means any image where the [agent] section is absent, or writes port = 0 / port=0, goes from "silently degraded" to "container won't boot".

Two concrete gaps:

1. The assertion is vacuous in exactly the case the comment names. If AGENT_PORT == "0", sed writes port=0 and grep -qx "port=0" passes — the "agent left on port=0" state the comment warns about sails straight through. Same for AGENT_PORT == "": sed writes a bare port= and grep -qx "port=" matches. AGENT_PORT defaults to "" (line 63) and can stay unresolved: wait_for_resources() (3941) only fills it in for client mode or the ['drive','s3','compute','nfs','smbw','envoy','client','telemetry','data-services'] set, while configure_agent() (4524) runs for every mode except adhoc-op. adhoc-op-with-container (4549) takes that path with the raw env value from pod.go:292, which is strconv.Itoa(GetAgentPort()) — and agent-port allocation is gated on HasAgent() (funcs_allocate_resources.go:98), so 0 is reachable.

A Python-side guard catches the real failure mode, and parse_port (3926) is already there:

if parse_port(AGENT_PORT) <= 0:
    raise Exception(f"Refusing to configure agent with invalid AGENT_PORT={AGENT_PORT!r}")

2. Make the shell match as tolerant as its neighbour. Suggested replacement for these four lines:

Suggested change
sed -i "/^\\[agent\\]/,/^\\[/ s/^port=.*/port={AGENT_PORT}/" /etc/wekaio/service.conf
# sed exits 0 on no-match, so assert the rewrite landed: an agent left on
# port=0 listens on no TCP port and the operator cannot read its identity.
sed -n "/^\\[agent\\]/,/^\\[/p" /etc/wekaio/service.conf | grep -qx "port={AGENT_PORT}"
grep -q "^\\[agent\\]" /etc/wekaio/service.conf || printf '\\n[agent]\\n' >> /etc/wekaio/service.conf
if sed -n "/^\\[agent\\]/,/^\\[/p" /etc/wekaio/service.conf | grep -qE "^[[:space:]]*port[[:space:]]*="; then
sed -i -E "/^\\[agent\\]/,/^\\[/ s/^[[:space:]]*port[[:space:]]*=.*/port={AGENT_PORT}/" /etc/wekaio/service.conf
else
sed -i "/^\\[agent\\]/a port={AGENT_PORT}" /etc/wekaio/service.conf
fi
# sed exits 0 on no-match, so assert the rewrite landed
sed -n "/^\\[agent\\]/,/^\\[/p" /etc/wekaio/service.conf | grep -qx "port={AGENT_PORT}"

One thing I can't check from the repo: line 3272 writes the same port into /etc/wekaio/service.json. If service.json already takes precedence over service.conf for the agent port, the strict service.conf assertion buys little and risks a lot — worth confirming which file the agent actually reads before making this branch fatal.

@assafgi
assafgi force-pushed the 09-07-fix_don_t_assume_initial_agent_port_14100 branch from 0ae8eee to 973167b Compare September 8, 2026 05:51
@assafgi
assafgi force-pushed the 09-06-fix_support_new_wekactl_interface_group_response branch from a1b3530 to 3b65d50 Compare September 8, 2026 05:52
@claude

claude Bot commented Sep 8, 2026

Copy link
Copy Markdown

Claude finished @assafgi's task in 22s —— View job


Code Review

  • Compare current HEAD against previously reviewed state
  • Determine whether re-review is warranted

No changes since my last review. The PR diff vs 09-06-fix_support_new_wekactl_interface_group_response is byte-for-byte identical to what I reviewed at 13:22 — still the single 4-line change to configure_agent(), blob 64f14edf. The commit SHA moved (973167b5) only because the parent branch was restacked downstack; no new commits landed on this PR.

Exiting early rather than repeating the full review. The two open points from the inline comment still stand, in one line each:

  1. The assertion is vacuous in the case its comment names — with AGENT_PORT == "0" the sed writes port=0 and grep -qx "port=0" passes; same for "". A Python-side if parse_port(AGENT_PORT) <= 0: raise ... catches the real failure mode.
  2. Dropping || true makes format deviation fatal (run_command prepends set -e), while ^port= is anchored with no whitespace tolerance and no create-section-if-missing — unlike the no_reserve_space_cmd block 30 lines up, which already implements the tolerant idiom.

Still not verifiable from the repo: whether /etc/wekaio/service.json (written on the next line) takes precedence over service.conf for the agent port.
· branch 09-07-fix_don_t_assume_initial_agent_port_14100

@assafgi
assafgi force-pushed the 09-06-fix_support_new_wekactl_interface_group_response branch from 3b65d50 to ce9a482 Compare September 8, 2026 06:02
@assafgi
assafgi force-pushed the 09-07-fix_don_t_assume_initial_agent_port_14100 branch from 973167b to e711be6 Compare September 8, 2026 06:02
@claude

claude Bot commented Sep 8, 2026

Copy link
Copy Markdown

Claude finished @assafgi's task in 17s —— View job


Code Review

  • Compare current HEAD against previously reviewed state
  • Determine whether re-review is warranted

No changes since my last review. The diff vs 09-06-fix_support_new_wekactl_interface_group_response is byte-for-byte identical to what I reviewed at 13:22 on 09-07 — the same 4-line change to configure_agent(), blob 64f14edf. The commit SHA moved to e711be68 only because the parent branch was restacked downstack; no new commits landed on this PR.

Exiting early rather than repeating the full review. The two open points from the inline comment still stand:

  1. The assertion is vacuous in the case its comment names — with AGENT_PORT == "0" the sed writes port=0 and grep -qx "port=0" passes; same for "". A Python-side if parse_port(AGENT_PORT) <= 0: raise ... catches the real failure mode.
  2. Dropping || true makes format deviation fatal (run_command prepends set -e at line 2337), while ^port= is anchored with no whitespace tolerance and no create-section-if-missing — unlike the no_reserve_space_cmd block 30 lines up (3228-3236), which already implements the tolerant idiom.

Still not verifiable from the repo: whether /etc/wekaio/service.json (written on the next line) takes precedence over service.conf for the agent port.

--- · branch 09-07-fix_don_t_assume_initial_agent_port_14100

@graphite-app

graphite-app Bot commented Sep 8, 2026

Copy link
Copy Markdown

Merge activity

  • Sep 8, 8:12 AM UTC: assafgi added this pull request to the Graphite merge queue.
  • Sep 8, 8:13 AM UTC: CI is running for this pull request on a draft pull request (#2802) due to your merge queue CI optimization settings.
  • Sep 8, 9:05 AM UTC: Merged by the Graphite merge queue via draft PR: #2802.

@graphite-app graphite-app Bot closed this Sep 8, 2026
@graphite-app
graphite-app Bot deleted the 09-07-fix_don_t_assume_initial_agent_port_14100 branch September 8, 2026 09:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants