ocis: Upload into a moved folder fails (at least on ocis.owncloud.works)

Upload into a moved folder fails

Steps to reproduce:

1: create folder /test 2: create folder /test-moved 3: move folder /test-moved into /test, so that its path is /test/test-moved 4: navigate into /test/test-moved 5: upload a file (tus) - upload fails with error message File upload failed… tus: unexpected response while creating upload, originated from request (response code: 500, response text: )

Then: 6: create folder /test/test-created 7: navigate into /test/test-created 8: upload a file (tus) - upload succeeds.

Server logs:

2020-11-27T13:45:12Z DBG gateway: split: parts[1]:Serman != shareFolder:Shares pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG unary code=OK end="27/Nov/2020:13:45:12 +0000" from=tcp://127.0.0.1:57262 pkg=rgrpc service=storage start="27/Nov/2020:13:45:12 +0000" time_ns=152192 traceid=73951531a8563b6aebdc09eda37b1d22 uri=/cs3.storage.registry.v1beta1.RegistryAPI/GetStorageProvider user-agent=grpc-go/1.26.0
2020-11-27T13:45:12Z DBG NodeFromPath() fn=/Serman/foo/demo-key-mail-works.png pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG NodeFromPath() walk node={"Exists":true,"ID":"da3fc2e5-0453-40d1-b190-18fb385d77f5","Name":"Serman","ParentID":"d94c9d94-a68f-4da0-8d86-162d19f6b2c0"} pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG NodeFromPath() walk node={"Exists":true,"ID":"c3e05899-e798-4edd-93bf-03189afa67be","Name":"foo","ParentID":"da3fc2e5-0453-40d1-b190-18fb385d77f5"} pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG NodeFromPath() walk node={"Exists":false,"ID":"","Name":"demo-key-mail-works.png","ParentID":"c3e05899-e798-4edd-93bf-03189afa67be"} pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z WRN srv/app/pkg/mod/github.com/cs3org/reva@v1.4.1-0.20201127111856-e6a6212c1b7b/internal/grpc/services/storageprovider/storageprovider.go:528 > path not found when stating pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG unary code=OK end="27/Nov/2020:13:45:12 +0000" from=tcp://127.0.0.1:44946 pkg=rgrpc service=storage start="27/Nov/2020:13:45:12 +0000" time_ns=626771 traceid=73951531a8563b6aebdc09eda37b1d22 uri=/cs3.storage.provider.v1beta1.ProviderAPI/Stat user-agent=grpc-go/1.26.0
2020-11-27T13:45:12Z DBG unary code=OK end="27/Nov/2020:13:45:12 +0000" from=tcp://127.0.0.1:57272 pkg=rgrpc service=storage start="27/Nov/2020:13:45:12 +0000" time_ns=3093147 traceid=73951531a8563b6aebdc09eda37b1d22 uri=/cs3.gateway.v1beta1.GatewayAPI/Stat user-agent=grpc-go/1.26.0
2020-11-27T13:45:12Z DBG skipping auth method=/cs3.gateway.v1beta1.GatewayAPI/InitiateFileUpload pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG unary code=OK end="27/Nov/2020:13:45:12 +0000" from=tcp://127.0.0.1:57262 pkg=rgrpc service=storage start="27/Nov/2020:13:45:12 +0000" time_ns=138674 traceid=73951531a8563b6aebdc09eda37b1d22 uri=/cs3.storage.registry.v1beta1.RegistryAPI/GetStorageProvider user-agent=grpc-go/1.26.0
2020-11-27T13:45:12Z DBG NodeFromPath() fn=/Serman/foo/demo-key-mail-works.png pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG NodeFromPath() walk node={"Exists":true,"ID":"da3fc2e5-0453-40d1-b190-18fb385d77f5","Name":"Serman","ParentID":"d94c9d94-a68f-4da0-8d86-162d19f6b2c0"} pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG NodeFromPath() walk node={"Exists":true,"ID":"c3e05899-e798-4edd-93bf-03189afa67be","Name":"foo","ParentID":"da3fc2e5-0453-40d1-b190-18fb385d77f5"} pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG NodeFromPath() walk node={"Exists":false,"ID":"","Name":"demo-key-mail-works.png","ParentID":"c3e05899-e798-4edd-93bf-03189afa67be"} pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG ocisfs: resolved filename info={"ID":"","IsFinal":false,"IsPartial":false,"MetaData":{"dir":"foo","filename":"demo-key-mail-works.png","mtime":"1605150372.581"},"Offset":0,"PartialUploads":null,"Size":79162,"SizeIsDeferred":false,"Storage":null} metadata={"mtime":"1605150372.581"} node={"Exists":false,"ID":"","Name":"demo-key-mail-works.png","ParentID":"c3e05899-e798-4edd-93bf-03189afa67be"} pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG ocisfs: NewUpload info={"ID":"","IsFinal":false,"IsPartial":false,"MetaData":{"dir":"foo","filename":"demo-key-mail-works.png","mtime":"1605150372.581"},"Offset":0,"PartialUploads":null,"Size":79162,"SizeIsDeferred":false,"Storage":null} pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG NodeFromPath() fn=foo/demo-key-mail-works.png pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z ERR srv/app/pkg/mod/github.com/cs3org/reva@v1.4.1-0.20201127111856-e6a6212c1b7b/internal/grpc/services/storageprovider/storageprovider.go:331 > error getting upload id: path:"/home/Serman/foo/demo-key-mail-works.png"  error="ocisfs: error wrapping filename: error: not found: foo" pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG unary code=OK end="27/Nov/2020:13:45:12 +0000" from=tcp://127.0.0.1:44946 pkg=rgrpc service=storage start="27/Nov/2020:13:45:12 +0000" time_ns=1177151 traceid=73951531a8563b6aebdc09eda37b1d22 uri=/cs3.storage.provider.v1beta1.ProviderAPI/InitiateFileUpload user-agent=grpc-go/1.26.0
2020-11-27T13:45:12Z ERR srv/app/pkg/mod/github.com/cs3org/reva@v1.4.1-0.20201127111856-e6a6212c1b7b/internal/grpc/services/gateway/storageprovider.go:634 > error initiating upload error="gateway: grpc failed with code CODE_INTERNAL" pkg=rgrpc service=storage traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z DBG unary code=OK end="27/Nov/2020:13:45:12 +0000" from=tcp://127.0.0.1:57272 pkg=rgrpc service=storage start="27/Nov/2020:13:45:12 +0000" time_ns=2813423 traceid=73951531a8563b6aebdc09eda37b1d22 uri=/cs3.gateway.v1beta1.GatewayAPI/InitiateFileUpload user-agent=grpc-go/1.26.0
2020-11-27T13:45:12Z ERR grpc initiate file upload request failed path=/home/Serman/foo/demo-key-mail-works.png pkg=rhttp service=storage status={"code":15,"message":"error initiating upload","trace":"73951531a8563b6aebdc09eda37b1d22"} traceid=73951531a8563b6aebdc09eda37b1d22
2020-11-27T13:45:12Z ERR http end="27/Nov/2020:13:45:12 +0000" host=127.0.0.1 method=POST pkg=rhttp proto=HTTP/1.1 service=storage size=0 start="27/Nov/2020:13:45:12 +0000" status=500 time_ns=7934567 traceid=73951531a8563b6aebdc09eda37b1d22 uri=/remote.php/dav/files/einstein/Serman/foo url=/remote.php/dav/files/einstein/Serman/foo

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 17 (17 by maintainers)

Most upvoted comments

So, we found out that newNode.ID is empty here: https://github.com/cs3org/reva/blob/e4fc511d5fac467cd1425077eb676c5af7f20441/pkg/storage/fs/ocis/tree.go#L177

and because of that the extended attributes are not written to the correct node, but to the nodes root folder of the ocis fs.

Trying to read the node after the os.Rename operation results in a weird node, having var as name, though. Might come from some intermediate state of the rename operation? Have to debug further.

Cannot reproduce on ocis-1.0.0-rc5 on eos.

connect desktop client-2.7.1 as user einstein, wait until initial sync finishes. From within the sync folder do:

 2091  mkdir foo bar
 2092  cp ~/Pictures/testpics_3/CHANGELOG.md foo
 2093  cp ~/Pictures/testpics_3/chart.svg bar
 2094  mkdir killer
 2095  mv bar killer
 2096  cp ~/Pictures/testpics_3/inksc.png killer/bar/

Syncs just fine. No errors! (ignore my previous ramblings, that was a broken server suffering from earlier destructive tests)

Reproduced with Android app 2.15.3