From 2c39bf9ffd272bbe171b893a178e7490a25aeb3c Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Thu, 20 Aug 2020 14:35:32 -0400 Subject: [PATCH] rgw: RGWBucket uses creation_time from RGWBucketInfo RGWRadosBucket::get_creation_time() is uninitialized when returned by RGWRadosStore::create_bucket(). RGWCreateBucket passes this timestamp to link_bucket(), which will generate a new creation time if an empty one is given Fixes: https://tracker.ceph.com/issues/47055 Signed-off-by: Casey Bodley --- src/rgw/rgw_sal.cc | 2 ++ src/rgw/rgw_sal.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/rgw/rgw_sal.cc b/src/rgw/rgw_sal.cc index 8b9d95edc285d..cedf07554f6c9 100644 --- a/src/rgw/rgw_sal.cc +++ b/src/rgw/rgw_sal.cc @@ -230,6 +230,8 @@ int RGWRadosBucket::update_container_stats(void) ent.size_rounded = iter->second.size_rounded; ent.creation_time = iter->second.creation_time; ent.placement_rule = std::move(iter->second.placement_rule); + + info.creation_time = ent.creation_time; info.placement_rule = ent.placement_rule; return 0; diff --git a/src/rgw/rgw_sal.h b/src/rgw/rgw_sal.h index 7b27b3c3d4629..3904f7bd5ff3d 100644 --- a/src/rgw/rgw_sal.h +++ b/src/rgw/rgw_sal.h @@ -163,7 +163,7 @@ class RGWBucket { size_t get_size_rounded() const { return ent.size_rounded; } uint64_t get_count() const { return ent.count; } rgw_placement_rule& get_placement_rule() { return info.placement_rule; } - ceph::real_time& get_creation_time() { return ent.creation_time; } + ceph::real_time& get_creation_time() { return info.creation_time; } ceph::real_time& get_modification_time() { return mtime; } obj_version& get_version() { return bucket_version; } void set_version(obj_version &ver) { bucket_version = ver; } -- 2.39.5