From 4b670586029ff323c4324f4bf6c1b28c3da5cffc Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Fri, 22 Mar 2024 10:29:35 +0100 Subject: [PATCH 1/3] chore: update reva --- go.mod | 2 +- go.sum | 2 ++ .../http/services/owncloud/ocdav/tus.go | 12 +++++++--- .../utils/decomposedfs/decomposedfs.go | 7 ++++-- .../utils/decomposedfs/upload/upload.go | 24 ++++++++++--------- vendor/modules.txt | 2 +- 6 files changed, 31 insertions(+), 18 deletions(-) diff --git a/go.mod b/go.mod index 28f0bbc454..97bb973d41 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/coreos/go-oidc v2.2.1+incompatible github.com/coreos/go-oidc/v3 v3.6.0 github.com/cs3org/go-cs3apis v0.0.0-20230516150832-730ac860c71d - github.com/cs3org/reva/v2 v2.16.4-0.20231220070538-82b93f6a66bc + github.com/cs3org/reva/v2 v2.16.4-0.20240322092017-edc7102e1114 github.com/disintegration/imaging v1.6.2 github.com/dutchcoders/go-clamd v0.0.0-20170520113014-b970184f4d9e github.com/egirna/icap-client v0.1.1 diff --git a/go.sum b/go.sum index ec8f1e59b0..bc01792b56 100644 --- a/go.sum +++ b/go.sum @@ -869,6 +869,8 @@ github.com/crewjam/saml v0.4.13 h1:TYHggH/hwP7eArqiXSJUvtOPNzQDyQ7vwmwEqlFWhMc= github.com/crewjam/saml v0.4.13/go.mod h1:igEejV+fihTIlHXYP8zOec3V5A8y3lws5bQBFsTm4gA= github.com/cs3org/reva/v2 v2.16.4-0.20231220070538-82b93f6a66bc h1:IvoFfeOCbd8jFr7cXPuj9lt8aJjd4jLMhfZaoilpsNQ= github.com/cs3org/reva/v2 v2.16.4-0.20231220070538-82b93f6a66bc/go.mod h1:RvhuweTFqzezjUFU0SIdTXakrEx9vJlMvQ7znPXSP1g= +github.com/cs3org/reva/v2 v2.16.4-0.20240322092017-edc7102e1114 h1:m4e+zukJmidg+JExwHVqH1DdwDmTPgebTht77iGJQ3w= +github.com/cs3org/reva/v2 v2.16.4-0.20240322092017-edc7102e1114/go.mod h1:sM0lvdslykbpNWOHaO1gJpoS2qFF0rMjmikxyTwYabQ= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= diff --git a/vendor/github.com/cs3org/reva/v2/internal/http/services/owncloud/ocdav/tus.go b/vendor/github.com/cs3org/reva/v2/internal/http/services/owncloud/ocdav/tus.go index 84a3515edd..36c6eb7861 100644 --- a/vendor/github.com/cs3org/reva/v2/internal/http/services/owncloud/ocdav/tus.go +++ b/vendor/github.com/cs3org/reva/v2/internal/http/services/owncloud/ocdav/tus.go @@ -291,9 +291,15 @@ func (s *svc) handleTusPost(ctx context.Context, w http.ResponseWriter, r *http. if length == 0 || httpRes.Header.Get(net.HeaderUploadOffset) == r.Header.Get(net.HeaderUploadLength) { // get uploaded file metadata - if resid, err := storagespace.ParseID(httpRes.Header.Get(net.HeaderOCFileID)); err == nil { - sReq.Ref = &provider.Reference{ - ResourceId: &resid, + if strings.HasPrefix(uReq.GetRef().GetPath(), "/public") && uReq.GetRef().GetResourceId() == nil { + // Use the path based request for the public link + sReq.Ref.Path = uReq.Ref.GetPath() + sReq.Ref.ResourceId = nil + } else { + if resid, err := storagespace.ParseID(httpRes.Header.Get(net.HeaderOCFileID)); err == nil { + sReq.Ref = &provider.Reference{ + ResourceId: &resid, + } } } diff --git a/vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/decomposedfs.go b/vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/decomposedfs.go index 5c341c7357..78defda187 100644 --- a/vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/decomposedfs.go +++ b/vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/decomposedfs.go @@ -252,6 +252,7 @@ func (fs *Decomposedfs) Postprocessing(ch <-chan events.Event) { failed bool keepUpload bool ) + unmarkPostprocessing := true n, err := node.ReadNode(ctx, fs.lu, up.Info.Storage["SpaceRoot"], up.Info.Storage["NodeId"], false, nil, true) if err != nil { @@ -270,8 +271,10 @@ func (fs *Decomposedfs) Postprocessing(ch <-chan events.Event) { case events.PPOutcomeContinue: if err := up.Finalize(); err != nil { log.Error().Err(err).Str("uploadID", ev.UploadID).Msg("could not finalize upload") - keepUpload = true // should we keep the upload when assembling failed? failed = true + keepUpload = true + // keep postprocessing status so the upload is not deleted during housekeeping + unmarkPostprocessing = false } case events.PPOutcomeDelete: failed = true @@ -300,7 +303,7 @@ func (fs *Decomposedfs) Postprocessing(ch <-chan events.Event) { } } - upload.Cleanup(up, failed, keepUpload) + upload.Cleanup(up, failed, keepUpload, unmarkPostprocessing) // remove cache entry in gateway fs.cache.RemoveStatContext(ctx, ev.ExecutingUser.GetId(), &provider.ResourceId{SpaceId: n.SpaceID, OpaqueId: n.ID}) diff --git a/vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/upload/upload.go b/vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/upload/upload.go index 89e4ab6597..3bb739170f 100644 --- a/vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/upload/upload.go +++ b/vendor/github.com/cs3org/reva/v2/pkg/storage/utils/decomposedfs/upload/upload.go @@ -132,15 +132,17 @@ func buildUpload(ctx context.Context, info tusd.FileInfo, binPath string, infoPa } // Cleanup cleans the upload -func Cleanup(upload *Upload, failure bool, keepUpload bool) { +func Cleanup(upload *Upload, revertNodeMetadata, keepUpload, unmarkPostprocessing bool) { ctx, span := tracer.Start(upload.Ctx, "Cleanup") defer span.End() - upload.cleanup(failure, !keepUpload, !keepUpload) + upload.cleanup(revertNodeMetadata, !keepUpload, !keepUpload) - // unset processing status - if upload.Node != nil { // node can be nil when there was an error before it was created (eg. checksum-mismatch) - if err := upload.Node.UnmarkProcessing(ctx, upload.Info.ID); err != nil { - upload.log.Info().Str("path", upload.Node.InternalPath()).Err(err).Msg("unmarking processing failed") + if unmarkPostprocessing { + // unset processing status + if upload.Node != nil { // node can be nil when there was an error before it was created (eg. checksum-mismatch) + if err := upload.Node.UnmarkProcessing(ctx, upload.Info.ID); err != nil { + upload.log.Info().Str("path", upload.Node.InternalPath()).Err(err).Msg("unmarking processing failed") + } } } } @@ -247,7 +249,7 @@ func (upload *Upload) FinishUpload(_ context.Context) error { err = errtypes.BadRequest("unsupported checksum algorithm: " + parts[0]) } if err != nil { - Cleanup(upload, true, false) + Cleanup(upload, true, false, false) return err } } @@ -261,7 +263,7 @@ func (upload *Upload) FinishUpload(_ context.Context) error { n, err := CreateNodeForUpload(upload, attrs) if err != nil { - Cleanup(upload, true, false) + Cleanup(upload, true, false, false) return err } @@ -290,7 +292,7 @@ func (upload *Upload) FinishUpload(_ context.Context) error { if !upload.async { // handle postprocessing synchronously err = upload.Finalize() - Cleanup(upload, err != nil, false) + Cleanup(upload, err != nil, false, err == nil) if err != nil { log.Error().Err(err).Msg("failed to upload") return err @@ -382,8 +384,8 @@ func (upload *Upload) checkHash(expected string, h hash.Hash) error { } // cleanup cleans up after the upload is finished -func (upload *Upload) cleanup(cleanNode, cleanBin, cleanInfo bool) { - if cleanNode && upload.Node != nil { +func (upload *Upload) cleanup(revertNodeMetadata, cleanBin, cleanInfo bool) { + if revertNodeMetadata && upload.Node != nil { switch p := upload.versionsPath; p { case "": // remove node diff --git a/vendor/modules.txt b/vendor/modules.txt index 3e383b3b52..da5a6b1019 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -354,7 +354,7 @@ github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1 github.com/cs3org/go-cs3apis/cs3/storage/registry/v1beta1 github.com/cs3org/go-cs3apis/cs3/tx/v1beta1 github.com/cs3org/go-cs3apis/cs3/types/v1beta1 -# github.com/cs3org/reva/v2 v2.16.4-0.20231220070538-82b93f6a66bc +# github.com/cs3org/reva/v2 v2.16.4-0.20240322092017-edc7102e1114 ## explicit; go 1.20 github.com/cs3org/reva/v2/cmd/revad/internal/grace github.com/cs3org/reva/v2/cmd/revad/runtime From 14c1d085062a2304d2af23c000026fc1df9c0ed0 Mon Sep 17 00:00:00 2001 From: Roman Perekhod Date: Fri, 22 Mar 2024 17:24:17 +0100 Subject: [PATCH 2/3] reva v2.16.4 --- go.mod | 2 +- go.sum | 6 ++---- vendor/modules.txt | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 97bb973d41..a545e154e1 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/coreos/go-oidc v2.2.1+incompatible github.com/coreos/go-oidc/v3 v3.6.0 github.com/cs3org/go-cs3apis v0.0.0-20230516150832-730ac860c71d - github.com/cs3org/reva/v2 v2.16.4-0.20240322092017-edc7102e1114 + github.com/cs3org/reva/v2 v2.16.4 github.com/disintegration/imaging v1.6.2 github.com/dutchcoders/go-clamd v0.0.0-20170520113014-b970184f4d9e github.com/egirna/icap-client v0.1.1 diff --git a/go.sum b/go.sum index bc01792b56..e5dbfb6649 100644 --- a/go.sum +++ b/go.sum @@ -867,10 +867,8 @@ github.com/crewjam/httperr v0.2.0 h1:b2BfXR8U3AlIHwNeFFvZ+BV1LFvKLlzMjzaTnZMybNo github.com/crewjam/httperr v0.2.0/go.mod h1:Jlz+Sg/XqBQhyMjdDiC+GNNRzZTD7x39Gu3pglZ5oH4= github.com/crewjam/saml v0.4.13 h1:TYHggH/hwP7eArqiXSJUvtOPNzQDyQ7vwmwEqlFWhMc= github.com/crewjam/saml v0.4.13/go.mod h1:igEejV+fihTIlHXYP8zOec3V5A8y3lws5bQBFsTm4gA= -github.com/cs3org/reva/v2 v2.16.4-0.20231220070538-82b93f6a66bc h1:IvoFfeOCbd8jFr7cXPuj9lt8aJjd4jLMhfZaoilpsNQ= -github.com/cs3org/reva/v2 v2.16.4-0.20231220070538-82b93f6a66bc/go.mod h1:RvhuweTFqzezjUFU0SIdTXakrEx9vJlMvQ7znPXSP1g= -github.com/cs3org/reva/v2 v2.16.4-0.20240322092017-edc7102e1114 h1:m4e+zukJmidg+JExwHVqH1DdwDmTPgebTht77iGJQ3w= -github.com/cs3org/reva/v2 v2.16.4-0.20240322092017-edc7102e1114/go.mod h1:sM0lvdslykbpNWOHaO1gJpoS2qFF0rMjmikxyTwYabQ= +github.com/cs3org/reva/v2 v2.16.4 h1:qT7iiOh4od4klTCE1NfLYGxgjNMD4UGDWkJk8AMljCg= +github.com/cs3org/reva/v2 v2.16.4/go.mod h1:sM0lvdslykbpNWOHaO1gJpoS2qFF0rMjmikxyTwYabQ= github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= diff --git a/vendor/modules.txt b/vendor/modules.txt index da5a6b1019..e68ade3dcf 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -354,7 +354,7 @@ github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1 github.com/cs3org/go-cs3apis/cs3/storage/registry/v1beta1 github.com/cs3org/go-cs3apis/cs3/tx/v1beta1 github.com/cs3org/go-cs3apis/cs3/types/v1beta1 -# github.com/cs3org/reva/v2 v2.16.4-0.20240322092017-edc7102e1114 +# github.com/cs3org/reva/v2 v2.16.4 ## explicit; go 1.20 github.com/cs3org/reva/v2/cmd/revad/internal/grace github.com/cs3org/reva/v2/cmd/revad/runtime From dec5d1019b9f0003b3be82b1173adb0a3c67b443 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Wed, 27 Mar 2024 19:43:17 +0100 Subject: [PATCH 3/3] docs: add reva changelog --- changelog/unreleased/update-reva.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 changelog/unreleased/update-reva.md diff --git a/changelog/unreleased/update-reva.md b/changelog/unreleased/update-reva.md new file mode 100644 index 0000000000..ec1728f5d0 --- /dev/null +++ b/changelog/unreleased/update-reva.md @@ -0,0 +1,12 @@ +Bugfix: Update reva to include bugfixes and improvements + +## Changelog for reva 2.13.4 + +* Bugfix [cs3org/reva#4398](https://github.com/cs3org/reva/pull/4398): Fix ceph build +* Bugfix [cs3org/reva#4396](https://github.com/cs3org/reva/pull/4396): Allow an empty credentials chain in the auth middleware +* Bugfix [cs3org/reva#4423](https://github.com/cs3org/reva/pull/4423): Fix disconnected traces +* Bugfix [cs3org/reva#4590](https://github.com/cs3org/reva/pull/4590): Fix uploading via a public link +* Bugfix [cs3org/reva#4470](https://github.com/cs3org/reva/pull/4470): Keep failed processing status +* Enhancement [cs3org/reva#4397](https://github.com/cs3org/reva/pull/4397): Introduce UploadSessionLister interface + +https://github.com/owncloud/ocis/pull/8718