Skip to content

fix: call createUnikontainer, not reexecUnikontainer, in run command - #1016

Draft
magic-peach wants to merge 1 commit into
urunc-dev:mainfrom
magic-peach:fix/run-create-start-order
Draft

fix: call createUnikontainer, not reexecUnikontainer, in run command#1016
magic-peach wants to merge 1 commit into
urunc-dev:mainfrom
magic-peach:fix/run-create-start-order

Conversation

@magic-peach

Copy link
Copy Markdown

Description

The run command's action func called reexecUnikontainer() directly before startUnikontainer(). reexecUnikontainer is meant to run inside the reexec'd child process that createUnikontainer spawns calling it directly in the original urunc process skipped that setup, so it always failed immediately, meaning urunc run was non-functional. Restores calling createUnikontainer() first, matching what create already does for its non-reexec path.

Related issues

none

  • Fixes #

How was this tested?

Cross-compiled and vetted clean (GOOS=linux GOARCH=amd64); the macOS-native build fails on an unrelated pre-existing CGO/nsenter constraint that also reproduces on unmodified main.

LLM usage

N/a

Checklist

  • I have read the contribution guide.
  • The linter passes locally (make lint).
  • The e2e tests of at least one tool pass locally (make test_ctr, make test_nerdctl, make test_docker, make test_crictl).
  • If LLMs were used: I have read the llm policy.

The run command's action func called reexecUnikontainer() directly
before startUnikontainer(). reexecUnikontainer is meant to run inside
the reexec'd child process that createUnikontainer spawns: it reads
the _LIBCONTAINER_INITPIPE/_LIBCONTAINER_LOGPIPE file descriptors that
only that spawned child inherits, and blocks waiting for the
StartExecve message that startUnikontainer sends over a socket set up
by the still-running reexec child.

Calling reexecUnikontainer directly in the original urunc process
skips all of that setup, so it always failed immediately on the
missing env vars, before startUnikontainer ever ran. This left the run
command entirely non-functional.

The pre-refactor implementation of this command (before the refactor
in 9271e4f, which is where the FIXME above this code was left) called
the create-side function first and then the start-side function,
which is the same pairing create/start use on their own. Restore that
by calling createUnikontainer(), matching what the create command does
for its non-reexec path.

Signed-off-by: Akanksha Trehun <akankshatrehun@gmail.com>
@netlify

netlify Bot commented Sep 2, 2026

Copy link
Copy Markdown

Deploy Preview for urunc canceled.

Name Link
🔨 Latest commit e376202
🔍 Latest deploy log https://app.netlify.com/projects/urunc/deploys/6a9807c00fdb08000881202d

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.

1 participant