[#1662] object: Fix CloseAndRecv for patch streamer
All checks were successful
DCO action / DCO (pull_request) Successful in 40s
Vulncheck / Vulncheck (pull_request) Successful in 1m4s
Build / Build Components (pull_request) Successful in 1m41s
Pre-commit hooks / Pre-commit (pull_request) Successful in 1m41s
Tests and linters / Run gofumpt (pull_request) Successful in 3m2s
Tests and linters / Lint (pull_request) Successful in 3m23s
Tests and linters / Staticcheck (pull_request) Successful in 3m22s
Tests and linters / Tests (pull_request) Successful in 3m44s
Tests and linters / gopls check (pull_request) Successful in 4m13s
Tests and linters / Tests with -race (pull_request) Successful in 4m13s
Vulncheck / Vulncheck (push) Successful in 1m19s
Pre-commit hooks / Pre-commit (push) Successful in 1m37s
Build / Build Components (push) Successful in 1m51s
Tests and linters / Run gofumpt (push) Successful in 2m48s
Tests and linters / Staticcheck (push) Successful in 3m6s
Tests and linters / Tests (push) Successful in 3m11s
Tests and linters / Lint (push) Successful in 3m12s
Tests and linters / Tests with -race (push) Successful in 3m30s
Tests and linters / gopls check (push) Successful in 4m16s
OCI image / Build container images (push) Successful in 5m25s

* A client may open stream to server, not send anything and close
  the open stream immediatly. This shouldn't cause a panic;
* Return the error if `s.patcher` is uninitialized. Uninitialized
  patcher cannot be closed, this causes a panic.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
This commit is contained in:
Airat Arifullin 2025-03-05 17:09:02 +03:00
parent bf8914fedc
commit 4c8f9580a1

View file

@ -214,6 +214,9 @@ func (s *Streamer) Send(ctx context.Context, req *objectV2.PatchRequest) error {
}
func (s *Streamer) CloseAndRecv(ctx context.Context) (*objectV2.PatchResponse, error) {
if s.patcher == nil {
return nil, errors.New("uninitialized patch streamer")
}
patcherResp, err := s.patcher.Close(ctx)
if err != nil {
return nil, err