Commit befc538
fix(stack): deduplicate image pulls to prevent same-image replica rootfs race
When multiple replicas share the same image (e.g. 3x alpine:latest), the
executor previously pulled + assembled rootfs concurrently in thread::scope,
causing layer extraction corruption. Now pulls each unique image once serially
before entering the parallel block, which only runs create_in_sandbox.
Also improves runtime container cleanup: stack containers skip host-side rootfs
deletion (avoids VirtioFS dcache staleness on recreate), stale overlays are
cleaned up in-guest before re-creating, and oci_delete falls back to the
shared stack VM when the per-container handle has been removed.
Re-enables replicated_service E2E tests (previously blocked on vz-3d1).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent bdd752b commit befc538
File tree
3 files changed
+115
-25
lines changed- crates
- vz-oci-macos/src
- vz-stack
- src
- tests
3 files changed
+115
-25
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
211 | | - | |
212 | | - | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
213 | 239 | | |
214 | | - | |
215 | 240 | | |
216 | 241 | | |
217 | 242 | | |
| |||
272 | 297 | | |
273 | 298 | | |
274 | 299 | | |
275 | | - | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
276 | 306 | | |
277 | 307 | | |
278 | 308 | | |
279 | 309 | | |
280 | 310 | | |
281 | 311 | | |
282 | 312 | | |
283 | | - | |
| 313 | + | |
| 314 | + | |
284 | 315 | | |
285 | 316 | | |
286 | 317 | | |
287 | 318 | | |
288 | 319 | | |
289 | 320 | | |
290 | | - | |
291 | | - | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
292 | 329 | | |
293 | 330 | | |
294 | 331 | | |
| |||
1010 | 1047 | | |
1011 | 1048 | | |
1012 | 1049 | | |
| 1050 | + | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
1013 | 1055 | | |
1014 | 1056 | | |
1015 | 1057 | | |
| |||
2559 | 2601 | | |
2560 | 2602 | | |
2561 | 2603 | | |
| 2604 | + | |
| 2605 | + | |
| 2606 | + | |
| 2607 | + | |
| 2608 | + | |
| 2609 | + | |
| 2610 | + | |
| 2611 | + | |
| 2612 | + | |
| 2613 | + | |
| 2614 | + | |
| 2615 | + | |
| 2616 | + | |
| 2617 | + | |
| 2618 | + | |
| 2619 | + | |
| 2620 | + | |
| 2621 | + | |
| 2622 | + | |
2562 | 2623 | | |
2563 | 2624 | | |
2564 | 2625 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
836 | 836 | | |
837 | 837 | | |
838 | 838 | | |
839 | | - | |
840 | | - | |
841 | | - | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
842 | 873 | | |
843 | 874 | | |
844 | | - | |
845 | | - | |
846 | | - | |
847 | | - | |
848 | | - | |
849 | | - | |
850 | 875 | | |
851 | 876 | | |
852 | 877 | | |
| |||
863 | 888 | | |
864 | 889 | | |
865 | 890 | | |
866 | | - | |
867 | | - | |
868 | | - | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
869 | 894 | | |
870 | 895 | | |
871 | 896 | | |
| |||
875 | 900 | | |
876 | 901 | | |
877 | 902 | | |
878 | | - | |
| 903 | + | |
879 | 904 | | |
880 | 905 | | |
881 | 906 | | |
882 | 907 | | |
883 | | - | |
884 | | - | |
885 | 908 | | |
886 | 909 | | |
887 | 910 | | |
| |||
2025 | 2048 | | |
2026 | 2049 | | |
2027 | 2050 | | |
2028 | | - | |
| 2051 | + | |
2029 | 2052 | | |
2030 | 2053 | | |
2031 | 2054 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2339 | 2339 | | |
2340 | 2340 | | |
2341 | 2341 | | |
2342 | | - | |
2343 | 2342 | | |
2344 | 2343 | | |
2345 | 2344 | | |
| |||
2364 | 2363 | | |
2365 | 2364 | | |
2366 | 2365 | | |
| 2366 | + | |
| 2367 | + | |
| 2368 | + | |
| 2369 | + | |
2367 | 2370 | | |
2368 | 2371 | | |
2369 | 2372 | | |
| |||
2427 | 2430 | | |
2428 | 2431 | | |
2429 | 2432 | | |
2430 | | - | |
2431 | 2433 | | |
2432 | 2434 | | |
2433 | 2435 | | |
| |||
2449 | 2451 | | |
2450 | 2452 | | |
2451 | 2453 | | |
| 2454 | + | |
| 2455 | + | |
| 2456 | + | |
| 2457 | + | |
2452 | 2458 | | |
2453 | 2459 | | |
2454 | 2460 | | |
| |||
0 commit comments