yoi/.yoi/tickets/00001KXDTPXFD/thread.md

2.2 KiB

作成

LocalTicketBackend によって作成されました。


Intake summary

Marked ready by yoi ticket state.


State changed

Marked ready by yoi ticket state.


State changed

Ticket を yoi ticket が queued にしました。


State changed

State changed to inprogress.


Implementation report

Stabilized cleanup plan candidate ordering and verified the not-found Workdir deletion endpoint.

Root cause:

  • Cleanup plan digest includes worker/workdir candidate arrays.
  • Candidate order was not normalized before digest calculation, so GET /cleanup-plan and POST /cleanup-executions could compute different digests for the same target set.
  • The POST then failed with workspace_cleanup_plan_stale, preventing workdir_record_delete execution.

Changes:

  • Sort worker cleanup candidates by target_id before digest calculation.
  • Sort Workdir cleanup candidates by target_id before digest calculation.

Endpoint verification:

  • Fetched GET /api/w/0197a949-4b6b-7f2a-9d9a-1f87e3a4c5b6/runtimes/arc/cleanup-plan.
  • Posted the returned revision/digest and all file_status: not_found Workdir target ids to POST /cleanup-executions.
  • Received HTTP 200 and four workdir_record_delete results with status: deleted.

Validation:

  • cargo fmt --check
  • git diff --check
  • cargo check -q
  • cargo test -q -p yoi-workspace-server
  • targeted cleanup plan test
  • nix build .#yoi --no-link

State changed

State changed to done.