From b411d6e5d677353eaae4801e22b13155e838500a Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Tue, 9 Jun 2026 09:02:24 -0700 Subject: [PATCH] test(ec): fake volume server echoes the full_teardown acknowledgement The worker now fails a teardown delete that isn't acknowledged (so a pre-upgrade server can't silently skip the wipe). The fake server's no-op VolumeEcShardsDelete returned an empty response, which the worker read as a skipped teardown and aborted the encode. Echo full_teardown_done. --- test/plugin_workers/fake_volume_server.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/plugin_workers/fake_volume_server.go b/test/plugin_workers/fake_volume_server.go index 574da7f6a..0b9480b31 100644 --- a/test/plugin_workers/fake_volume_server.go +++ b/test/plugin_workers/fake_volume_server.go @@ -309,9 +309,11 @@ func (v *VolumeServer) VolumeEcShardsUnmount(ctx context.Context, req *volume_se // VolumeEcShardsDelete is a no-op stub paired with VolumeEcShardsUnmount // above; the fake server doesn't persist shard files beyond what -// ReceiveFile wrote, so there's nothing to remove. +// ReceiveFile wrote, so there's nothing to remove. It still echoes the +// full_teardown acknowledgement so the worker doesn't treat the fake as a +// pre-upgrade server that silently skipped the teardown. func (v *VolumeServer) VolumeEcShardsDelete(ctx context.Context, req *volume_server_pb.VolumeEcShardsDeleteRequest) (*volume_server_pb.VolumeEcShardsDeleteResponse, error) { - return &volume_server_pb.VolumeEcShardsDeleteResponse{}, nil + return &volume_server_pb.VolumeEcShardsDeleteResponse{FullTeardownDone: req.FullTeardown}, nil } func (v *VolumeServer) VolumeEcShardsInfo(ctx context.Context, req *volume_server_pb.VolumeEcShardsInfoRequest) (*volume_server_pb.VolumeEcShardsInfoResponse, error) {