Dmitriy Kovalenko
69727ae170
Clean up failed and abandoned marketplace staging directories ( #55689 )
...
## Why
Failed marketplace adds can leave temporary checkouts behind, and interrupted adds or upgrades can leave abandoned staging directories.
## What changed
- Share a staging guard across marketplace adds and upgrades so temporary checkouts are removed on completion or failure, including config-write rollback.
- Reclaim up to four abandoned directories per cleanup pass during add and upgrade operations. Use file locks to preserve active checkouts and operating-system-specific names to avoid reclaiming another platform's staging directories.
- Skip symlinks and unrelated entries, and report cleanup failures as warnings.
## Testing
Add regression coverage for failed adds, CLI and automatic-upgrade cleanup, cross-process ownership and abandonment, lock contention, bounded cleanup, and symlink handling.
GitOrigin-RevId: 20999da0eab861dfb8025aad5e9fba2bcaf818b8
2026-10-20 22:25:54 +00:00
..
2026-10-20 11:55:08 +00:00
2026-10-14 07:13:22 +00:00
2026-10-20 21:28:45 +00:00
2026-10-09 13:15:39 +00:00
2026-10-20 15:43:19 +00:00
2026-10-20 22:25:54 +00:00
2026-10-15 21:35:40 +00:00
2026-10-17 02:19:20 +00:00
2026-10-20 05:25:43 +00:00
2026-10-08 20:11:43 +00:00
2026-10-20 15:43:19 +00:00
2026-10-12 11:24:22 +00:00
2026-10-16 23:56:33 +00:00
2026-10-15 19:51:22 +00:00
2026-10-20 15:43:19 +00:00
2026-10-07 22:11:14 +00:00
2026-10-20 15:43:19 +00:00
2026-10-20 22:25:54 +00:00
2026-10-01 22:32:29 +00:00
2026-10-19 21:43:19 +00:00
2026-10-20 15:43:19 +00:00
2026-10-20 18:53:06 +00:00
2026-10-20 18:53:06 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 15:43:19 +00:00
2026-10-19 21:43:19 +00:00
2026-10-20 22:00:42 +00:00
2026-10-20 21:28:45 +00:00
2026-10-16 19:26:46 +00:00
2026-10-17 04:02:21 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 14:14:59 +00:00
2026-10-19 15:15:17 +00:00
2026-10-20 22:25:54 +00:00
2026-10-20 21:28:45 +00:00
2026-10-08 20:11:43 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 15:43:19 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 17:29:40 +00:00
2026-10-20 11:42:48 +00:00
2026-10-19 19:10:58 +00:00
2026-10-19 19:33:42 +00:00
2026-10-13 17:22:34 +00:00
2026-10-19 15:15:41 +00:00
2026-10-19 22:01:41 +00:00
2026-10-10 01:25:00 +00:00
2026-10-18 22:43:56 +00:00
2026-10-14 17:56:24 +00:00
2026-10-08 16:19:09 +00:00
2026-10-20 16:25:02 +00:00
2026-10-20 21:34:24 +00:00
2026-10-19 11:36:21 +00:00
2026-10-15 21:29:41 +00:00
2026-10-20 15:43:19 +00:00
2026-10-02 23:26:27 +00:00
2026-10-19 22:21:13 +00:00
2026-10-19 20:54:41 +00:00
2026-10-15 22:25:58 +00:00
2026-10-20 21:28:45 +00:00
2026-10-06 21:29:35 +00:00
2026-10-19 19:55:39 +00:00
2026-10-19 21:43:19 +00:00
2026-10-10 02:54:59 +00:00
2026-10-12 18:53:49 +00:00
2026-10-19 16:56:42 +00:00
2026-10-20 22:00:42 +00:00
2026-10-20 18:40:33 +00:00
2026-10-07 07:57:14 +00:00
2026-10-20 17:29:40 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 21:28:45 +00:00
2026-10-19 21:01:44 +00:00
2026-10-15 21:07:40 +00:00
2026-10-02 00:46:14 +00:00
2026-10-12 17:52:12 +00:00
2026-10-15 19:01:43 +00:00
2026-10-20 09:53:33 +00:00
2026-10-17 04:02:21 +00:00
2026-10-20 21:40:30 +00:00
2026-10-01 18:05:05 +00:00
2026-10-13 22:40:57 +00:00
2026-10-20 22:25:54 +00:00
2026-10-16 06:06:54 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 21:28:45 +00:00
2026-10-08 01:12:16 +00:00
2026-10-20 14:48:59 +00:00
2026-10-01 15:57:03 +00:00
2026-10-07 22:11:14 +00:00
2026-10-20 21:28:45 +00:00
2026-10-20 04:49:25 +00:00
2026-10-20 11:55:08 +00:00
2026-10-20 21:28:45 +00:00