From 30e8133524b25b2e98658e8da335fa2c4586e53e Mon Sep 17 00:00:00 2001 From: chrislu Date: Wed, 22 Oct 2025 21:30:13 -0700 Subject: [PATCH] Update volume_growth_reservation_test.go --- weed/topology/volume_growth_reservation_test.go | 14 ++++++++------ 1 file 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()