Snapshot restore runs rm -rf * before extraction — data loss on failed restore #7
Labels
No labels
blocked:lint-failed
blocked:needs-decision
blocked:no-changes
blocked:verify-failed
bug
feature-request
needs-triage
ops-task
quickfix
security/high
test-coverage
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/compose_dash#7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
server/index.js line 391: rm -rf * inside target volume before extracting backup. If backup corrupt or extraction fails, volume data permanently lost.
Ops Pipeline — Not an Ops Task
This issue was labeled
ops-taskbut doesn't appear to be an operations task. It has been returned to feature triage for proper routing.Research analysis:
IS_OPS: NO
HOST: localhost
STATUS: NOT_OPS
EVIDENCE: The issue describes a bug in the restore logic in
server/index.jsline 391 —rm -rf *runs before backup extraction, meaning a corrupt backup leads to permanent data loss. While the issue tag says "ops" and the context is backup/restore, the actual problem is a code logic bug: the application's restore routine operates destructively before validating inputs. Fixing this requires modifying application source code to defer deletion until extraction succeeds (e.g., atomically rename to a temp directory, then clean up on success). That is a code bug fix, not an operational procedure — no commands to run on a host, no config changes, no service management, no infrastructure work.PROCEDURE: N/A — not an ops task. The fix belongs under feature triage / bug fix: modify the restore handler to move data aside rather than delete it, validate backup integrity before destructive operations, or use a staging directory.
VERIFY: N/A
RISKS: N/
Fixed in commit. Closing.