Skip to content

Cherry pick #87426 to 25.7: Ignore only not found errors for s3_plain_rewritable (and some other S3 code)#87453

Merged
robot-clickhouse merged 3 commits intobackport/25.7/87426from
cherrypick/25.7/87426
Sep 23, 2025
Merged

Cherry pick #87426 to 25.7: Ignore only not found errors for s3_plain_rewritable (and some other S3 code)#87453
robot-clickhouse merged 3 commits intobackport/25.7/87426from
cherrypick/25.7/87426

Conversation

@robot-clickhouse
Copy link
Copy Markdown
Member

Original pull-request #87426

Do not merge this PR manually

This pull-request is a first step of an automated backporting.
It contains changes similar to calling git cherry-pick locally.
If you intend to continue backporting the changes, then resolve all conflicts if any.
Otherwise, if you do not want to backport them, then just close this pull-request.

The check results does not matter at this step - you can safely ignore them.

Troubleshooting

If the conflicts were resolved in a wrong way

If this cherry-pick PR is completely screwed by a wrong conflicts resolution, and you want to recreate it:

  • delete the pr-cherrypick label from the PR
  • delete this branch from the repository

You also need to check the Original pull-request for pr-backports-created label, and delete if it's presented there

The PR source

The PR is created in the CI job

…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()
Ignore only not found errors for s3_plain_rewritable (and some other S3 code)
@robot-clickhouse robot-clickhouse added pr-cherrypick Cherry-pick of merge-commit before backporting. Do not use manually - automated use only! do not test disable testing on pull request pr-critical-bugfix labels Sep 23, 2025
@robot-clickhouse robot-clickhouse merged commit df8bad4 into backport/25.7/87426 Sep 23, 2025
110 of 118 checks passed
@robot-clickhouse robot-clickhouse deleted the cherrypick/25.7/87426 branch September 23, 2025 07:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do not test disable testing on pull request pr-cherrypick Cherry-pick of merge-commit before backporting. Do not use manually - automated use only! pr-critical-bugfix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants