lablup / lablup/backend.ai

Extend reconciliation sweep to re-derive and re-emit missed kernel transitions

Open
#12,788 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
15h 13m
Merged PRs (30d)
368

Description

Extend the reconciliation sweep (SyncContainerLifecyclesTask) to re-derive kernel transitions from actual container state and re-emit transitions the Manager may have missed; the Manager applies idempotently via from_status (BEP-1061 section 3g/3f). No heartbeat digest.

On Agent restart the local phase is reconstructed from kernel_registry container labels (pickle excluded); the restart itself emits no events and does not touch history.

Note: coordinate with BEP-1057 restart recovery (BA-6765) to avoid duplicated recovery logic - define the recovery(mechanism) vs reporting(this) seam.

Success Criteria:
- [ ] Sweep re-derives transitions from actual container state and re-emits missed ones
- [ ] Re-emission is safe via from_status-based idempotent apply
- [ ] Local phase reconstructed from container labels (no pickle)
- [ ] pants test passes for affected packages

JIRA Issue: BA-6855

Contributor guide

Open the contributing guide

Research direction

Start by locating SyncContainerLifecyclesTask and reading the referenced BEP-1061 sections, then review BEP-1057 restart recovery (BA-6765) and the kernel_registry label handling. Verify how actual container state is available and define the recovery-versus-reporting seam. Done means missed transitions are re-emitted idempotently, restart reconstruction uses labels without pickle or history changes, and affected pants tests pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.