labstack / labstack/onebox

Plan hangs on first deploy through a jump host

Open
#195 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
3
Forks
0
Avg merge
2h 40m
Merged PRs (30d)
63

Description

Reproduction

On a real Cube deployment target with no prior application state:

  • Onebox client: v2026.9.7 and checksum-verified v2026.9.8
  • target: private host reached through an SSH jump
  • application: valid Onebox manifest, unmanaged shared proxy, one PostgreSQL service, no current release
  • ob status completes and correctly reports the application as never deployed
  • equivalent OpenSSH commands through the same jump complete immediately

Run:

ob -c <generated-config> -v plan --out ob-plan.json

The plan emits:

observing host, pinning images, and staging release
[target] $ if [ -f /var/lib/ob/<app>/backup/state/postgres.lifecycle.json ] ...

and then makes no further progress. It remained blocked for more than five minutes on one attempt and more than one minute on two clean retries. Ctrl-C terminates it; no plan artifact is written. Re-running with v2026.9.8 produces the same behavior.

The application directory does not yet exist, which is the expected first-deploy state. Running a direct ssh -J ... probe for the absent lifecycle path returns missing immediately. Registry images also exist and are readable.

Expected

ob plan should classify the absent lifecycle state as a first deployment, then either produce a plan or return a bounded, actionable refusal (for example missing secret inputs). No remote read should wait indefinitely.

Impact

This blocks the first deployment before an executable plan or approval artifact can be created. The stalled read has no command-level timeout or diagnostic naming which concurrent observation is actually blocked.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the ob plan first-deployment path and the remote read of /var/lib/ob/<app>/backup/state/postgres.lifecycle.json; compare its behavior with the direct ssh -J ... probe described in the reproduction. Confirm that an absent lifecycle state is classified as a first deployment, that the read has bounded failure behavior and diagnostics, and that a plan artifact or actionable refusal is produced.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, postgresql
Domain
cli, databases, devops, infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.