make ListMultipart/ListParts more reliable skip healing disks (#18312)

this PR also fixes old flaky tests, by properly marking disk offline-based tests.
This commit is contained in:
Harshavardhana
2023-10-24 23:33:25 -07:00
committed by GitHub
parent 483389f2e2
commit c60f54e5be
5 changed files with 76 additions and 52 deletions

View File

@@ -21,6 +21,7 @@ import (
"bytes"
"context"
"fmt"
"math/rand"
"reflect"
"runtime"
"strings"
@@ -1223,8 +1224,18 @@ func testListObjectPartsDiskNotFound(obj ObjectLayer, instanceType string, disks
t.Fatalf("%s : %s", instanceType, err.Error())
}
// Remove some random disk.
removeDiskN(disks, 1)
z := obj.(*erasureServerPools)
er := z.serverPools[0].sets[0]
erasureDisks := er.getDisks()
ridx := rand.Intn(len(erasureDisks))
z.serverPools[0].erasureDisksMu.Lock()
er.getDisks = func() []StorageAPI {
erasureDisks[ridx] = newNaughtyDisk(erasureDisks[ridx], nil, errFaultyDisk)
return erasureDisks
}
z.serverPools[0].erasureDisksMu.Unlock()
uploadIDs = append(uploadIDs, res.UploadID)
@@ -1257,9 +1268,6 @@ func testListObjectPartsDiskNotFound(obj ObjectLayer, instanceType string, disks
}
}
// Remove one disk.
removeDiskN(disks, 1)
partInfos := []ListPartsInfo{
// partinfos - 0.
{