e2e: the region console's flaky store forwards the conditional delete (final review round 3)
TestCanaryCreateMakesAOneLabelHost failed at canary rm with main's delete retry sentence: the console logged 'store: conditional delete unsupported'. Its Releases is flakyStore, a test wrapper that embeds release.Store, an interface that does not carry DeleteIfMatch, so F7's conditional record delete could not reach the DirStore underneath, which supports it (as S3Store does in production). flakyStore now forwards DeleteIfMatch to the wrapped store. The console is unchanged: a store without a conditional delete still fails the delete closed, with no unconditional fallback a concurrent begin could race. The test passed at 15522203, before F7.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 file changed,
+9
−0
deploy_region_e2e_test.go+9 −0
CI passed — run details
diff --git a/deploy_region_e2e_test.go b/deploy_region_e2e_test.go| index 0719c5394..038905a2f 100644 |
| --- a/deploy_region_e2e_test.go |
| +++ b/deploy_region_e2e_test.go |
| @@ -50,6 +50,15 @@ func (f flakyStore) Get(ctx context.Context, key string) ([]byte, string, error) |
| return f.Store.Get(ctx, key) |
| } |
| +// DeleteIfMatch forwards the conditional delete the wrapped DirStore has, |
| +// as production's S3 and directory stores do: the embedded interface does |
| +// not promote it, and the console's instance delete is conditional on the |
| +// etag its import check read (final review F7), with no unconditional |
| +// fallback. |
| +func (f flakyStore) DeleteIfMatch(ctx context.Context, key, etag string) error { |
| + return release.DeleteIfMatch(ctx, f.Store, key, etag) |
| +} |
| + |
| // regionE2EConsole starts the console with titogo claimed in appRegion. An |
| // empty appRegion is a home app, the way CreateAppIn records one: stored "". |
| func regionE2EConsole(t *testing.T, appRegion string) *regionE2E { |