backup restore into a new Store: sandbox create fails with no complete project manifest

Aperta
#668 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
rust
Ambito
backend

Direzione di ricerca

Start with write_projects in control/crates/layerfs-store/src/backup/restore.rs, then trace how installed() in control/crates/layerfs-sandbox/src/lifecycle.rs reads the project record through project() in project/discovery.rs. Compare the restore and project init records, and check the backup restore and sandbox creation tests. Done means restoring into a fresh Store leaves a project record that lets sandbox create succeed; the issue leaves open whether restore should write the missing fields or sandbox creation should rebuild them.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

On an M3 Max, macOS 26.6.2, I backed up a Store to a local S3 (rclone serve s3) and restored it into a fresh home. branch fork, file write and file read work on the restored Store, but a Sandbox doesn't start:

$ layerfs backup restore vps lab vps
{"store":"vps","bucket":"lab","file":"vps","bytes":217088,...,"projects":["vps"]}
$ layerfs sandbox create vps/vps sr native
{"code":"NoSuchProject","message":"no complete project manifest","detail":null}

Same on layerfs_v2_0_0 (be317c045) and on #663 (2647fc84e), which I was retesting, and the same when restoring under a new Store name in the same home. Restoring over an existing Store works, because the old project record stays

I think the cause is write_projects in control/crates/layerfs-store/src/backup/restore.rs. For a project with no record it writes ProjectRecord::found, which has only name and stack. sandbox create reads the record through installed() in control/crates/layerfs-sandbox/src/lifecycle.rs, which calls project() in project/discovery.rs. project() needs manifest, and installed() then needs installed. project init writes them (discovery::save_project from project/add.rs), restore doesn't. The keys of the two records:

made by project init:    created, installed, manifest, v
made by backup restore:  name, stack, v

This code is the same on the current layerfs_v2_0_0 (03e4c541). I only ran it on macOS native. Should restore write manifest and installed, or should the Sandbox path rebuild them when they're missing?

Lingua principale
Rust
Stelle
2.1k
Fork
110
Merge medio
23h 52m
PR unite (30g)
138

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Ephemeral-AI-Lab/layerfs

Tutte le issue di Ephemeral-AI-Lab/layerfs

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.