@@ -1019,10 +1019,6 @@ func TestDeleteRequestsManager_SeriesProgress(t *testing.T) {
1019
1019
user2 := []byte ("user2" )
1020
1020
lblFooBar := mustParseLabel (`{foo="bar"}` )
1021
1021
lblFizzBuzz := mustParseLabel (`{fizz="buzz"}` )
1022
- deleteRequestsStore := & mockDeleteRequestsStore {deleteRequests : []DeleteRequest {
1023
- {RequestID : "1" , Query : lblFooBar .String (), UserID : string (user1 ), StartTime : 0 , EndTime : 100 , Status : StatusReceived },
1024
- {RequestID : "2" , Query : lblFooBar .String (), UserID : string (user2 ), StartTime : 0 , EndTime : 100 , Status : StatusReceived },
1025
- }}
1026
1022
type markSeriesProcessed struct {
1027
1023
userID , seriesID []byte
1028
1024
lbls labels.Labels
@@ -1189,6 +1185,11 @@ func TestDeleteRequestsManager_SeriesProgress(t *testing.T) {
1189
1185
} {
1190
1186
t .Run (tc .name , func (t * testing.T ) {
1191
1187
workingDir := t .TempDir ()
1188
+ deleteRequestsStore := & mockDeleteRequestsStore {deleteRequests : []DeleteRequest {
1189
+ {RequestID : "1" , Query : lblFooBar .String (), UserID : string (user1 ), StartTime : 0 , EndTime : 100 , Status : StatusReceived },
1190
+ {RequestID : "2" , Query : lblFooBar .String (), UserID : string (user2 ), StartTime : 0 , EndTime : 100 , Status : StatusReceived },
1191
+ }}
1192
+
1192
1193
mgr , err := NewDeleteRequestsManager (workingDir , deleteRequestsStore , time .Hour , 70 , & fakeLimits {defaultLimit : limit {deletionMode : deletionmode .FilterAndDelete .String ()}}, nil )
1193
1194
require .NoError (t , err )
1194
1195
require .NoError (t , mgr .loadDeleteRequestsToProcess ())
@@ -1207,6 +1208,7 @@ func TestDeleteRequestsManager_SeriesProgress(t *testing.T) {
1207
1208
mgr , err = NewDeleteRequestsManager (workingDir , deleteRequestsStore , time .Hour , 70 , & fakeLimits {defaultLimit : limit {deletionMode : deletionmode .FilterAndDelete .String ()}}, nil )
1208
1209
require .NoError (t , err )
1209
1210
require .Equal (t , storedSeriesProgress , mgr .processedSeries )
1211
+ require .NoError (t , mgr .loadDeleteRequestsToProcess ())
1210
1212
1211
1213
// when the mark phase ends, series progress should get cleared
1212
1214
mgr .MarkPhaseFinished ()
@@ -1216,6 +1218,40 @@ func TestDeleteRequestsManager_SeriesProgress(t *testing.T) {
1216
1218
}
1217
1219
}
1218
1220
1221
+ func TestDeleteRequestsManager_SeriesProgressWithTimeout (t * testing.T ) {
1222
+ workingDir := t .TempDir ()
1223
+
1224
+ user1 := []byte ("user1" )
1225
+ lblFooBar := mustParseLabel (`{foo="bar"}` )
1226
+ deleteRequestsStore := & mockDeleteRequestsStore {deleteRequests : []DeleteRequest {
1227
+ {RequestID : "1" , Query : lblFooBar .String (), UserID : string (user1 ), StartTime : 0 , EndTime : 100 , Status : StatusReceived },
1228
+ {RequestID : "1" , Query : lblFooBar .String (), UserID : string (user1 ), StartTime : 100 , EndTime : 200 , Status : StatusReceived },
1229
+ }}
1230
+
1231
+ mgr , err := NewDeleteRequestsManager (workingDir , deleteRequestsStore , time .Hour , 70 , & fakeLimits {defaultLimit : limit {deletionMode : deletionmode .FilterAndDelete .String ()}}, nil )
1232
+ require .NoError (t , err )
1233
+ require .NoError (t , mgr .loadDeleteRequestsToProcess ())
1234
+
1235
+ require .NoError (t , mgr .MarkSeriesAsProcessed (user1 , []byte (lblFooBar .String ()), lblFooBar , "t1" ))
1236
+
1237
+ // timeout the retention processing
1238
+ mgr .MarkPhaseTimedOut ()
1239
+
1240
+ // timeout should not clear the series progress
1241
+ mgr .MarkPhaseFinished ()
1242
+ require .Len (t , mgr .processedSeries , 2 )
1243
+ require .NoError (t , mgr .storeSeriesProgress ())
1244
+ require .FileExists (t , filepath .Join (workingDir , seriesProgressFilename ))
1245
+
1246
+ // load the requests again for processing
1247
+ require .NoError (t , mgr .loadDeleteRequestsToProcess ())
1248
+
1249
+ // not hitting the timeout should clear the series progress
1250
+ mgr .MarkPhaseFinished ()
1251
+ require .Len (t , mgr .processedSeries , 0 )
1252
+ require .NoFileExists (t , filepath .Join (workingDir , seriesProgressFilename ))
1253
+ }
1254
+
1219
1255
type storeAddReqDetails struct {
1220
1256
userID , query string
1221
1257
startTime , endTime model.Time
0 commit comments