RemoteAccess: Ktor crash when disabling / enabling network browsing
The following discussion from !1833 (merged) should be addressed:
-
@Skantes started a discussion:
I also keep getting a ktor crash when disabling / re-enabling network browsing in the remote access settings. I would try disabling network indexing while the browser web page is loading to reproduce, if it doesn't happen by just disabling.
2024-02-12 18:06:36.072 13952-14177 VLC/VlcCrashHandler org.videolan.vlc.debug E java.util.concurrent.RejectedExecutionException: event executor terminated at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:934) at io.netty.util.concurrent.SingleThreadEventExecutor.offerTask(SingleThreadEventExecutor.java:351) at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:344) at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:836) at io.netty.util.concurrent.SingleThreadEventExecutor.execute0(SingleThreadEventExecutor.java:827) at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:817) at io.ktor.server.netty.NettyDispatcher.dispatch(CIO.kt:69) at kotlinx.coroutines.internal.DispatchedContinuation.resumeWith(DispatchedContinuation.kt:198) at io.ktor.utils.io.internal.CancellableReusableContinuation.resumeWith(CancellableReusableContinuation.kt:93) at io.ktor.utils.io.ByteBufferChannel.resumeReadOp(ByteBufferChannel.kt:2103) at io.ktor.utils.io.ByteBufferChannel.tryTerminate$ktor_io(ByteBufferChannel.kt:390) at io.ktor.utils.io.ByteBufferChannel.close(ByteBufferChannel.kt:135) at io.ktor.server.netty.http2.HttpFrameAdapterKt.http2frameLoop(HttpFrameAdapter.kt:41) at io.ktor.server.netty.http2.HttpFrameAdapterKt$http2frameLoop$1.invokeSuspend(Unknown Source:13) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:233) at kotlinx.coroutines.DispatchedTaskKt.resumeUnconfined(DispatchedTask.kt:189) at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:161) at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:474) at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl(CancellableContinuationImpl.kt:508) at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$default(CancellableContinuationImpl.kt:497) at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:368) at kotlinx.coroutines.channels.BufferedChannel.resumeWaiterOnClosedChannel(BufferedChannel.kt:2171) at kotlinx.coroutines.channels.BufferedChannel.resumeReceiverOnClosedChannel(BufferedChannel.kt:2160) at kotlinx.coroutines.channels.BufferedChannel.cancelSuspendedReceiveRequests(BufferedChannel.kt:2153) at kotlinx.coroutines.channels.BufferedChannel.completeClose(BufferedChannel.kt:1930) at kotlinx.coroutines.channels.BufferedChannel.completeCancel(BufferedChannel.kt:1942) at kotlinx.coroutines.channels.BufferedChannel.isClosed(BufferedChannel.kt:2219) at kotlinx.coroutines.channels.BufferedChannel.isClosedForSend0(BufferedChannel.kt:2184) at kotlinx.coroutines.channels.BufferedChannel.isClosedForSend(BufferedChannel.kt:2181) at kotlinx.coroutines.channels.BufferedChannel.completeCloseOrCancel(BufferedChannel.kt:1902) at kotlinx.coroutines.channels.BufferedChannel.closeOrCancelImpl(BufferedChannel.kt:1795) at kotlinx.coroutines.channels.BufferedChannel.cancelImpl$kotlinx_coroutines_core(BufferedChannel.kt:1765) at kotlinx.coroutines.channels.BufferedChannel.cancel(BufferedChannel.kt:1762) at kotlinx.coroutines.channels.ActorCoroutine.onCancelling(Actor.kt:137) at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:330) at kotlinx.coroutines.JobSupport.tryMakeCancelling(JobSupport.kt:798) at kotlinx.coroutines.JobSupport.makeCancelling(JobSupport.kt:758) at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:674) at kotlinx.coroutines.JobSupport.parentCancelled(JobSupport.kt:640) at kotlinx.coroutines.ChildHandleNode.invoke(JobSupport.kt:1438) at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1474) at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:903) at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:866) at kotlinx.coroutines.JobSupport.cancelMakeCompleting(JobSupport.kt:699) 2024-02-12 18:06:36.072 13952-14177 VLC/VlcCrashHandler org.videolan.vlc.debug E at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:670) at kotlinx.coroutines.JobSupport.cancelInternal(JobSupport.kt:635) at kotlinx.coroutines.JobSupport.cancel(JobSupport.kt:620) at kotlinx.coroutines.CoroutineScopeKt.cancel(CoroutineScope.kt:287) at kotlinx.coroutines.CoroutineScopeKt.cancel$default(CoroutineScope.kt:285) at io.ktor.server.netty.NettyChannelInitializer.configurePipeline$lambda$5(NettyChannelInitializer.kt:119) at io.ktor.server.netty.NettyChannelInitializer.$r8$lambda$sLcAibrOroXR7SQP3wvziJ0hwjA(Unknown Source:0) at io.ktor.server.netty.NettyChannelInitializer$$ExternalSyntheticLambda0.operationComplete(Unknown Source:2) at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557) at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:625) at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:105) at io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84) at io.netty.channel.AbstractChannel$CloseFuture.setClosed(AbstractChannel.java:1164) at io.netty.channel.AbstractChannel$AbstractUnsafe.doClose0(AbstractChannel.java:755) at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:731) at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:620) at io.netty.channel.nio.NioEventLoop.closeAll(NioEventLoop.java:838) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:595) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.ktor.server.netty.EventLoopGroupProxy$Companion.create$lambda$1$lambda$0(NettyApplicationEngine.kt:296) at io.ktor.server.netty.EventLoopGroupProxy$Companion.$r8$lambda$XgnKz7L6tCWRUaIAa7SVURwtFE4(Unknown Source:0) at io.ktor.server.netty.EventLoopGroupProxy$Companion$$ExternalSyntheticLambda1.run(Unknown Source:2) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.lang.Thread.run(Thread.java:920) at Android.MODEL(SM-G970F) at Android.VERSION(12) at Android.FINGERPRINT(samsung/beyond0lteeea/beyond0:12/SP1A.210812.016/G970FXXSGHWC1:user/release-keys) Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineId(63), "coroutine#63":ActorCoroutine{Cancelling}@fa901ce, Dispatchers.Unconfined]