aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/topology/volume_growth_reservation_test.go14
1 files changed, 8 insertions, 6 deletions
diff --git a/weed/topology/volume_growth_reservation_test.go b/weed/topology/volume_growth_reservation_test.go
index 1f545b9bb..e65d7c618 100644
--- a/weed/topology/volume_growth_reservation_test.go
+++ b/weed/topology/volume_growth_reservation_test.go
@@ -81,14 +81,15 @@ func TestVolumeGrowth_ReservationBasedAllocation(t *testing.T) {
}
// Simulate successful volume creation
- // Must acquire lock before accessing children map to prevent race condition
- dn.Lock()
+ // Acquire lock briefly to access children map, then release before updating
+ dn.RLock()
disk := dn.children[NodeId(types.HardDriveType.String())].(*Disk)
+ dn.RUnlock()
+
deltaDiskUsage := &DiskUsageCounts{
volumeCount: 1,
}
disk.UpAdjustDiskUsageDelta(types.HardDriveType, deltaDiskUsage)
- dn.Unlock()
// Release reservation after successful creation
reservation.releaseAllReservations()
@@ -156,14 +157,15 @@ func TestVolumeGrowth_ConcurrentAllocationPreventsRaceCondition(t *testing.T) {
// Simulate completion: increment volume count BEFORE releasing reservation
if reservation != nil {
// First, increment the volume count to reflect the created volume
- // Must acquire lock before accessing children map to prevent race condition
- dn.Lock()
+ // Acquire lock briefly to access children map, then release before updating
+ dn.RLock()
disk := dn.children[NodeId(types.HardDriveType.String())].(*Disk)
+ dn.RUnlock()
+
deltaDiskUsage := &DiskUsageCounts{
volumeCount: 1,
}
disk.UpAdjustDiskUsageDelta(types.HardDriveType, deltaDiskUsage)
- dn.Unlock()
// Then release the reservation
reservation.releaseAllReservations()