]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rgw/lc: retry cloud-tier 500 InternalError for bucket create and object PUT 68922/head
authorMatthew N. Heler <matthew.heler@hotmail.com>
Wed, 3 Jun 2026 19:20:11 +0000 (14:20 -0500)
committerMatthew N. Heler <matthew.heler@hotmail.com>
Wed, 3 Jun 2026 21:44:35 +0000 (16:44 -0500)
commit9c07120d1055c4328bcc46dcfac356c9ea80aa6f
tree3e4216b622f47c96eb9600411b2c29e055e51ac0
parent579eb831437c69c9d2b7c22ebdb4a9afca7801f0
rgw/lc: retry cloud-tier 500 InternalError for bucket create and object PUT

The cloud-tier transfer only treated 503 (-EBUSY) as retryable. A 500 from the
remote surfaced as -ERR_INTERNAL_ERROR and failed the object outright, but S3
backends use 500 as a transient "try again" signal. Retry it the same way we
retry -EBUSY. The helper is no longer EBUSY-specific, so rename it to
retry_on_transient_error; the restore path uses it too and gets the same
behaviour.

Even then a 500 never reached the retry: cloud_tier_create_bucket mapped an
error response to -EIO and an error with no body to 0 (success). Return the
real errno for transient failures, and stop treating an empty-body error as a
successful create.

Signed-off-by: Matthew N. Heler <matthew.heler@hotmail.com>
src/rgw/driver/rados/rgw_lc_tier.cc
src/rgw/driver/rados/rgw_lc_tier.h
src/rgw/driver/rados/rgw_rados.cc