Inspect changes in Gitaly 49112bb2b4d8ea8e46e0f0d5e22ba2296a65a1b2
Upstream merge commit 6bdee21fcd51 changes Gitaly server version from 0cda2b26c375af1fabfb1e6593fd83ba33946140 to 49112bb2b4d8ea8e46e0f0d5e22ba2296a65a1b2, with changes in protocol or one of the source subtrees currently under watch.
To further inspect, go to an up to date Gitaly source clone and run
diff 0cda2b26c375af1fabfb1e6593fd83ba33946140..49112bb2b4d8ea8e46e0f0d5e22ba2296a65a1b2 -- proto/*.proto internal/backup
. Here is a preview, truncated at 500 lines:
diff --git a/internal/backup/server_side.go b/internal/backup/server_side.go
index bcfaf9a5f..1a2cf6b41 100644
--- a/internal/backup/server_side.go
+++ b/internal/backup/server_side.go
@@ -45,14 +45,12 @@ func (ss ServerSideAdapter) Create(ctx context.Context, req *CreateRequest) erro
if err != nil {
st := status.Convert(err)
if st.Code() == codes.NotFound {
- // Backups do not currently differentiate between non-existent and
- // empty. See https://gitlab.com/gitlab-org/gitlab/-/issues/357044
- return fmt.Errorf("server-side create: not found: %w", ErrSkipped)
+ return fmt.Errorf("server-side create: %w: %s", ErrSkipped, err.Error())
}
for _, detail := range st.Details() {
switch detail.(type) {
case *gitalypb.BackupRepositoryResponse_SkippedError:
- return fmt.Errorf("server-side create: empty repository: %w", ErrSkipped)
+ return fmt.Errorf("server-side create: %w: %s", ErrSkipped, err.Error())
}
}
@@ -80,6 +78,14 @@ func (ss ServerSideAdapter) Restore(ctx context.Context, req *RestoreRequest) er
BackupId: req.BackupID,
})
if err != nil {
+ st := status.Convert(err)
+ for _, detail := range st.Details() {
+ switch detail.(type) {
+ case *gitalypb.RestoreRepositoryResponse_SkippedError:
+ return fmt.Errorf("server-side restore: %w: %s", ErrSkipped, err.Error())
+ }
+ }
+
return structerr.New("server-side restore: %w", err)
}
diff --git a/internal/backup/server_side_test.go b/internal/backup/server_side_test.go
index a626a7f81..fc5e990ac 100644
--- a/internal/backup/server_side_test.go
+++ b/internal/backup/server_side_test.go
@@ -83,7 +83,7 @@ func TestServerSideAdapter_Create(t *testing.T) {
backupID: "abc123",
}
},
- expectedErr: fmt.Errorf("server-side create: not found: %w", backup.ErrSkipped),
+ expectedErr: fmt.Errorf("server-side create: %w: rpc error: code = NotFound desc = repository not found", backup.ErrSkipped),
},
} {
tc := tc
@@ -192,9 +192,7 @@ func TestServerSideAdapter_Restore(t *testing.T) {
backupID: "",
}
},
- expectedErr: structerr.NewFailedPrecondition("server-side restore: restore repository: manager: repository skipped: restore bundle: \"@test/restore/latest/missing.bundle\": doesn't exist").WithDetail(
- &gitalypb.RestoreRepositoryResponse_SkippedError{},
- ),
+ expectedErr: fmt.Errorf("server-side restore: %w: rpc error: code = FailedPrecondition desc = restore repository: manager: repository skipped: restore bundle: \"@test/restore/latest/missing.bundle\": doesn't exist", backup.ErrSkipped),
},
} {
tc := tc
A merge request may have already been submitted, check that on [merge commit commit](6bdee21fcd51, as usually changes in Gitaly are not breaking, compliance becoming mandatory in the following development cycles.