diff --git a/internal/bucket/lifecycle/lifecycle.go b/internal/bucket/lifecycle/lifecycle.go
index 8fc999d5b..7eeda0d8a 100644
--- a/internal/bucket/lifecycle/lifecycle.go
+++ b/internal/bucket/lifecycle/lifecycle.go
@@ -208,6 +208,9 @@ func (lc Lifecycle) HasActiveRules(prefix string) bool {
if rule.Expiration.DeleteMarker.val {
return true
}
+ if !rule.DelMarkerExpiration.Empty() {
+ return true
+ }
if !rule.Transition.IsDateNull() && rule.Transition.Date.Before(time.Now().UTC()) {
return true
}
diff --git a/internal/bucket/lifecycle/lifecycle_test.go b/internal/bucket/lifecycle/lifecycle_test.go
index 2af5556ed..e59fd3686 100644
--- a/internal/bucket/lifecycle/lifecycle_test.go
+++ b/internal/bucket/lifecycle/lifecycle_test.go
@@ -819,6 +819,26 @@ func TestHasActiveRules(t *testing.T) {
prefix: "",
want: true,
},
+ { // DelMarkerExpiration as the only action
+ inputConfig: `Enabled1`,
+ prefix: "",
+ want: true,
+ },
+ {
+ inputConfig: `Enabledfoodir/1`,
+ prefix: "foodir/foobject",
+ want: true,
+ },
+ {
+ inputConfig: `Enabledfoodir/1`,
+ prefix: "zdir/foobject",
+ want: false,
+ },
+ {
+ inputConfig: `Disabled1`,
+ prefix: "",
+ want: false,
+ },
}
for i, tc := range testCases {