-
Notifications
You must be signed in to change notification settings - Fork 183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[full-ci] Test Async Propagator #10655
base: master
Are you sure you want to change the base?
Conversation
Thanks for opening this pull request! The maintainers of this repository would appreciate it if you would create a changelog item based on your changes. |
@ScharfViktor @individual-it @saw-jan How much effort would it be, to adapt the testsuite? Background: Async etag and size propagation can take 5 seconds and longer. |
Tests must wait until propagation is complete and the implementation should not take long. But the problem would be how much time is enough to make tests reliably stable. we can try with 5 seconds and see how tests behave |
or keep on retrying till the value is as expected (till some timeout) |
that is also another possibility |
It is controlled by STORAGE_USERS_ASYNC_PROPAGATOR_PROPAGATION_DELAY The default is 5s (@mmattel although it shows up as 0s in the docs) |
At one point in time we need to think about how to handle this properly, |
This is not so easy. There are 2 default values: The value we define in the defaults section of ocis and the backup default of the package itself. Keeping those in sync is always manual work - hence can be forgotten because it has no visible impact during implementation. |
easiest fix would be to set it to 5 in the defaultconfig.gfo as well. keeping it in sync is manual, yes, but showing 0 in the docs is just wrong. For CI we could set it to |
that would be great for the tests. I was just about to ask the same. THanks |
5e33cf2
to
997e1f7
Compare
Yes this is the way we are doing it. However we cannot automate/validate this because the package internal default could change at any time. Note: I added the envvar for 100ms propagation delay. |
Q: should we use async propagation for cs3 API test pipeline? tests fail |
I will look into that. |
some API tests still can fail. I will implement the wait in the tests. |
will push the fix |
All API test pipelines are ✔️ |
Signed-off-by: jkoberg <[email protected]>
Signed-off-by: jkoberg <[email protected]>
a7e492a
to
ba21904
Compare
I enabled the async propagator for the cs3apivalidator. |
ba21904
to
28f0384
Compare
Quality Gate passedIssues Measures |
@aduffeck @kobergj we found a problem Scenario: Change etag of personal home and move subtree # /var/lib/cs3api-validator/etag-propagation.feature:33
Given user "admin" has created a folder "a-folder/a-sub-folder-B" in the home directory with the alias "a-sub-folder-B" # <autogenerated>:1 -> *ResourcesFeatureContext
And user "admin" has created a folder "a-folder/a-sub-folder/testFolder" in the home directory with the alias "testFolder" # <autogenerated>:1 -> *ResourcesFeatureContext
And user "admin" has created a folder "a-folder/a-sub-folder/testFolder/test2" in the home directory with the alias "test2" # <autogenerated>:1 -> *ResourcesFeatureContext
And user "admin" has uploaded a file "a-folder/a-sub-folder/testfile.txt" with content "text" in the home directory with the alias "testfile.txt" # <autogenerated>:1 -> *ResourcesFeatureContext
And user "admin" remembers the fileinfo of the resource with the alias "Admin Home" # <autogenerated>:1 -> *ResourcesFeatureContext
And user "admin" remembers the fileinfo of the resource with the alias "a-folder" # <autogenerated>:1 -> *ResourcesFeatureContext
And user "admin" remembers the fileinfo of the resource with the alias "a-sub-folder" # <autogenerated>:1 -> *ResourcesFeatureContext
And user "admin" remembers the fileinfo of the resource with the alias "a-sub-folder-B" # <autogenerated>:1 -> *ResourcesFeatureContext
And user "admin" remembers the fileinfo of the resource with the alias "testFolder" # <autogenerated>:1 -> *ResourcesFeatureContext
And user "admin" remembers the fileinfo of the resource with the alias "test2" # <autogenerated>:1 -> *ResourcesFeatureContext
When user "admin" moves the resource with alias "a-sub-folder" inside a space to target "a-folder/a-sub-folder-B/a-sub-folder" # <autogenerated>:1 -> *ResourcesFeatureContext
Then for user "admin" the etag of the resource with the alias "Admin Home" should have changed # <autogenerated>:1 -> *ResourcesFeatureContext
And for user "admin" the etag of the resource with the alias "a-folder" should have changed # <autogenerated>:1 -> *ResourcesFeatureContext
And for user "admin" the etag of the resource with the alias "a-sub-folder" should not have changed # <autogenerated>:1 -> *ResourcesFeatureContext
And for user "admin" the etag of the resource with the alias "a-sub-folder-B" should have changed # <autogenerated>:1 -> *ResourcesFeatureContext
And for user "admin" the etag of the resource with the alias "testFolder" should not have changed # <autogenerated>:1 -> *ResourcesFeatureContext
Error Trace: /drone/src/helpers/assert.go:13
/drone/src/steps/resources/steps.go:386
/drone/src/steps/resources/steps.go:390
/usr/local/go/src/reflect/value.go:596
/usr/local/go/src/reflect/value.go:380
/go/pkg/mod/github.com/cucumber/godog@v0.15.0/internal/models/stepdef.go:189
/go/pkg/mod/github.com/cucumber/godog@v0.15.0/suite.go:287
/go/pkg/mod/github.com/cucumber/godog@v0.15.0/suite.go:576
/go/pkg/mod/github.com/cucumber/godog@v0.15.0/suite.go:638
/go/pkg/mod/github.com/cucumber/godog@v0.15.0/run.go:124
/go/pkg/mod/github.com/cucumber/godog@v0.15.0/run.go:135
/go/pkg/mod/github.com/cucumber/godog@v0.15.0/run.go:284
/go/pkg/mod/github.com/cucumber/godog@v0.15.0/run.go:348
/drone/src/cs3apivalidator_test.go:38
Error: Not equal:
expected: "\"3053fd257ebb5280d399606d6f91ccc0\""
actual : "\"96a0712470a9086f1f5782655e4caaae\""
Diff:
--- Expected
+++ Actual
@@ -1 +1 @@
-"3053fd257ebb5280d399606d6f91ccc0"
+"96a0712470a9086f1f5782655e4caaae" |
I discovered a bug: After running owncloud/cs3api-validator#18 on my local ocis with async propagation, my space is empty but shows 4 bytes used. I suspect we have an issue with deletion. @butonic @aduffeck what happens if you delete a file |
Tests the async propagator against ocis ci 🤞
cc @micbar @butonic