-
Notifications
You must be signed in to change notification settings - Fork 19
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
ARSN-377 correctly handle null keys with common prefix #2192
ARSN-377 correctly handle null keys with common prefix #2192
Conversation
Hello jonathan-gramain,My role is to assist you with the merge of this Status report is not available. |
ping |
Request integration branchesWaiting for integration branch creation to be requested by the user. To request integration branches, please comment on this pull request with the following command:
Alternatively, the |
/create_integration_branches |
ConflictA conflict has been raised during the creation of I have not created the integration branch. Here are the steps to resolve this conflict: $ git fetch
$ git checkout -B w/8.1/bugfix/ARSN-377-v1NullKeyDeleteMarkerNotInCommonPrefixes origin/development/8.1
$ git merge origin/bugfix/ARSN-377-v1NullKeyDeleteMarkerNotInCommonPrefixes
$ # <intense conflict resolution>
$ git commit
$ git push -u origin w/8.1/bugfix/ARSN-377-v1NullKeyDeleteMarkerNotInCommonPrefixes The following options are set: create_integration_branches |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
The following options are set: create_integration_branches |
{ key: 'notes/summer/4.txt', value: fooDM, versionId: 'foo' }, | ||
{ key: 'notes/summer/4.txt', value: quxDM, versionId: 'qux' }, | ||
{ key: 'notes/summer/444.txt', value: fooDM, versionId: 'foo' }, | ||
{ key: 'notes/summer/44444.txt', value: fooDM, versionId: 'foo' }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I feel like these 2 arrays can be simplified into only one, as receivedData
is most likely just using dataVersioned
array values and adds versionId
field.. What do you think ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's actually not an exact 1-1, it depends on the keys, for example you can have a duplicate master/version key, or not (depending if it's V0 or V1 or if it's a current/noncurrent version, or delete marker). Hence I think it's best to keep them separate. There are actually 3 different arrays if you account for the V0 and V1 data.
Have you tried running zenko tests and cloudserver tests to be sure we don't break anything with that change ? |
I haven't, and it's a good idea, I will do. I ran tests on Metadata to make sure it fixes the case described in the V1 test plan, but since the risk of regression is not negligible I think running the automated test suites beforehand (including S3C Integration) is useful. |
Add version IDs to delete marker metadata
When encountering a null key, check for its common prefix before including it in either the Versions array or CommonPrefixes array, instead of always including it in the Versions array. This commit refactors how `DelimiterVersions` works with null keys slightly: the null key is now inserted at its correct ordered position by the top-level `filter()` method, and the state machine handlers only have to deal with sorted versions. Previously the individual handlers would have to deal with the null key positioning themselves resulting in more complex state management.
ac18220
to
f7144b9
Compare
History mismatchMerge commit #0e19a1e7f42ea5f40f287480a530db64dba45ab7 on the integration branch It is likely due to a rebase of the branch Please use the The following options are set: create_integration_branches |
/reset |
Reset completeI have successfully deleted this pull request's integration branches. The following options are set: create_integration_branches |
ConflictA conflict has been raised during the creation of I have not created the integration branch. Here are the steps to resolve this conflict: $ git fetch
$ git checkout -B w/8.1/bugfix/ARSN-377-v1NullKeyDeleteMarkerNotInCommonPrefixes origin/development/8.1
$ git merge origin/bugfix/ARSN-377-v1NullKeyDeleteMarkerNotInCommonPrefixes
$ # <intense conflict resolution>
$ git commit
$ git push -u origin w/8.1/bugfix/ARSN-377-v1NullKeyDeleteMarkerNotInCommonPrefixes The following options are set: create_integration_branches |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
The following options are set: create_integration_branches |
@KillianG When running the Metadata and Cloudserver tests I found an issue with the |
f7144b9
to
d08a267
Compare
History mismatchMerge commit #f7144b9c165ed91d831157d03c557401137cdef0 on the integration branch It is likely due to a rebase of the branch Please use the The following options are set: create_integration_branches |
/reset |
Reset completeI have successfully deleted this pull request's integration branches. The following options are set: create_integration_branches |
ConflictA conflict has been raised during the creation of I have not created the integration branch. Here are the steps to resolve this conflict: $ git fetch
$ git checkout -B w/8.1/bugfix/ARSN-377-v1NullKeyDeleteMarkerNotInCommonPrefixes origin/development/8.1
$ git merge origin/bugfix/ARSN-377-v1NullKeyDeleteMarkerNotInCommonPrefixes
$ # <intense conflict resolution>
$ git commit
$ git push -u origin w/8.1/bugfix/ARSN-377-v1NullKeyDeleteMarkerNotInCommonPrefixes The following options are set: create_integration_branches |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
The following options are set: create_integration_branches |
/approve |
In the queueThe changeset has received all authorizations and has been added to the The changeset will be merged in:
The following branches will NOT be impacted:
There is no action required on your side. You will be notified here once IMPORTANT Please do not attempt to modify this pull request.
If you need this pull request to be removed from the queue, please contact a The following options are set: approve, create_integration_branches |
I have successfully merged the changeset of this pull request
The following branches have NOT changed:
Please check the status of the associated issue ARSN-377. Goodbye jonathan-gramain. |
When encountering a null key, check for its common prefix before including it in either the Versions array or CommonPrefixes array, instead of always including it in the Versions array.
This commit refactors how
DelimiterVersions
works with null keys slightly: the null key is now inserted at its correct ordered position by the top-levelfilter()
method, and the state machine handlers only have to deal with sorted versions. Previously the individual handlers would have to deal with the null key positioning themselves resulting in more complex state management.