icerockdev / moko-paging

Pagination logic in common code for mobile (android & ios) Kotlin Multiplatform development
https://moko.icerock.dev/
Apache License 2.0
59 stars 7 forks source link

kotlin.native.concurrent.InvalidMutabilityException on completion of loadNextPage #21

Closed Alex009 closed 3 years ago

Alex009 commented 3 years ago
Uncaught Kotlin exception: kotlinx.coroutines.CoroutinesInternalError: Fatal exception in coroutines machinery for AwaitContinuation(Shareable[used]){HttpResponseData=(statusCode=200 OK)}@1ac7d48. Please read KDoc to 'handleFatalException' method and report this incident to maintainers
    at 0   MultiPlatformLibrary                0x00000001054ee98c kfun:kotlin.Error#<init>(kotlin.String?;kotlin.Throwable?){} + 124 (/Users/teamcity/buildAgent/work/cae0e6559deed4c4/runtime/src/main/kotlin/kotlin/Exceptions.kt:14:63)
    at 1   MultiPlatformLibrary                0x000000010566d46c kfun:kotlinx.coroutines.CoroutinesInternalError#<init>(kotlin.String;kotlin.Throwable){} + 124 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/Exceptions.common.kt:28:77)
    at 2   MultiPlatformLibrary                0x00000001056db599 kfun:kotlinx.coroutines.DispatchedTask#handleFatalException(kotlin.Throwable?;kotlin.Throwable?){} + 953 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/internal/DispatchedTask.kt:93:22)
    at 3   MultiPlatformLibrary                0x00000001056db177 kfun:kotlinx.coroutines.DispatchedTask#run(){} + 3543 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/internal/DispatchedTask.kt:64:13)
    at 4   MultiPlatformLibrary                0x00000001059fa508 kfun:dev.icerock.moko.mvvm.viewmodel.UIDispatcher.dispatch$lambda-0#internal + 88 (/Users/runner/work/moko-mvvm/moko-mvvm/mvvm/src/iosMain/kotlin/dev/icerock/moko/mvvm/viewmodel/UIDispatcher.kt:17:19)
    at 5   MultiPlatformLibrary                0x00000001059faa6e kfun:dev.icerock.moko.mvvm.viewmodel.UIDispatcher.$dispatch$lambda-0$FUNCTION_REFERENCE$61.invoke#internal + 62 (/Users/runner/work/moko-mvvm/moko-mvvm/mvvm/src/iosMain/kotlin/dev/icerock/moko/mvvm/viewmodel/UIDispatcher.kt:16:32)
    at 6   MultiPlatformLibrary                0x00000001059faace kfun:dev.icerock.moko.mvvm.viewmodel.UIDispatcher.$dispatch$lambda-0$FUNCTION_REFERENCE$61.$<bridge-UNN>invoke(){}#internal + 62 (/Users/runner/work/moko-mvvm/moko-mvvm/mvvm/src/iosMain/kotlin/dev/icerock/moko/mvvm/viewmodel/UIDispatcher.kt:16:32)
    at 7   MultiPlatformLibrary                0x00000001059faee7 _6465762e696365726f636b2e6d6f6b6f3a6d76766d_knbridge68 + 183 (/Users/runner/work/moko-mvvm/moko-mvvm/mvvm/src/iosMain/kotlin/dev/icerock/moko/mvvm/viewmodel/UIDispatcher.kt:16:32)
    at 8   libdispatch.dylib                   0x0000000107c037ec _dispatch_call_block_and_release + 12
    at 9   libdispatch.dylib                   0x0000000107c049c8 _dispatch_client_callout + 8
    at 10  libdispatch.dylib                   0x0000000107c12e75 _dispatch_main_queue_callback_4CF + 1152
    at 11  CoreFoundation                      0x00007fff2038bdab __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
    at 12  CoreFoundation                      0x00007fff2038662e __CFRunLoopRun + 2685
    at 13  CoreFoundation                      0x00007fff203856c6 CFRunLoopRunSpecific + 567
    at 14  GraphicsServices                    0x00007fff2b76adb3 GSEventRunModal + 139
    at 15  UIKitCore                           0x00007fff24675187 -[UIApplication _run] + 912
    at 16  UIKitCore                           0x00007fff2467a038 UIApplicationMain + 101
    at 17  Krohne                              0x00000001048a637b main + 75 (/Users/agusev/Desktop/projects/krohne-android/ios-app/src/AppDelegate.swift:10:7)
    at 18  libdyld.dylib                       0x00007fff20256409 start + 1
    at 19  ???                                 0x0000000000000001 0x0 + 1
Caused by: kotlin.native.concurrent.InvalidMutabilityException: mutation attempt of frozen kotlinx.coroutines.sync.MutexImpl.LockedQueue@36244e8
    at 0   MultiPlatformLibrary                0x00000001054f5ded kfun:kotlin.Throwable#<init>(kotlin.String?){} + 93 (/Users/teamcity/buildAgent/work/cae0e6559deed4c4/runtime/src/main/kotlin/kotlin/Throwable.kt:23:37)
    at 1   MultiPlatformLibrary                0x00000001054eea9b kfun:kotlin.Exception#<init>(kotlin.String?){} + 91 (/Users/teamcity/buildAgent/work/cae0e6559deed4c4/runtime/src/main/kotlin/kotlin/Exceptions.kt:23:44)
    at 2   MultiPlatformLibrary                0x00000001054eeceb kfun:kotlin.RuntimeException#<init>(kotlin.String?){} + 91 (/Users/teamcity/buildAgent/work/cae0e6559deed4c4/runtime/src/main/kotlin/kotlin/Exceptions.kt:34:44)
    at 3   MultiPlatformLibrary                0x000000010552777b kfun:kotlin.native.concurrent.InvalidMutabilityException#<init>(kotlin.String){} + 91 (/Users/teamcity/buildAgent/work/cae0e6559deed4c4/runtime/src/main/kotlin/kotlin/native/concurrent/Freezing.kt:22:60)
    at 4   MultiPlatformLibrary                0x0000000105529032 ThrowInvalidMutabilityException + 690 (/Users/teamcity/buildAgent/work/cae0e6559deed4c4/runtime/src/main/kotlin/kotlin/native/concurrent/Internal.kt:92:11)
    at 5   MultiPlatformLibrary                0x0000000105625ecc MutationCheck + 108
    at 6   MultiPlatformLibrary                0x00000001056f6e36 kfun:kotlinx.coroutines.sync.MutexImpl.LockedQueue.<set-owner>#internal + 102 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/sync/Mutex.kt:350:19)
    at 7   MultiPlatformLibrary                0x00000001056f60ac kfun:kotlinx.coroutines.sync.MutexImpl#unlock(kotlin.Any?){} + 3740 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/sync/Mutex.kt:327:29)
    at 8   MultiPlatformLibrary                0x00000001056f0697 kfun:kotlinx.coroutines.sync.Mutex#unlock$default(kotlin.Any?;kotlin.Int){} + 295 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/sync/Mutex.kt:89:12)
    at 9   MultiPlatformLibrary                0x0000000105a4c1e1 kfun:dev.icerock.moko.paging.Pagination.$loadNextPageSuspendCOROUTINE$1#invokeSuspend(kotlin.Result<kotlin.Any?>){}kotlin.Any? + 5553 (/Users/runner/work/moko-paging/moko-paging/paging/src/commonMain/kotlin/dev/icerock/moko/paging/Pagination.kt:111:19)
    at 10  MultiPlatformLibrary                0x0000000105517c86 kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 758 (/Users/teamcity/buildAgent/work/cae0e6559deed4c4/runtime/src/main/kotlin/kotlin/coroutines/ContinuationImpl.kt:30:39)
    at 11  MultiPlatformLibrary                0x0000000105828c66 kfun:io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith#internal + 950 (/opt/buildAgent/work/a85294440dc5c6e/ktor-utils/common/src/io/ktor/util/pipeline/PipelineContext.kt:243:18)
    at 12  MultiPlatformLibrary                0x00000001058287e5 kfun:io.ktor.util.pipeline.SuspendFunctionGun.loop#internal + 1717 (/opt/buildAgent/work/a85294440dc5c6e/ktor-utils/common/src/io/ktor/util/pipeline/PipelineContext.kt:199:21)
    at 13  MultiPlatformLibrary                0x000000010582a9b9 kfun:io.ktor.util.pipeline.SuspendFunctionGun.object-1.resumeWith#internal + 377 (/opt/buildAgent/work/a85294440dc5c6e/ktor-utils/common/src/io/ktor/util/pipeline/PipelineContext.kt:149:13)
    at 14  MultiPlatformLibrary                0x0000000105517f3a kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1450 (/Users/teamcity/buildAgent/work/cae0e6559deed4c4/runtime/src/main/kotlin/kotlin/coroutines/ContinuationImpl.kt:43:32)
    at 15  MultiPlatformLibrary                0x0000000105828c66 kfun:io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith#internal + 950 (/opt/buildAgent/work/a85294440dc5c6e/ktor-utils/common/src/io/ktor/util/pipeline/PipelineContext.kt:243:18)
    at 16  MultiPlatformLibrary                0x00000001058287e5 kfun:io.ktor.util.pipeline.SuspendFunctionGun.loop#internal + 1717 (/opt/buildAgent/work/a85294440dc5c6e/ktor-utils/common/src/io/ktor/util/pipeline/PipelineContext.kt:199:21)
    at 17  MultiPlatformLibrary                0x000000010582a9b9 kfun:io.ktor.util.pipeline.SuspendFunctionGun.object-1.resumeWith#internal + 377 (/opt/buildAgent/work/a85294440dc5c6e/ktor-utils/common/src/io/ktor/util/pipeline/PipelineContext.kt:149:13)
    at 18  MultiPlatformLibrary                0x0000000105517f3a kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1450 (/Users/teamcity/buildAgent/work/cae0e6559deed4c4/runtime/src/main/kotlin/kotlin/coroutines/ContinuationImpl.kt:43:32)
    at 19  MultiPlatformLibrary                0x0000000105828c66 kfun:io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith#internal + 950 (/opt/buildAgent/work/a85294440dc5c6e/ktor-utils/common/src/io/ktor/util/pipeline/PipelineContext.kt:243:18)
    at 20  MultiPlatformLibrary                0x00000001058287e5 kfun:io.ktor.util.pipeline.SuspendFunctionGun.loop#internal + 1717 (/opt/buildAgent/work/a85294440dc5c6e/ktor-utils/common/src/io/ktor/util/pipeline/PipelineContext.kt:199:21)
    at 21  MultiPlatformLibrary                0x000000010582a9b9 kfun:io.ktor.util.pipeline.SuspendFunctionGun.object-1.resumeWith#internal + 377 (/opt/buildAgent/work/a85294440dc5c6e/ktor-utils/common/src/io/ktor/util/pipeline/PipelineContext.kt:149:13)
    at 22  MultiPlatformLibrary                0x0000000105517f3a kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1450 (/Users/teamcity/buildAgent/work/cae0e6559deed4c4/runtime/src/main/kotlin/kotlin/coroutines/ContinuationImpl.kt:43:32)
    at 23  MultiPlatformLibrary                0x0000000105828c66 kfun:io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith#internal + 950 (/opt/buildAgent/work/a85294440dc5c6e/ktor-utils/common/src/io/ktor/util/pipeline/PipelineContext.kt:243:18)
    at 24  MultiPlatformLibrary                0x00000001058287e5 kfun:io.ktor.util.pipeline.SuspendFunctionGun.loop#internal + 1717 (/opt/buildAgent/work/a85294440dc5c6e/ktor-utils/common/src/io/ktor/util/pipeline/PipelineContext.kt:199:21)
    at 25  MultiPlatformLibrary                0x000000010582a9b9 kfun:io.ktor.util.pipeline.SuspendFunctionGun.object-1.resumeWith#internal + 377 (/opt/buildAgent/work/a85294440dc5c6e/ktor-utils/common/src/io/ktor/util/pipeline/PipelineContext.kt:149:13)
    at 26  MultiPlatformLibrary                0x0000000105517f3a kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 1450 (/Users/teamcity/buildAgent/work/cae0e6559deed4c4/runtime/src/main/kotlin/kotlin/coroutines/ContinuationImpl.kt:43:32)
    at 27  MultiPlatformLibrary                0x00000001056dae92 kfun:kotlinx.coroutines.DispatchedTask#run(){} + 2802 (/opt/buildAgent/work/44ec6e850d5c63f0/kotlinx-coroutines-core/common/src/internal/DispatchedTask.kt:39:50)
    at 28  MultiPlatformLibrary                0x00000001059fa508 kfun:dev.icerock.moko.mvvm.viewmodel.UIDispatcher.dispatch$lambda-0#internal + 88 (/Users/runner/work/moko-mvvm/moko-mvvm/mvvm/src/iosMain/kotlin/dev/icerock/moko/mvvm/viewmodel/UIDispatcher.kt:17:19)
    at 29  MultiPlatformLibrary                0x00000001059faa6e kfun:dev.icerock.moko.mvvm.viewmodel.UIDispatcher.$dispatch$lambda-0$FUNCTION_REFERENCE$61.invoke#internal + 62 (/Users/runner/work/moko-mvvm/moko-mvvm/mvvm/src/iosMain/kotlin/dev/icerock/moko/mvvm/viewmodel/UIDispatcher.kt:16:32)
Alex009 commented 3 years ago

to fix use version 0.4.1 and coroutines 1.4.2