Skip to content

SHARD-622 + SHARD-633 + SHARD-637: a cut Firecracker verb frees its vmm, a held tag builds its missing format offline, and the cgroup walk skips a vanished child - #511

Merged
presmihaylov merged 8 commits into
mainfrom
shard-622-633-637-combined
Oct 5, 2026
Merged

presmihaylov merged 8 commits into
mainfrom
shard-622-633-637-combined

Conversation

@presmihaylov

Copy link
Copy Markdown
Owner

Closes SHARD-622, SHARD-633 and SHARD-637.

Why. On Firecracker, a create, start, fork or restore cut after its vmm came up left the daemon holding that vmm. A vz or Firecracker daemon resolved again in the registry a tag another provider pulled. On Sysbox, a child cgroup the guest removed mid-walk failed stop.

How.

  • 622: look first at endAnyway in services/provider/firecracker/lifecycle.go. The five failure paths after attach end the vmm on context.WithoutCancel, since a cut ctx left the machine in p.machines.
  • 633: pullLocked in services/image/image.go builds the format a held tag lacks from its own layers and never calls store.Pull. One shift: a held image with missing blobs no longer heals from the registry; remove it and pull again.
  • 637: Procs in pkg/cgroup/cgroup.go skips a child that answers ENOENT or ENODEV. The root keeps ErrNotFound and ErrNoController.

What. No API change. A rebuild streams building then pulled.

…nd an OOM attach whose release breaks off lets its stream go

A create, start, fork or restore that failed after attach called p.end on the
verb's own ctx. When the failure was the verb's cut, awaitGone returned on that
ctx before settle, so the machine stayed in p.machines with its pin and control
stream while the record that names it was gone. endAnyway ends it on its own
clock.

An attach that reads an OOM in the guest state releases a machine no map holds
yet; a release that broke off before its settle never closed it, so it closes
the machine itself.
…so its ENOENT or ENODEV never fails stop or reads as cgroup v1
…bined

# Conflicts:
#	services/provider/firecracker/export_test.go
@presmihaylov presmihaylov reopened this Oct 5, 2026
@presmihaylov presmihaylov reopened this Oct 5, 2026
@presmihaylov presmihaylov reopened this Oct 5, 2026
@presmihaylov presmihaylov reopened this Oct 5, 2026
@presmihaylov
presmihaylov merged commit e74d5d4 into main Oct 5, 2026
43 checks passed
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