gofiber / fiber

⚡️ Express inspired web framework written in Go
https://gofiber.io
MIT License
33.12k stars 1.63k forks source link

🐛 [Bug]: Mutex issues with Idempotency middleware #3058

Open gaby opened 2 months ago

gaby commented 2 months ago

Bug Description

The recent changes to internal storage are causing sync.Mutex issues with idempotency middleware:

=== FAIL: middleware/idempotency  (0.00s)
-test.shuffle 1719923994676848980
panic: test timed out after 10m0s
running tests:
    Test_Idempotency (2s)

goroutine 5152 [running]:
testing.(*M).startAlarm.func1()
    /snap/go/10630/src/testing/testing.go:2366 +0x265
created by time.goFunc
    /snap/go/10630/src/time/sleep.go:177 +0x45

goroutine 1 [chan receive]:
testing.tRunner.func1()
    /snap/go/10630/src/testing/testing.go:1650 +0x9b2
testing.tRunner(0xc00014fa00, 0xc00002fb10)
    /snap/go/10630/src/testing/testing.go:1695 +0x25e
testing.runTests(0xc000012540, {0xc36780, 0x3, 0x3}, {0x2?, 0xc00002fc00?, 0xc42920?})
    /snap/go/10630/src/testing/testing.go:2159 +0x8bf
testing.(*M).Run(0xc00009ad20)
    /snap/go/10630/src/testing/testing.go:2027 +0xf18
main.main()
    _testmain.go:61 +0x2be

goroutine 9 [sync.Mutex.Lock, 9 minutes]:
sync.runtime_SemacquireMutex(0x0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc000014e48)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc000014e48)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc00002a700, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 6
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 18 [chan receive]:
github.com/gofiber/fiber/v3/internal/storage/memory.New.StartTimeStampUpdater.func1.1(0x3b9aca00)
    /home/ubuntu/go/pkg/mod/github.com/gofiber/utils/v2@v2.0.0-beta.4/time.go:30 +0x105
created by github.com/gofiber/fiber/v3/internal/storage/memory.New.StartTimeStampUpdater.func1 in goroutine 7
    /home/ubuntu/go/pkg/mod/github.com/gofiber/utils/v2@v2.0.0-beta.4/time.go:26 +0x9b

goroutine 19 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc0002180f0)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 7
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 21 [sleep]:
time.Sleep(0x3b9aca00)
    /snap/go/10630/src/runtime/time.go:195 +0x115
github.com/valyala/fasthttp.updateServerDate.func1()
    /home/ubuntu/go/pkg/mod/github.com/valyala/fasthttp@v1.55.0/header.go:2368 +0x25
created by github.com/valyala/fasthttp.updateServerDate in goroutine 20
    /home/ubuntu/go/pkg/mod/github.com/valyala/fasthttp@v1.55.0/header.go:2366 +0x29

goroutine 4160 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000684720)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 4157
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 3598 [sync.Mutex.Lock, 2 minutes]:
sync.runtime_SemacquireMutex(0xc0002b6a30?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc00080aed8)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc00080aed8)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc0002b6a30, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 3595
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 937 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000219920)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 935
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 294 [sync.Mutex.Lock, 9 minutes]:
sync.runtime_SemacquireMutex(0xc0002a85b0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc000014528)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc000014528)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc0002a85b0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 241
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 3573 [sync.Mutex.Lock, 3 minutes]:
sync.runtime_SemacquireMutex(0xc00002b110?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc000324598)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc000324598)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc00002b110, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 3570
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 4159 [sync.Mutex.Lock, 1 minutes]:
sync.runtime_SemacquireMutex(0xc0006ac3c0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc00020c558)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc00020c558)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc0006ac3c0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 4156
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 1792 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc0003e6330)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 1790
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 1968 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc0002184b0)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 1965
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 506 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000526930)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 503
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 1967 [sync.Mutex.Lock, 5 minutes]:
sync.runtime_SemacquireMutex(0xc00039c290?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc000112298)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc000112298)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc00039c290, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 1964
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 505 [sync.Mutex.Lock, 9 minutes]:
sync.runtime_SemacquireMutex(0xc0002b62d0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc0003a2198)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc0003a2198)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc0002b62d0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 502
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 722 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000286d80)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 160
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 4901 [sync.Mutex.Lock]:
sync.runtime_SemacquireMutex(0xc00069c3a0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc000346578)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc000346578)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc00069c3a0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 4898
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 1168 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000218210)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 1372
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 4459 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000699770)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 4429
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 292 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000286630)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 290
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 3567 [sync.Mutex.Lock, 2 minutes]:
sync.runtime_SemacquireMutex(0xc0002a82f0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc00020c468)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc00020c468)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc0002a82f0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 3564
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 2482 [sync.Mutex.Lock, 5 minutes]:
sync.runtime_SemacquireMutex(0xc00039d1b0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc00020deb8)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc00020deb8)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc00039d1b0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 2447
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 2016 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc0003e68d0)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 2014
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 5140 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc0007194d0)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 5089
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 3280 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc0003e78c0)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 3309
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 217 [sync.Mutex.Lock, 8 minutes]:
sync.runtime_SemacquireMutex(0xc0002a81f0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc0003246f8)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc0003246f8)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc0002a81f0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 934
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 2679 [sync.Mutex.Lock, 4 minutes]:
sync.runtime_SemacquireMutex(0xc00002adc0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc0005160a8)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc0005160a8)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc00002adc0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 2676
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 4669 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000286cc0)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 4666
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 4668 [sync.Mutex.Lock, 1 minutes]:
sync.runtime_SemacquireMutex(0xc0002a83b0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc000516fe8)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc000516fe8)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc0002a83b0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 4665
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 2021 [sync.Mutex.Lock, 6 minutes]:
sync.runtime_SemacquireMutex(0xc0002b6090?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc0001123d8)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc0001123d8)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc0002b6090, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 2013
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 3099 [sync.Mutex.Lock, 4 minutes]:
sync.runtime_SemacquireMutex(0xc00002b100?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc000113f58)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc000113f58)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc00002b100, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 3096
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 1389 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000218a80)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 1387
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 2456 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000718e10)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 2448
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 4794 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc0002871d0)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 4899
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 1156 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc0002be180)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 910
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 3080 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000594750)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 3097
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 3324 [sync.Mutex.Lock, 3 minutes]:
sync.runtime_SemacquireMutex(0xc000328370?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc00020c7b8)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc00020c7b8)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc000328370, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 3308
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 721 [sync.Mutex.Lock, 8 minutes]:
sync.runtime_SemacquireMutex(0xc00039c0e0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc00020c118)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc00020c118)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc00039c0e0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 159
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 2709 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc00050e6f0)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 2677
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 3793 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000286db0)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 3565
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 3557 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc00050fec0)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 3571
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 1826 [sync.Mutex.Lock, 6 minutes]:
sync.runtime_SemacquireMutex(0xc00002a790?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc000112318)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc000112318)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc00002a790, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 1789
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 5089 [sleep]:
time.Sleep(0x1dcd65000)
    /snap/go/10630/src/runtime/time.go:195 +0x115
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_Idempotency(0xc00014fd40)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/idempotency_test.go:108 +0x8fd
testing.tRunner(0xc00014fd40, 0x980b20)
    /snap/go/10630/src/testing/testing.go:1689 +0x21f
created by testing.(*T).Run in goroutine 1
    /snap/go/10630/src/testing/testing.go:1742 +0x826

goroutine 912 [sync.Mutex.Lock, 8 minutes]:
sync.runtime_SemacquireMutex(0xc0002b62a0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc000112228)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc000112228)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc0002b62a0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 909
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 913 [sync.Mutex.Lock, 7 minutes]:
sync.runtime_SemacquireMutex(0xc00002a080?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc000112b58)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc000112b58)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc00002a080, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 1386
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 2932 [sync.Mutex.Lock, 4 minutes]:
sync.runtime_SemacquireMutex(0xc00002a570?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc0001139e8)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc0001139e8)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc00002a570, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 2667
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 2670 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc00050e060)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 2668
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 3990 [select]:
github.com/gofiber/fiber/v3/internal/storage/memory.(*Storage).gc(0xc000594d20)
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:112 +0x1c5
created by github.com/gofiber/fiber/v3/internal/storage/memory.New in goroutine 3596
    /home/ubuntu/Desktop/git/v3-fiber/fiber/internal/storage/memory/memory.go:40 +0x24e

goroutine 5139 [sync.Mutex.Lock]:
sync.runtime_SemacquireMutex(0xc0005868b0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc0002b5508)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc0002b5508)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc0005868b0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 5088
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 1374 [sync.Mutex.Lock, 7 minutes]:
sync.runtime_SemacquireMutex(0xc0006ac540?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc0002b48c8)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc0002b48c8)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc0006ac540, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 1371
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a

goroutine 4431 [sync.Mutex.Lock, 1 minutes]:
sync.runtime_SemacquireMutex(0xc0002a8ca0?, 0x0?, 0x0?)
    /snap/go/10630/src/runtime/sema.go:77 +0x25
sync.(*Mutex).lockSlow(0xc0005163b8)
    /snap/go/10630/src/sync/mutex.go:171 +0x213
sync.(*Mutex).Lock(0xc0005163b8)
    /snap/go/10630/src/sync/mutex.go:90 +0x55
github.com/gofiber/fiber/v3/middleware/idempotency.(*MemoryLock).Lock(0xc0002a8ca0, {0x9f2fd8, 0x1})
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker.go:28 +0x11b
github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock.func1()
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:28 +0xb5
created by github.com/gofiber/fiber/v3/middleware/idempotency_test.Test_MemoryLock in goroutine 4428
    /home/ubuntu/Desktop/git/v3-fiber/fiber/middleware/idempotency/locker_test.go:25 +0x20a
FAIL    github.com/gofiber/fiber/v3/middleware/idempotency  600.021s

=== FAIL: middleware/idempotency Test_Idempotency (unknown)

DONE 30372 tests, 25 skipped, 2 failures in 622.364s
exit status 1
make: *** [Makefile:43: longtest] Error 1

How to Reproduce

git clone git@github.com:gofiber/fiber.git
cd fiber/
make longtest

Expected Behavior

n/a

Fiber Version

v3

Checklist:

byte0o commented 1 month ago

@gaby If possible, provide Profiling ,Reference https://pkg.go.dev/cmd/go#hdr-Testing_flags