cmp = days*cct->_conf->rgw_lc_debug_interval;
base_time = ceph_clock_now();
}
- timediff = base_time - ceph::real_clock::to_time_t(mtime);
+ auto tt_mtime = ceph::real_clock::to_time_t(mtime);
+ timediff = base_time - tt_mtime;
if (expire_time) {
*expire_time = mtime + make_timespan(cmp);
}
- ldout(cct, 20) << __func__ << "(): mtime=" << mtime << " days=" << days << " base_time=" << base_time << " timediff=" << timediff << " cmp=" << cmp << dendl;
+
+ ldout(cct, 20) << __func__ << __func__
+ << "(): mtime=" << mtime << " days=" << days
+ << " base_time=" << base_time << " timediff=" << timediff
+ << " cmp=" << cmp
+ << " is_expired=" << (timediff >= cmp)
+ << dendl;
return (timediff >= cmp);
}
op_env env;
rgw_bucket_dir_entry o;
boost::optional<std::string> next_key_name;
- ceph::real_time dm_effective_mtime;
+ ceph::real_time effective_mtime;
rgw::sal::RGWRadosStore *store;
RGWBucketInfo& bucket_info;
lc_op_ctx(op_env& env, rgw_bucket_dir_entry& o,
boost::optional<std::string> next_key_name,
- ceph::real_time dem,
+ ceph::real_time effective_mtime,
const DoutPrefixProvider *dpp, WorkQ* wq)
: cct(env.store->ctx()), env(env), o(o), next_key_name(next_key_name),
+ effective_mtime(effective_mtime),
store(env.store), bucket_info(env.bucket_info), op(env.op), ol(env.ol),
obj(env.bucket_info.bucket, o.key), rctx(env.store), dpp(dpp), wq(wq)
{}
op_env env;
boost::optional<std::string> next_key_name;
- ceph::real_time dm_effective_mtime;
+ ceph::real_time effective_mtime;
std::vector<shared_ptr<LCOpFilter> > filters; // n.b., sharing ovhd
std::vector<shared_ptr<LCOpAction> > actions;
return next_key_name;
}
+ std::vector<shared_ptr<LCOpAction>>& get_actions() {
+ return actions;
+ }
+
void build();
void update();
int process(rgw_bucket_dir_entry& o, const DoutPrefixProvider *dpp,
class LCOpAction_NonCurrentExpiration : public LCOpAction {
protected:
- ceph::real_time mtime;
public:
LCOpAction_NonCurrentExpiration(op_env& env)
- : mtime(env.ol.get_prev_obj().meta.mtime)
{}
bool check(lc_op_ctx& oc, ceph::real_time *exp_time) override {
}
int expiration = oc.op.noncur_expiration;
- bool is_expired = obj_has_expired(oc.cct, mtime, expiration, exp_time);
+ bool is_expired = obj_has_expired(oc.cct, oc.effective_mtime, expiration,
+ exp_time);
ldout(oc.cct, 20) << __func__ << "(): key=" << o.key << ": is_expired="
<< is_expired << " "
<< oc.wq->thr_name() << dendl;
+
return is_expired &&
pass_object_lock_check(oc.store->getRados(),
oc.bucket_info, oc.obj, oc.rctx);
}
ceph::real_time get_effective_mtime(lc_op_ctx& oc) override {
- return oc.dm_effective_mtime;
+ return oc.effective_mtime;
}
public:
LCOpAction_NonCurrentTransition(op_env& env,
void LCOpRule::update()
{
next_key_name = env.ol.next_key_name();
- dm_effective_mtime = env.ol.get_prev_obj().meta.mtime;
+ effective_mtime = env.ol.get_prev_obj().meta.mtime;
}
int LCOpRule::process(rgw_bucket_dir_entry& o,
const DoutPrefixProvider *dpp,
WorkQ* wq)
{
- lc_op_ctx ctx(env, o, next_key_name, dm_effective_mtime, dpp, wq);
+ lc_op_ctx ctx(env, o, next_key_name, effective_mtime, dpp, wq);
shared_ptr<LCOpAction> *selected = nullptr; // n.b., req'd by sharing
real_time exp;