cats-effect icon indicating copy to clipboard operation
cats-effect copied to clipboard

MutexSuite timeout on Windows

Open durban opened this issue 5 months ago • 1 comments

Happened earlier twice in #4377:

  • https://github.com/typelevel/cats-effect/actions/runs/14451272070/job/40524352592 (logs are already gone)
  • https://github.com/typelevel/cats-effect/actions/runs/14459016996/job/40548044386?pr=4377#step:22:4843 (logs are already gone)

And now it happened #4362 after I've merged series/3.x into that branch:

  • https://github.com/typelevel/cats-effect/actions/runs/16380475513/job/46293471052#step:22:4077

For posterity (because GH will delete the logs):

[error] ==> X cats.effect.std.MutexSuite.ConcurrentMutex handle multiple concurrent cancels during release  120.015s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[info]   + ConcurrentMutex preserve waiters order (FIFO) on a non-race cancellation 0.0s
[info]   + ConcurrentMutex cancellation must not corrupt Mutex 0.0s
[error] ==> X cats.effect.std.MutexSuite.Mutex with dual constructors execute action if free  120.024s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[error] ==> X cats.effect.std.MutexSuite.Mutex with dual constructors be reusable  120.002s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[error] ==> X cats.effect.std.MutexSuite.Mutex with dual constructors free on error  120.007s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[info]   + Mutex with dual constructors block action if not free 0.0s
[info]   + Mutex with dual constructors used concurrently 0.0s
[info]   + Mutex with dual constructors free on cancellation 0.0s
[info]   + Mutex with dual constructors allow cancellation if blocked waiting for lock 0.0s
[info]   + Mutex with dual constructors gracefully handle canceled waiters 0.0s
[error] ==> X cats.effect.std.MutexSuite.Mutex with dual constructors not deadlock when highly contended  120.015s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[error] ==> X cats.effect.std.MutexSuite.Mutex with dual constructors handle cancelled acquire  120.015s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[error] ==> X cats.effect.std.MutexSuite.Mutex with dual constructors handle multiple concurrent cancels during release  120.017s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[info]   + Mutex with dual constructors preserve waiters order (FIFO) on a non-race cancellation 0.0s
[info]   + Mutex with dual constructors cancellation must not corrupt Mutex 0.0s
[error] ==> X cats.effect.std.MutexSuite.MapK'd Mutex execute action if free  120.013s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[error] ==> X cats.effect.std.MutexSuite.MapK'd Mutex be reusable  120.013s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[error] ==> X cats.effect.std.MutexSuite.MapK'd Mutex free on error  120.016s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[info]   + MapK'd Mutex block action if not free 0.0s
[info]   + MapK'd Mutex used concurrently 0.0s
[info]   + MapK'd Mutex free on cancellation 0.0s
[info]   + MapK'd Mutex allow cancellation if blocked waiting for lock 0.0s
[info]   + MapK'd Mutex gracefully handle canceled waiters 0.0s
[error] ==> X cats.effect.std.MutexSuite.MapK'd Mutex not deadlock when highly contended  120.009s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[error] ==> X cats.effect.std.MutexSuite.MapK'd Mutex handle cancelled acquire  120.016s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[error] ==> X cats.effect.std.MutexSuite.MapK'd Mutex handle multiple concurrent cancels during release  120.013s java.util.concurrent.TimeoutException: test timed out after 120 seconds
[info]   + MapK'd Mutex preserve waiters order (FIFO) on a non-race cancellation 0.0s
[info]   + MapK'd Mutex cancellation must not corrupt Mutex 0.0s

As I've mentioned in #4377, I fear that this could be something real (but unsure what exactly). The common thing seems to be windows.

Also, could this be the same as #4445?

durban avatar Jul 18 '25 23:07 durban

Or possibly just really the windows runners being slow? Because now there is something else: https://github.com/typelevel/cats-effect/actions/runs/16380475513/job/46295378053#step:22:4120

durban avatar Jul 18 '25 23:07 durban