Status Update
Comments
pa...@gmail.com <pa...@gmail.com> #2
For Kotlin 2.0 and KSP 2.0 the Cannot change attributes of configuration ':composeApp:debugFrameworkIosX64' after it has been locked for mutation
really seems like a KSP issue. You should file a bug in their repository with a sample app if possible.
If you downgrade to Kotlin 1.9 then things 'should' work, there are example apps out there with such configuration, like the following one:
da...@google.com <da...@google.com> #3
Will try to use the example provided by you to check if it fixes the issue.
da...@google.com <da...@google.com> #4
Note that this issue happens when applying the Compose, KSP and Room Plugin together in Kotlin 2.0.x, the workaround for now is to not use the Room Gradle Plugin and instead specify the schema location vis KSP arguments:
// In the build.gradle
ksp {
arg("room.schemaLocation", "${projectDir}/schemas")
}
al...@gmail.com <al...@gmail.com> #5
Hi, I encountered a similar problem and was able to resolve it by updating the dependencies
room = "2.7.0-alpha08"
ksp = "2.0.20-1.0.25"
compose-plugin = "1.6.11"
kotlin = "2.0.20"
da...@google.com <da...@google.com> #6
Please enable Coroutine debug mode:
al...@gmail.com <al...@gmail.com> #7
Just for trying out, we've also tried updating the coroutines library to 1.9.0-RC with no improvements.
I hope someone else with this bug can post his/her stacktrace.
el...@google.com <el...@google.com>
da...@google.com <da...@google.com> #8
Can you please share reproduction steps using the
al...@gmail.com <al...@gmail.com> #9
To log in please do the following:
- Select any "residencia".
- Click or tap 10 times on "Introduce tu usuario y contraseña" and you'll see a new text saying "Modo desarrollador: Activado".
- Use 1234567 as "Usuario" and 1234567 as "Contraseña" and finally hit "Entrar".
It'll take a few seconds downloading data and after that, in the bottom bar, navigate to the third option: "Buscar".
Now there's two possibilities: It will either show a list of items or it will not. If it doesn't load, wait for 20 seconds or so and the app will crash. If it loads the screen correctly, navigate elsewhere and try it again.
da...@google.com <da...@google.com> #10
Muchisimas gracias!
With the repro steps I was able to validate the issue, find the cause and create a fix.
al...@gmail.com <al...@gmail.com> #11
ap...@google.com <ap...@google.com> #12
Branch: androidx-main
commit 241d1fe6eaf04405a4d3118384d7831a69fa72d0
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Thu Jul 11 21:04:41 2024
Recycle connection if they are undelivered.
Closing SQLite connections on the onUndeliveredElement of the Pool's Channel caused for the Channel to not be refilled with a new connections, ultimately leading to timeouts during connection acquisition. This CL updates the onUndeliveredElement to simply recycle the unused connection, refilling the pool and letting new waiters acquire the unused connection.
Bug: 347737870
Test: BaseConnectionPoolTest
Change-Id: Ic5cac60a1855bccea99f476cf6236ea397004710
M room/room-runtime/src/commonMain/kotlin/androidx/room/coroutines/ConnectionPoolImpl.kt
M room/room-runtime/src/commonTest/kotlin/androidx/room/coroutines/BaseConnectionPoolTest.kt
da...@google.com <da...@google.com>
wo...@ahrefs.com <wo...@ahrefs.com> #13
da...@google.com <da...@google.com> #14
Unfortunately the fix did not make it to alpha05, the next release is scheduled for July 24. If you want to verify the fix before the release snapshots of Room can be found at
yb...@gmail.com <yb...@gmail.com> #15
does this properly handle invalidation tracker?
As in, invalidation tracker creates temp triggers on the write connection. If it gets dropped, it needs to re-setup triggers on the newly created write connection. Or maybe this is fine because there is only 1 write connection.
da...@google.com <da...@google.com> #16
Yes - If due to an issue the single write connection is lost and a new one is opened, then it is reconfigured, including creating the temp tables for the invalidation tracker and recreating triggers.
pr...@google.com <pr...@google.com> #17
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.room:room-runtime:2.7.0-alpha06
androidx.room:room-runtime-android:2.7.0-alpha06
androidx.room:room-runtime-iosarm64:2.7.0-alpha06
androidx.room:room-runtime-iossimulatorarm64:2.7.0-alpha06
androidx.room:room-runtime-iosx64:2.7.0-alpha06
androidx.room:room-runtime-jvm:2.7.0-alpha06
androidx.room:room-runtime-linuxx64:2.7.0-alpha06
androidx.room:room-runtime-macosarm64:2.7.0-alpha06
androidx.room:room-runtime-macosx64:2.7.0-alpha06
ro...@gmail.com <ro...@gmail.com> #18
Using:
Room 2.7.0-alpha06
SQLite 2.5.0-alpha06
1st -> Honor 9 Lite with Android 9
2nd -> Galaxy A13 with Android 14
Same stack trace for both
android.database.SQLException: Error code: 5, message: Timed out attempting to acquire a connection
androidx.sqlite.SQLite.throwSQLiteException(SQLite.java:49)
androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:139)
androidx.room.coroutines.ConnectionPoolImpl$useConnection$1.invokeSuspend(ConnectionPoolImpl.kt:13)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:28)
kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:100)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.java:113)
kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:96)
kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.java:589)
kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:816)
kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:720)
kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:707)
cs...@supercharge.io <cs...@supercharge.io> #19
This is still happening for me on Android. Room: Room 2.7.0-alpha07 Sqlite driver: 2.5.0-alpha07
The issue only present with the bundled Sqlite driver, the framework driver works.
android.database.SQLException: Error code: 5, message: Timed out attempting to acquire a connection
at androidx.sqlite.SQLite.throwSQLiteException(SQLite.kt:49)
at androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:139)
at androidx.room.coroutines.ConnectionPoolImpl$useConnection$1.invokeSuspend(Unknown Source:16)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:28)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
da...@google.com <da...@google.com> #20
I have created
ap...@google.com <ap...@google.com> #21
Branch: androidx-main
commit 6582a859c25cab0b1392a7443c3a44ad2c48b761
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Wed Sep 25 11:03:42 2024
Add debug information to connection pool timeout exception
When a timeout occurs acquiring a connection include in the exception message the state of the connections, if acquired the coroutine context and a stacktrace of when it was acquired.
Example message:
```
Error code: 5, message: Timed out attempting to acquire a reader connection.
Writer pool:
androidx.room.coroutines.Pool@681a8b4e (capacity=1)
[1] - null
Reader pool:
androidx.room.coroutines.Pool@5cbe877d (capacity=2)
[1] - androidx.sqlite.driver.bundled.BundledSQLiteConnection@5c08c46a
Status: Acquired connection
Coroutine: [RunningInRunTest, kotlinx.coroutines.test.TestCoroutineScheduler@4218500f, kotlinx.coroutines.test.TestScopeKt$TestScope$$inlined$CoroutineExceptionHandler$1@4bff64c2, DispatchedCoroutine{Active}@1b2c4efb, java.util.concurrent.ScheduledThreadPoolExecutor@289710d9[Running, pool size = 2, active threads = 0, queued tasks = 1, completed tasks = 2]]
Acquired:
at androidx.room.coroutines.ConnectionWithLock.markAcquired(ConnectionPoolImpl.kt:276)
at androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:133)
at androidx.room.coroutines.BaseConnectionPoolTestKt.useReaderConnection(BaseConnectionPoolTest.kt:1211)
at androidx.room.coroutines.BaseConnectionPoolTest$timeoutCoroutineWaitingForConnection$1$1.invokeSuspend(BaseConnectionPoolTest.kt:606)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
[2] - androidx.sqlite.driver.bundled.BundledSQLiteConnection@8a089df3
Status: Free connection
```
Bug: 347737870
Bug: 367991769
Test: Existing
Change-Id: I3895e8c45bc7ddc80e6475208f4ae22c35056b1c
M room/room-runtime/src/commonMain/kotlin/androidx/room/coroutines/ConnectionPoolImpl.kt
M room/room-runtime/src/commonTest/kotlin/androidx/room/coroutines/BaseConnectionPoolTest.kt
na...@google.com <na...@google.com> #22
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.room:room-runtime:2.7.0-alpha10
androidx.room:room-runtime-android:2.7.0-alpha10
androidx.room:room-runtime-macosx64:2.7.0-alpha10
hz...@gmail.com <hz...@gmail.com> #23
SQLiteException
Error code: 5, message: Timed out attempting to acquire a writer connection.
Writer pool:
androidx.room.coroutines.Pool@133f3dae (capacity=1)
[1] - androidx.sqlite.driver.bundled.BundledSQLiteConnection@1df8d1b9
Status: Free connection
Reader pool:
androidx.room.coroutines.Pool@5ec55053 (capacity=4)
[1] - null
[2] - null
[3] - null
[4] - null
da...@google.com <da...@google.com> #24
Can you please share your full stacktrace?
hz...@gmail.com <hz...@gmail.com> #25
Error code: 5, message: Timed out attempting to acquire a writer connection.
Writer pool:
androidx.room.coroutines.Pool@2c856c3b (capacity=1)
[1] - androidx.sqlite.driver.bundled.BundledSQLiteConnection@3bb0e3f2
Status: Acquired connection
Coroutine: [kotlinx.coroutines.UndispatchedMarker@2ab8cec6, UndispatchedCoroutine{Active}@2bb4c4f4, Dispatchers.IO]
Acquired:
at androidx.room.coroutines.ConnectionWithLock.markAcquired(ConnectionPoolImpl.kt:276)
at androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:133)
at androidx.room.coroutines.ConnectionPoolImpl$useConnection$1.invokeSuspend(ConnectionPoolImpl.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:28)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:100)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:113)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:589)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:823)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:720)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:707)
Reader pool:
androidx.room.coroutines.Pool@5f11464b (capacity=4)
[1] - androidx.sqlite.driver.bundled.BundledSQLiteConnection@542809ed
Status: Free connection
[2] - null
[3] - null
[4] - null
da...@google.com <da...@google.com> #26
re kotlinx-coroutines-debug
.
Have you been able to reproduce the issue? Can you talk more about your use-case, are you doing many write operations concurrently? Any long computations within a connection scope? Or is most of your usages through DAO functions?
pt...@taifun-software.de <pt...@taifun-software.de> #27
I also had this error message in 2.7.0-alpha11.
It turned out that I had accidentally introduced a runBlocking within a transaction when migrating code. Removing the block solved the problem.
android.database.SQLException: Error code: 5, message: Timed out attempting to acquire a writer connection.
Writer pool:
androidx.room.coroutines.Pool@ba431e8 (capacity=1)
[1] - androidx.sqlite.driver.bundled.BundledSQLiteConnection@d8e2001
Status: Acquired connection
Coroutine: [kotlinx.coroutines.UndispatchedMarker@50a1ea6, UndispatchedCoroutine{Active}@509d0e7, Dispatchers.IO]
Acquired:
at androidx.room.coroutines.ConnectionWithLock.markAcquired(ConnectionPoolImpl.kt:276)
at androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:133)
at androidx.room.RoomConnectionManager.useConnection(RoomConnectionManager.android.kt:126)
at androidx.room.RoomDatabase.useConnection$room_runtime_release(RoomDatabase.android.kt:583)
at androidx.room.util.DBUtil__DBUtil_androidKt$performInTransactionSuspending$3.invokeSuspend(DBUtil.android.kt:238)
at androidx.room.util.DBUtil__DBUtil_androidKt$performInTransactionSuspending$3.invoke(Unknown Source:8)
at androidx.room.util.DBUtil__DBUtil_androidKt$performInTransactionSuspending$3.invoke(Unknown Source:4)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:42)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:164)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
at androidx.room.util.DBUtil__DBUtil_androidKt.performInTransactionSuspending(DBUtil.android.kt:90)
at androidx.room.util.DBUtil.performInTransactionSuspending(Unknown Source:1)
at com.company.core.data.database.RoomDatabase_SQLiteDao_Impl.transaction(RoomDatabase_SQLiteDao_Impl.kt:25)
at com.company.core.data.sync.database.room.SyncRoomDatabase.withTransaction(SyncRoomDatabase.kt:31)
at com.company.core.data.sync.database.room.SyncRoomDatabase.addToSyncQueueAndUpdateSequence(SyncRoomDatabase.kt:111)
at com.company.core.data.sync.replicator.ChangesPullReplicator$start$1.invokeSuspend(ChangesPullReplicator.kt:66)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.UndispatchedCoroutine.afterResume(CoroutineContext.kt:266)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:100)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:113)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:589)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:823)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:720)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:707)
Reader pool:
androidx.room.coroutines.Pool@cbbbb3d (capacity=4)
[1] - androidx.sqlite.driver.bundled.BundledSQLiteConnection@d297f32
Status: Free connection
[2] - androidx.sqlite.driver.bundled.BundledSQLiteConnection@2189483
Status: Free connection
[3] - null
[4] - null
at androidx.sqlite.SQLite.throwSQLiteException(SQLite.kt:81)
at androidx.room.coroutines.ConnectionPoolImpl.throwTimeoutException(ConnectionPoolImpl.kt:186)
at androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:138)
at androidx.room.coroutines.ConnectionPoolImpl$useConnection$1.invokeSuspend(Unknown Source:16)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:28)
E at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:100) (Ask Gemini)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:99)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:113)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:589)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:823)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:720)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:707)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@7992ddd, Dispatchers.IO]
Description
At random occasions the app crashes with this exception. The code is practically copied and pasted from another project that is only Android and has never had this issue. It happens throughout all the app when a Room query is collected from a Flow. I think that happens more frequently when multiple queries are requested at the same time or the data collected is big.
For example, this is how I gather all the flows (some of them use Room queries) into a single flow to be .collectAsState() in a Screen. It usually crashes when I simply get into the Screen, I know it's going to crash within 5 or 10 seconds because it should be showing info that is not present. If I navigate back and forth maybe the next time it loads everything and works perfectly.
val state = combine(
buscando, textfieldText, hayTeleindicadores, listaGraficos, idGrafico,
diaSemana, ordenBusqueda, dialogCompi, turnosBuscados, trenesBuscados,
teleindicadoresBuscados, coloresTrenes, imagenEgaInitialScroll, imagenEgaTurno
) {array ->
BuscadorState(
array[0] as Buscando,
array[1] as String,
array[2] as Boolean,
array[3] as List<GrGraficos>,
array[4] as Long,
array[5] as String,
array[6] as OrdenBusqueda,
array[7] as LsUsers,
array[8] as List<TurnoBuscadorDM>?,
array[9] as List<TurnoBuscadorDM>?,
array[10] as List<OtTeleindicadores>,
array[11] as List<OtColoresTrenes>?,
array[12] as Int,
array[13] as TurnoBuscadorDM?,
)
}
The project uses Koin to inject the database and has its libraries updated.
Versions used:
androidx-room = "2.7.0-alpha04"
ksp = "2.0.0-1.0.22"
sqlite = "2.5.0-alpha04"
kotlin = "2.0.0"
koin = "3.6.0-Beta4"
koinComposeMultiplatform = "1.2.0-Beta4"
The exception on Android:
FATAL EXCEPTION: main
Process: es.kirito.kirito, PID: 7775
android.database.SQLException: Error code: 5, message: Timed out attempting to acquire a connection
at androidx.sqlite.SQLiteKt.throwSQLiteException(SQLite.kt:42)
at androidx.room.coroutines.ConnectionPoolImpl.useConnection(ConnectionPoolImpl.kt:138)
at androidx.room.coroutines.ConnectionPoolImpl$useConnection$1.invokeSuspend(Unknown Source:16)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:28)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:99)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:102)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:811)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:715)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:702)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@4fef71c, Dispatchers.Main.immediate]
And this is the same error on iOS, that shows a longer stacktrace:
Uncaught Kotlin exception: androidx.sqlite.SQLiteException: Error code: 5, message: Timed out attempting to acquire a connection
at 0 Kirito 0x10228eab9 kfun:kotlin.Throwable#<init>(kotlin.String?){} + 105
at 1 Kirito 0x102288fe5 kfun:kotlin.Exception#<init>(kotlin.String?){} + 101
at 2 Kirito 0x1022891a5 kfun:kotlin.RuntimeException#<init>(kotlin.String?){} + 101
at 3 Kirito 0x103e022e9 kfun:androidx.sqlite.SQLiteException#<init>(kotlin.String){} + 89
at 4 Kirito 0x103e01dc8 kfun:androidx.sqlite#throwSQLiteException(kotlin.Int;kotlin.String?){}kotlin.Nothing + 792
at 5 Kirito 0x103e202d5 kfun:androidx.room.coroutines.ConnectionPoolImpl.$useConnectionCOROUTINE$0.invokeSuspend#internal + 6165
at 6 Kirito 0x1023d8143 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any?-trampoline + 51
at 7 Kirito 0x1022947bd kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 829
at 8 Kirito 0x1023d81e9 kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 73
at 9 Kirito 0x10251c596 kfun:kotlinx.coroutines.internal.ScopeCoroutine#afterResume(kotlin.Any?){} + 294
at 10 Kirito 0x102544eab kfun:kotlinx.coroutines.AbstractCoroutine#afterResume(kotlin.Any?){}-trampoline + 43
at 11 Kirito 0x102477c07 kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result<1:0>){} + 391
at 12 Kirito 0x1023d81e9 kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 73
at 13 Kirito 0x102294a4e kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1486
at 14 Kirito 0x1023d81e9 kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 73
at 15 Kirito 0x1025147f2 kfun:kotlinx.coroutines.DispatchedTask#run(){} + 2514
at 16 Kirito 0x1025477b0 kfun:kotlinx.coroutines.Runnable#run(){}-trampoline + 64
at 17 Kirito 0x102517a97 kfun:kotlinx.coroutines.internal.LimitedDispatcher.Worker.run#internal + 343
at 18 Kirito 0x1025477b0 kfun:kotlinx.coroutines.Runnable#run(){}-trampoline + 64
at 19 Kirito 0x10253f445 kfun:kotlinx.coroutines.MultiWorkerDispatcher.$workerRunLoop$lambda$2COROUTINE$0.invokeSuspend#internal + 2597
at 20 Kirito 0x1023d8143 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any?-trampoline + 51
at 21 Kirito 0x1022947bd kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 829
at 22 Kirito 0x1023d81e9 kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 73
at 23 Kirito 0x1025148e7 kfun:kotlinx.coroutines.DispatchedTask#run(){} + 2759
at 24 Kirito 0x1025477b0 kfun:kotlinx.coroutines.Runnable#run(){}-trampoline + 64
at 25 Kirito 0x10248f2be kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long + 1534
at 26 Kirito 0x1025475b3 kfun:kotlinx.coroutines.EventLoop#processNextEvent(){}kotlin.Long-trampoline + 35
at 27 Kirito 0x102537e36 kfun:kotlinx.coroutines.BlockingCoroutine.joinBlocking#internal + 566
at 28 Kirito 0x102536bd4 kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 + 1780
at 29 Kirito 0x102536e22 kfun:kotlinx.coroutines#runBlocking$default(kotlin.coroutines.CoroutineContext?;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>;kotlin.Int){0§<kotlin.Any?>}0:0 + 290
at 30 Kirito 0x10253cef5 kfun:kotlinx.coroutines.MultiWorkerDispatcher.workerRunLoop#internal + 197
at 31 Kirito 0x10253e5ab kfun:kotlinx.coroutines.MultiWorkerDispatcher.<init>$lambda$1$lambda$0#internal + 59
at 32 Kirito 0x10253fbcf kfun:kotlinx.coroutines.MultiWorkerDispatcher.$<init>$lambda$1$lambda$0$FUNCTION_REFERENCE$5.invoke#internal + 63
at 33 Kirito 0x10253fc8f kfun:kotlinx.coroutines.MultiWorkerDispatcher.$<init>$lambda$1$lambda$0$FUNCTION_REFERENCE$5.$<bridge-UNN>invoke(){}#internal + 63
at 34 Kirito 0x1023d5628 kfun:kotlin.Function0#invoke(){}1:0-trampoline + 72
at 35 Kirito 0x1022a1bb1 WorkerLaunchpad + 129
at 36 Kirito 0x102435a81 _ZN6Worker19processQueueElementEb + 2817
at 37 Kirito 0x102434ec2 ZN12_GLOBAL_N_113workerRoutineEPv + 130
at 38 libsystem_pthread.dylib 0x10788a18a _pthread_start + 98
at 39 libsystem_pthread.dylib 0x107885ae2 thread_start + 14
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@88cc89e8, Dispatchers.Main.immediate]
at 0 Kirito 0x10228eab9 kfun:kotlin.Throwable#<init>(kotlin.String?){} + 105
at 1 Kirito 0x102288fe5 kfun:kotlin.Exception#<init>(kotlin.String?){} + 101
at 2 Kirito 0x1022891a5 kfun:kotlin.RuntimeException#<init>(kotlin.String?){} + 101
at 3 Kirito 0x1025411b4 kfun:kotlinx.coroutines.internal.DiagnosticCoroutineContextException#<init>(kotlin.coroutines.CoroutineContext){} + 180
at 4 Kirito 0x10251007e kfun:kotlinx.coroutines.internal#handleUncaughtCoroutineException(kotlin.coroutines.CoroutineContext;kotlin.Throwable){} + 942
at 5 Kirito 0x102489e93 kfun:kotlinx.coroutines#handleCoroutineException(kotlin.coroutines.CoroutineContext;kotlin.Throwable){} + 723
at 6 Kirito 0x10247c134 kfun:kotlinx.coroutines.StandaloneCoroutine.handleJobException#internal + 180
at 7 Kirito 0x102548abb kfun:kotlinx.coroutines.JobSupport#handleJobException(kotlin.Throwable){}kotlin.Boolean-trampoline + 43
at 8 Kirito 0x1024955e6 kfun:kotlinx.coroutines.JobSupport.finalizeFinishingState#internal + 1382
at 9 Kirito 0x10249f597 kfun:kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath#internal + 2487
at 10 Kirito 0x10249eb99 kfun:kotlinx.coroutines.JobSupport.tryMakeCompleting#internal + 697
at 11 Kirito 0x10249e6bd kfun:kotlinx.coroutines.JobSupport#makeCompletingOnce(kotlin.Any?){}kotlin.Any? + 509
at 12 Kirito 0x102477ba7 kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result<1:0>){} + 295
at 13 Kirito 0x1023d81e9 kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 73
at 14 Kirito 0x102294a4e kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1486
at 15 Kirito 0x1023d81e9 kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 73
at 16 Kirito 0x10251c596 kfun:kotlinx.coroutines.internal.ScopeCoroutine#afterResume(kotlin.Any?){} + 294
at 17 Kirito 0x102544eab kfun:kotlinx.coroutines.AbstractCoroutine#afterResume(kotlin.Any?){}-trampoline + 43
at 18 Kirito 0x102477c07 kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result<1:0>){} + 391
at 19 Kirito 0x1023d81e9 kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 73
at 20 Kirito 0x102294a4e kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1486
at 21 Kirito 0x1023d81e9 kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 73
at 22 Kirito 0x1025147f2 kfun:kotlinx.coroutines.DispatchedTask#run(){} + 2514
at 23 Kirito 0x10248d0f6 kfun:kotlinx.coroutines.EventLoop#processUnconfinedEvent(){}kotlin.Boolean + 438
at 24 Kirito 0x102513407 kfun:kotlinx.coroutines.internal#resumeCancellableWith_at_kotlin.coroutines.Continuation<0:0>(kotlin.Result<0:0>;kotlin.Function1<kotlin.Throwable,kotlin.Unit>?){0§<kotlin.Any?>} + 2871
at 25 Kirito 0x1025135b6 kfun:kotlinx.coroutines.internal#resumeCancellableWith$default_at_kotlin.coroutines.Continuation<0:0>(kotlin.Result<0:0>;kotlin.Function1<kotlin.Throwable,kotlin.Unit>?;kotlin.Int){0§<kotlin.Any?>} + 310
at 26 Kirito 0x10251c442 kfun:kotlinx.coroutines.internal.ScopeCoroutine#afterCompletion(kotlin.Any?){} + 370
at 27 Kirito 0x10254906b kfun:kotlinx.coroutines.JobSupport#afterCompletion(kotlin.Any?){}-trampoline + 43
at 28 Kirito 0x1024a01e4 kfun:kotlinx.coroutines.JobSupport.continueCompleting#internal + 564
at 29 Kirito 0x1024a2ef7 kfun:kotlinx.coroutines.JobSupport.ChildCompletion.invoke#internal + 343
at 30 Kirito 0x102548beb kfun:kotlinx.coroutines.JobNode#invoke(kotlin.Throwable?){}-trampoline + 43
at 31 Kirito 0x102497aa0 kfun:kotlinx.coroutines.JobSupport.notifyCompletion#internal + 1136
at 32 Kirito 0x102496b42 kfun:kotlinx.coroutines.JobSupport.completeStateFinalization#internal + 1506
at 33 Kirito 0x102495739 kfun:kotlinx.coroutines.JobSupport.finalizeFinishingState#internal + 1721
at 34 Kirito 0x10249f597 kfun:kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath#internal + 2487
at 35 Kirito 0x10249eb99 kfun:kotlinx.coroutines.JobSupport.tryMakeCompleting#internal + 697
at 36 Kirito 0x10249e6bd kfun:kotlinx.coroutines.JobSupport#makeCompletingOnce(kotlin.Any?){}kotlin.Any? + 509
at 37 Kirito 0x102477ba7 kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result<1:0>){} + 295
at 38 Kirito 0x1023d81e9 kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 73
at 39 Kirito 0x102294a4e kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1486
at 40 Kirito 0x1023d81e9 kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 73
at 41 Kirito 0x10251c596 kfun:kotlinx.coroutines.internal.ScopeCoroutine#afterResume(kotlin.Any?){} + 294
at 42 Kirito 0x102544eab kfun:kotlinx.coroutines.AbstractCoroutine#afterResume(kotlin.Any?){}-trampoline + 43
at 43 Kirito 0x102477c07 kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result<1:0>){} + 391
at 44 Kirito 0x1023d81e9 kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 73
at 45 Kirito 0x102294a4e kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1486
at 46 Kirito 0x1023d81e9 kfun:kotlin.coroutines.Continuation#resumeWith(kotlin.Result<1:0>){}-trampoline + 73
at 47 Kirito 0x1025147f2 kfun:kotlinx.coroutines.DispatchedTask#run(){} + 2514
at 48 Kirito 0x1025477b0 kfun:kotlinx.coroutines.Runnable#run(){}-trampoline + 64
at 49 Kirito 0x10254380b kfun:kotlinx.coroutines.DarwinMainDispatcher.dispatch$lambda$0#internal + 59
at 50 Kirito 0x102543aff kfun:kotlinx.coroutines.DarwinMainDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1.invoke#internal + 63
at 51 Kirito 0x102543bbf kfun:kotlinx.coroutines.DarwinMainDispatcher.$dispatch$lambda$0$FUNCTION_REFERENCE$1.$<bridge-UNN>invoke(){}#internal + 63
at 52 Kirito 0x1023d5628 kfun:kotlin.Function0#invoke(){}1:0-trampoline + 72
at 53 Kirito 0x102544c48 _6f72672e6a6574627261696e732e6b6f746c696e783a6b6f746c696e782d636f726f7574696e65732d636f72652f6f70742f6275696c644167656e742f776f726b2f343465633665383530643563363366302f6b6f746c696e782d636f726f7574696e65732d636f72652f6e617469766544617277696e2f7372632f44697370617463686572732e6b74_knbridge13 + 184
at 54 libdispatch.dylib 0x7ff8001783eb _dispatch_call_block_and_release + 11
at 55 libdispatch.dylib 0x7ff8001796d7 _dispatch_client_callout + 7
at 56 libdispatch.dylib 0x7ff80018848b _dispatch_main_queue_drain + 1419
at 57 libdispatch.dylib 0x7ff800187ef1 _dispatch_main_queue_callback_4CF + 30
at 58 CoreFoundation 0x7ff800429af3 _CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE_ + 8
at 59 CoreFoundation 0x7ff80042442e __CFRunLoopRun + 2462
at 60 CoreFoundation 0x7ff8004236ac CFRunLoopRunSpecific + 556
at 61 GraphicsServices 0x7ff8103da08e GSEventRunModal + 136
at 62 UIKitCore 0x7ff805cc0ad0 -[UIApplication _run] + 971
at 63 UIKitCore 0x7ff805cc5550 UIApplicationMain + 122
at 64 SwiftUI 0x7ffa159e5f0e objectdestroy.44Tm + 2709
at 65 SwiftUI 0x7ffa159e5dcb objectdestroy.44Tm + 2386
at 66 SwiftUI 0x7ffa15611f34 get_witness_table 7SwiftUI4ViewRzlAA15ModifiedContentVyxAA30_EnvironmentKeyWritingModifierVySbGGAaBHPxAaBHD1__AgA0cI0HPyHCHCTm + 218
at 67 Kirito 0x10179491d $s6Kirito6iOSAppV5$mainyyFZ + 29
at 68 Kirito 0x1017949a8 main + 8 (/Users/yak112/StudioProjects/KiritoMultiplatform/iosApp/iosApp/iOSApp.swift:<unknown>)
at 69 dyld 0x10732d3df 0x0 + 4415738847
at 70 ??? 0x113e58365 0x0 + 4628775781