Open
Description
kotlinx-coroutines-debug:1.8.0
This one appeared once when running Kotest in debug mode with env KOTEST_DEBUG=true ./gradlew ...
:
reactor.blockhound.BlockingOperationError: Blocking call! jdk.internal.misc.Unsafe#park
at app//io.kotest.extensions.blockhound.KotestBlockHoundIntegration.applyTo$lambda$2$lambda$1(KotestBlockHoundIntegration.kt:28)
at app//reactor.blockhound.BlockHound$Builder.lambda$install$8(BlockHound.java:488)
at reactor.blockhound.BlockHoundRuntime.checkBlocking(BlockHoundRuntime.java:89)
at [email protected]/jdk.internal.misc.Unsafe.park(Unsafe.java)
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:211)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:715)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:938)
at [email protected]/java.util.concurrent.locks.ReentrantLock$Sync.lock(ReentrantLock.java:153)
at [email protected]/java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:322)
at app//kotlin.reflect.jvm.internal.impl.storage.DefaultSimpleLock.lock(locks.kt:48)
at app//kotlin.reflect.jvm.internal.impl.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:554)
at app//kotlin.reflect.jvm.internal.impl.serialization.deserialization.TypeDeserializer.typeConstructor(TypeDeserializer.kt:156)
at app//kotlin.reflect.jvm.internal.impl.serialization.deserialization.TypeDeserializer.simpleType(TypeDeserializer.kt:91)
at app//kotlin.reflect.jvm.internal.impl.serialization.deserialization.TypeDeserializer.type(TypeDeserializer.kt:68)
at app//kotlin.reflect.jvm.internal.impl.serialization.deserialization.MemberDeserializer.loadFunction(MemberDeserializer.kt:218)
at app//kotlin.reflect.jvm.ReflectLambdaKt$reflect$descriptor$1.invoke(reflectLambda.kt:46)
at app//kotlin.reflect.jvm.ReflectLambdaKt$reflect$descriptor$1.invoke(reflectLambda.kt:46)
at app//kotlin.reflect.jvm.internal.UtilKt.deserializeToDescriptor(util.kt:267)
at app//kotlin.reflect.jvm.ReflectLambdaKt.reflect(reflectLambda.kt:45)
at app//kotlin.reflect.jvm.internal.ReflectionFactoryImpl.renderLambdaToString(ReflectionFactoryImpl.java:56)
at app//kotlin.reflect.jvm.internal.ReflectionFactoryImpl.renderLambdaToString(ReflectionFactoryImpl.java:51)
at app//kotlin.jvm.internal.Reflection.renderLambdaToString(Reflection.java:79)
at app//kotlin.jvm.internal.Lambda.toString(Lambda.kt:11)
at [email protected]/java.lang.String.valueOf(String.java:4220)
at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:173)
at app//io.kotest.core.test.config.ResolvedTestConfig.toString(ResolvedTestConfig.kt)
at [email protected]/java.lang.String.valueOf(String.java:4220)
at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:173)
at app//io.kotest.core.test.TestCase.toString(TestCase.kt)
at [email protected]/java.lang.String.valueOf(String.java:4220)
at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:173)
at app//io.kotest.core.test.TestCase.toString(TestCase.kt)
at [email protected]/java.lang.String.valueOf(String.java:4220)
at [email protected]/java.lang.StringBuilder.append(StringBuilder.java:173)
at app//io.kotest.engine.test.listener.TestCaseExecutionListenerToTestEngineListenerAdapter$testFinished$2.invoke(TestCaseExecutionListenerToTestEngineListenerAdapter.kt:19)
at app//io.kotest.engine.test.listener.TestCaseExecutionListenerToTestEngineListenerAdapter$testFinished$2.invoke(TestCaseExecutionListenerToTestEngineListenerAdapter.kt:19)
at app//io.kotest.mpp.Logger$log$1.invoke(logger.kt:19)
at app//io.kotest.mpp.Logger$log$1.invoke(logger.kt:18)
at app//io.kotest.mpp.LoggerKt.log(logger.kt:41)
at app//io.kotest.mpp.Logger.log(logger.kt:18)
at app//io.kotest.engine.test.listener.TestCaseExecutionListenerToTestEngineListenerAdapter.testFinished(TestCaseExecutionListenerToTestEngineListenerAdapter.kt:19)
at app//io.kotest.engine.test.interceptors.TestFinishedInterceptor.intercept(TestFinishedInterceptor.kt:26)
at app//io.kotest.engine.test.interceptors.TestFinishedInterceptor$intercept$1.invokeSuspend(TestFinishedInterceptor.kt)
at app//kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at app//kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:28)
at app//kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
at app//kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at app//kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at app//kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
Might be worth adding an allowance to BlockHound.Builder.allowBlockingCallsInReflectionImpl()
at whatever level is deemed appropriate.