Skip to content

Conversation

@original-brownbear
Copy link
Contributor

@original-brownbear original-brownbear commented May 7, 2019

  • First off, this exists check is somewhat pointless in that it checks
    for the existence of a blob that contains a UUID in its name so we don't
    expect collisions here ever. Just checking for no name collision is
    completely sufficient.
    • Since this check was the only user of the blob store format method I removed that now dead method
  • More importantly though, this check introduces an issue on S3 because
    we will run it against a non existing snap-{uuid}.dat blob
  • Closes [CI] RepositoryS3ClientYamlTestSuiteIT.test failed to restore snapshot #41882

* First off, this exists check is somewhat pointless in that it checks
for the existence of a blob that contains a UUID in its name so we don't
expect collisions here ever. Just checking for no name collision is
completely sufficient.
* More importantly though, this check introduces an issue on S3 because
we will run it against a non existing snap-{uuid}.dat blob!
  * This leads to the fact that subsequent reads of this blob after it
was written can still return a 404 because AWS S3 only guarantees first
read after write consistency. If a read of a key is made before a write
is made this guarantee goes out the window. (see
https://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#ConsistencyModel
for more)
* Closes elastic#41882
@original-brownbear original-brownbear added >bug :Distributed Coordination/Snapshot/Restore Anything directly related to the `_snapshot/*` APIs v8.0.0 v7.2.0 labels May 7, 2019
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-distributed

original-brownbear added a commit to original-brownbear/elasticsearch that referenced this pull request May 7, 2019
@original-brownbear
Copy link
Contributor Author

I pushed f8df217 to the eventually consistent mock blobstore PR #40893 that actually reproduces the issue here.

Copy link
Contributor

@ywelsch ywelsch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. This should also go back to 6.x?

@original-brownbear
Copy link
Contributor Author

@ywelsch

This should also go back to 6.x?

Yea I'd say so. I'll add labels accordingly.

@original-brownbear original-brownbear merged commit 2e40881 into elastic:master May 7, 2019
@original-brownbear original-brownbear deleted the 41882 branch May 7, 2019 16:18
jasontedor added a commit to jasontedor/elasticsearch that referenced this pull request May 7, 2019
* elastic/master: (50 commits)
  Cleanup versioned deprecations in analysis (elastic#41560)
  Allow unknown task time in QueueResizingEsTPE (elastic#41810)
  SQL: Remove CircuitBreaker from parser (elastic#41835)
  [DOCS] Fix callouts for dataframe APIs (elastic#41904)
  Handle serialization exceptions during publication (elastic#41781)
  Correct spelling of MockLogAppender.PatternSeenEventExpectation (elastic#41893)
  Update TLS ciphers and protocols for JDK 11 (elastic#41808)
  Remove Harmful Exists Check from BlobStoreFormat (elastic#41898)
  Fix fractional seconds for strict_date_optional_time (elastic#41871)
  Remove op.name configuration setting (elastic#41445)
  Reject port ranges in `discovery.seed_hosts` (elastic#41404)
  [ML-DataFrame] migrate to PageParams for get and stats, move PageParams into core (elastic#41851)
  Reenable RareClusterStateIT Mapping Propagation Tests (elastic#41884)
  [DOCS] Rewrite `exists` query docs (elastic#41868)
  Revert "Mute MinimumMasterNodesIT.testThreeNodesNoMasterBlock()"
  [DOCS] Fix typo referring to multi search API
  Provide names for all artifact repositories (elastic#41857)
  Move InternalAggregations to Writeable (elastic#41841)
  Fix compilation after incorrect merge
  Unmute TestClustersPluginIT.testMultiNode (elastic#41340)
  ...
@jakelandis
Copy link
Contributor

@original-brownbear - I am manually removing the v6.8.0 and v7.1.0 labels to keep this PR out of the release notes.

gurkankaymak pushed a commit to gurkankaymak/elasticsearch that referenced this pull request May 27, 2019
* First off, this exists check is somewhat pointless in that it checks
for the existence of a blob that contains a UUID in its name so we don't
expect collisions here ever. Just checking for no name collision is
completely sufficient.
   * Since this check was the only user of the blob store format method I removed that now dead method
* More importantly though, this check introduces an issue on S3 because
we will run it against a non existing snap-{uuid}.dat blob
  * This leads to the fact that subsequent reads of this blob after it
was written can still return a 404 because AWS S3 only guarantees first
read after write consistency. If a read of a key is made before a write
is made this guarantee goes out the window. (see
https://docs.aws.amazon.com/AmazonS3/latest/dev/Introduction.html#ConsistencyModel
for more)
* Closes elastic#41882
mkleen added a commit to crate/crate that referenced this pull request May 28, 2020
@original-brownbear original-brownbear restored the 41882 branch August 6, 2020 18:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

>bug :Distributed Coordination/Snapshot/Restore Anything directly related to the `_snapshot/*` APIs v7.2.0 v8.0.0-alpha1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI] RepositoryS3ClientYamlTestSuiteIT.test failed to restore snapshot

4 participants