Ignore only not found errors for s3_plain_rewritable (and some other S3 code)#87426
Merged
azat merged 2 commits intoClickHouse:masterfrom Sep 23, 2025
Merged
Ignore only not found errors for s3_plain_rewritable (and some other S3 code)#87426azat merged 2 commits intoClickHouse:masterfrom
azat merged 2 commits intoClickHouse:masterfrom
Conversation
Contributor
|
Workflow [PR], commit [fe78530] Summary: ❌
|
78d063e to
7bc0cce
Compare
…S3 code)
MergeTree code does call readFileIfExists() in some places. For
s3_plain_rewritable, however, existsFile() looks unsafe because it
ignores **all** errors from S3.
For example, you might get an error such as "Response status: 503, Slow Down"
from S3. In that case, with s3_slow_all_threads_after_retryable_error,
the number of retries is reduced to 1, which makes it possible to get
false from existsFile()
Example stacktrace:
DB::S3::(anonymous namespace)::tryGetObjectInfo()
DB::S3::getObjectInfo()
DB::S3ObjectStorage::tryGetObjectMetadata()
DB::MetadataStorageFromPlainObjectStorage::getObjectMetadataEntryWithCache()
DB::MetadataStorageFromPlainObjectStorage::getObjectMetadataEntryWithCache()
DB::MetadataStorageFromPlainRewritableObjectStorage::existsFile()
nikitamikhaylov
approved these changes
Sep 22, 2025
jkartseva
approved these changes
Sep 22, 2025
Member
Author
|
CI failures are unrelated |
Merged
via the queue into
ClickHouse:master
with commit Sep 23, 2025
f51963d
120 of 123 checks passed
robot-clickhouse
added a commit
that referenced
this pull request
Sep 23, 2025
Cherry pick #87426 to 25.6: Ignore only not found errors for s3_plain_rewritable (and some other S3 code)
robot-clickhouse
added a commit
that referenced
this pull request
Sep 23, 2025
…writable (and some other S3 code)
robot-clickhouse
added a commit
that referenced
this pull request
Sep 23, 2025
Cherry pick #87426 to 25.7: Ignore only not found errors for s3_plain_rewritable (and some other S3 code)
robot-clickhouse
added a commit
that referenced
this pull request
Sep 23, 2025
…writable (and some other S3 code)
robot-clickhouse
added a commit
that referenced
this pull request
Sep 23, 2025
Cherry pick #87426 to 25.8: Ignore only not found errors for s3_plain_rewritable (and some other S3 code)
robot-clickhouse
added a commit
that referenced
this pull request
Sep 23, 2025
…writable (and some other S3 code)
robot-clickhouse
added a commit
that referenced
this pull request
Sep 23, 2025
Cherry pick #87426 to 25.9: Ignore only not found errors for s3_plain_rewritable (and some other S3 code)
robot-clickhouse
added a commit
that referenced
this pull request
Sep 23, 2025
…writable (and some other S3 code)
clickhouse-gh bot
added a commit
that referenced
this pull request
Sep 23, 2025
Backport #87426 to 25.7: Ignore only not found errors for s3_plain_rewritable (and some other S3 code)
clickhouse-gh bot
added a commit
that referenced
this pull request
Sep 23, 2025
Backport #87426 to 25.6: Ignore only not found errors for s3_plain_rewritable (and some other S3 code)
azat
added a commit
that referenced
this pull request
Sep 23, 2025
Backport #87426 to 25.8: Ignore only not found errors for s3_plain_rewritable (and some other S3 code)
azat
added a commit
that referenced
this pull request
Sep 23, 2025
Backport #87426 to 25.9: Ignore only not found errors for s3_plain_rewritable (and some other S3 code)
robot-ch-test-poll
added a commit
that referenced
this pull request
Sep 23, 2025
Cherry pick #87426 to 25.3: Ignore only not found errors for s3_plain_rewritable (and some other S3 code)
robot-clickhouse
added a commit
that referenced
this pull request
Sep 23, 2025
…writable (and some other S3 code)
azat
added a commit
that referenced
this pull request
Sep 23, 2025
…25.9/87449 * u/backport/25.9/87449: Backport #87426 to 25.9: Ignore only not found errors for s3_plain_rewritable (and some other S3 code) Backport #87231 to 25.9: Fix "Too large size passed to allocator" UB in JOIN due to mixed const and non-const blocks Backport #87198 to 25.9: Disable the setting by default Backport #87392 to 25.9: Fix EmbeddedRocksDB upgrade Backport #87140 to 25.9: fix: fix server level max temporary size limit Backport #87178 to 25.9: PR: fix LEFT/INNER ... RIGHT ... JOINS chain Update autogenerated version to 25.10.1.1 and contributors
Member
Author
|
And a follow-up to fix the interface - #87485 |
azat
added a commit
that referenced
this pull request
Sep 23, 2025
Backport #87426 to 25.3: Ignore only not found errors for s3_plain_rewritable (and some other S3 code)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MergeTree code does call
readFileIfExists()in some places. Fors3_plain_rewritable, however,existsFile()looks unsafe because it ignores all errors from S3.For example, you might get an error such as "Response status: 503, Slow Down" from S3. In that case, with
s3_slow_all_threads_after_retryable_error, the number of retries is reduced to1(#85918), which makes it possible to getfalsefromexistsFile()Example stacktrace:
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes into CHANGELOG.md):
Ignore only not found errors for
s3_plain_rewritable(which may lead to all sort of troubles)