Closed LoneEngineer closed 4 years ago
Could you please check with 0.26.1 and share a little bit longer stacktrace?
@Tapac Just checked with 0.26.1. Problem is still there. Stacktrace is changed a bit:
java.lang.StackOverflowError
at |b|b|b(Coroutine boundary.|b(|b)
at io.ktor.routing.Routing.executeResult(Routing.kt:147)
at io.ktor.routing.Routing.interceptor(Routing.kt:34)
at io.ktor.routing.Routing$Feature$install$1.invokeSuspend(Routing.kt:99)
at io.ktor.features.ContentNegotiation$Feature$install$1.invokeSuspend(ContentNegotiation.kt:107)
at io.ktor.features.StatusPages$interceptCall$2.invokeSuspend(StatusPages.kt:101)
at io.ktor.features.StatusPages.interceptCall(StatusPages.kt:100)
at io.ktor.features.StatusPages$Feature$install$2.invokeSuspend(StatusPages.kt:140)
at io.ktor.features.CallLogging$Feature$install$1$invokeSuspend$$inlined$withMDC$1.invokeSuspend(CallLogging.kt:226)
at io.ktor.features.CallLogging$Feature$install$1.invokeSuspend(CallLogging.kt:230)
at io.ktor.server.testing.TestApplicationEngine$callInterceptor$1.invokeSuspend(TestApplicationEngine.kt:292)
at io.ktor.server.testing.TestApplicationEngine$2.invokeSuspend(TestApplicationEngine.kt:50)
at io.ktor.server.testing.TestApplicationEngine$handleRequest$pipelineJob$1.invokeSuspend(TestApplicationEngine.kt:290)
at kotlinx.coroutines.DeferredCoroutine.await$suspendImpl(Builders.common.kt:99)
at io.ktor.server.testing.TestApplicationEngine$handleRequest$1.invokeSuspend(TestApplicationEngine.kt:151)
Caused by: java.lang.StackOverflowError
at java.base/java.lang.ThreadLocal.get(ThreadLocal.java:163)
at org.jetbrains.exposed.sql.transactions.TransactionManager$Companion.getManager(TransactionApi.kt:87)
at org.jetbrains.exposed.sql.transactions.TransactionManager$Companion.currentOrNull(TransactionApi.kt:96)
at org.jetbrains.exposed.sql.transactions.TransactionManager$Companion.current(TransactionApi.kt:98)
at org.jetbrains.exposed.sql.vendors.DefaultKt.getCurrentDialect(Default.kt:735)
at org.jetbrains.exposed.sql.ISqlExpressionBuilder$DefaultImpls.match(SQLExpressionBuilder.kt:292)
at org.jetbrains.exposed.sql.SqlExpressionBuilder.match(SQLExpressionBuilder.kt:405)
at org.jetbrains.exposed.sql.ISqlExpressionBuilder$DefaultImpls.match(SQLExpressionBuilder.kt:292)
at org.jetbrains.exposed.sql.SqlExpressionBuilder.match(SQLExpressionBuilder.kt:405)
at org.jetbrains.exposed.sql.ISqlExpressionBuilder$DefaultImpls.match(SQLExpressionBuilder.kt:292)
at org.jetbrains.exposed.sql.SqlExpressionBuilder.match(SQLExpressionBuilder.kt:405)
... last two lines repeat a lot of time here ....
I think the issue with following code (even IDEA reports about 'recursive call') in org.jetbrains.exposed.sql.ISqlExpressionBuilder:
Issue found in tests using H2 engine.
Oh. now I see. It was broken with https://github.com/JetBrains/Exposed/issues/829. Will be fixed in next release. Thank you for a report.
Version: 0.22.1
If I run query with 'match' operator, I got
Issue seems to be here (in master version): https://github.com/JetBrains/Exposed/blob/cd6bb936b339bc0a55d2ae59ba71f027ea8d0504/exposed-core/src/main/kotlin/org/jetbrains/exposed/sql/SQLExpressionBuilder.kt#L288