MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. 857950459
    8
    • 资料
    • 关注 0
    • 粉丝 0
    • 主题 2
    • 帖子 2
    • 最佳 1
    • 有争议的 0
    • 群组 0

    857950459

    @857950459

    1
    声望
    5
    资料浏览
    2
    帖子
    0
    粉丝
    0
    关注
    注册时间 最后登录

    857950459 取消关注 关注

    857950459 发布的最佳帖子

    • 用websocket长时间连接mirai-http2.5.2报错

      最近遇到奇怪的问题,我的机器人程序是分为两个部分:
      第一部分,部署在运行mirai的服务器上,用环回127.0.0.1地址websocket连接。
      第二部分,在另一台服务器上用公网地址websocket连接mirai服务器。

      每天到凌晨的时候,使用公网地址连接的机器人程序就会收不到信息,但是使用环回地址连接的机器人程序仍然是正常运行的,直到我重启mirai才会解决,该问题观察了一个多星期了只会出现在凌晨的时候。

      出现问题的时候,每收到一条信息的时候,mirai日志上就会出现以下报错:

      [31m2022-06-26 07:26:28 E/Mah Debug: java.util.concurrent.CancellationException: ArrayChannel was cancelled
      java.util.concurrent.CancellationException: ArrayChannel was cancelled
      	at kotlinx.coroutines.channels.AbstractChannel.cancel(AbstractChannel.kt:656)
      	at kotlinx.coroutines.channels.ReceiveChannel$DefaultImpls.cancel$default(Channel.kt:279)
      	at io.ktor.http.cio.websocket.DefaultWebSocketSessionImpl$runOutgoingProcessor$1.invokeSuspend(DefaultWebSocketSessionImpl.kt:182)
      	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
      	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
      	at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:69)
      	at kotlinx.coroutines.DispatchedTaskKt.resumeUnconfined(DispatchedTask.kt:245)
      	at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:161)
      	at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:397)
      	at kotlinx.coroutines.CancellableContinuationImpl.cancel(CancellableContinuationImpl.kt:183)
      	at kotlinx.coroutines.CancellableContinuationImpl.parentCancelled$kotlinx_coroutines_core(CancellableContinuationImpl.kt:190)
      	at kotlinx.coroutines.ChildContinuation.invoke(JobSupport.kt:1474)
      	at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1499)
      	at kotlinx.coroutines.JobSupport.tryMakeCancelling(JobSupport.kt:795)
      	at kotlinx.coroutines.JobSupport.makeCancelling(JobSupport.kt:755)
      	at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:671)
      	at kotlinx.coroutines.JobSupport.parentCancelled(JobSupport.kt:637)
      	at kotlinx.coroutines.ChildHandleNode.invoke(JobSupport.kt:1465)
      	at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1499)
      	at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:900)
      	at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:863)
      	at kotlinx.coroutines.JobSupport.cancelMakeCompleting(JobSupport.kt:696)
      	at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:667)
      	at kotlinx.coroutines.JobSupport.parentCancelled(JobSupport.kt:637)
      	at kotlinx.coroutines.ChildHandleNode.invoke(JobSupport.kt:1465)
      	at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1499)
      	at kotlinx.coroutines.JobSupport.makeCancelling(JobSupport.kt:747)
      	at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:671)
      	at kotlinx.coroutines.JobSupport.parentCancelled(JobSupport.kt:637)
      	at kotlinx.coroutines.ChildHandleNode.invoke(JobSupport.kt:1465)
      	at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1499)
      	at kotlinx.coroutines.JobSupport.tryMakeCancelling(JobSupport.kt:795)
      	at kotlinx.coroutines.JobSupport.makeCancelling(JobSupport.kt:755)
      	at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:671)
      	at kotlinx.coroutines.JobSupport.parentCancelled(JobSupport.kt:637)
      	at kotlinx.coroutines.ChildHandleNode.invoke(JobSupport.kt:1465)
      	at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1499)
      	at kotlinx.coroutines.JobSupport.tryMakeCancelling(JobSupport.kt:795)
      	at kotlinx.coroutines.JobSupport.makeCancelling(JobSupport.kt:755)
      	at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:671)
      	at kotlinx.coroutines.JobSupport.parentCancelled(JobSupport.kt:637)
      	at kotlinx.coroutines.ChildHandleNode.invoke(JobSupport.kt:1465)
      	at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1499)
      	at kotlinx.coroutines.JobSupport.tryMakeCancelling(JobSupport.kt:795)
      	at kotlinx.coroutines.JobSupport.makeCancelling(JobSupport.kt:755)
      	at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:671)
      	at kotlinx.coroutines.JobSupport.cancelInternal(JobSupport.kt:632)
      	at kotlinx.coroutines.JobSupport.cancel(JobSupport.kt:617)
      	at kotlinx.coroutines.JobKt__JobKt.cancel(Job.kt:549)
      	at kotlinx.coroutines.JobKt.cancel(Unknown Source)
      	at kotlinx.coroutines.JobKt__JobKt.cancel$default(Job.kt:548)
      	at kotlinx.coroutines.JobKt.cancel$default(Unknown Source)
      	at io.ktor.server.cio.backend.ServerPipelineKt$startServerConnectionPipeline$1.invokeSuspend(ServerPipeline.kt:179)
      	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
      	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
      

      机器人程序都是使用Ariadne SDK写的
      mirai 2.11.0
      mirai-http2.5.2
      Ariadne 0.7.14

      希望大佬们可以帮忙看看,谢谢!
      现在每天早上起来第一件事就是重启mirai o(╥﹏╥)o
      打算写一个定时重启脚本临时用着

      发布在 HTTP API和第三方SDK
      8
      857950459

    857950459 发布的最新帖子

    • docker 运行2.16 最终用户使用须知 问题

      2.16首次启动的时候需要强制阅读最终用户使用须知,导致docker 启动容器时失败,希望可以出一个不需要按键继续的版本。

      发布在 BUG反馈
      8
      857950459
    • 用websocket长时间连接mirai-http2.5.2报错

      最近遇到奇怪的问题,我的机器人程序是分为两个部分:
      第一部分,部署在运行mirai的服务器上,用环回127.0.0.1地址websocket连接。
      第二部分,在另一台服务器上用公网地址websocket连接mirai服务器。

      每天到凌晨的时候,使用公网地址连接的机器人程序就会收不到信息,但是使用环回地址连接的机器人程序仍然是正常运行的,直到我重启mirai才会解决,该问题观察了一个多星期了只会出现在凌晨的时候。

      出现问题的时候,每收到一条信息的时候,mirai日志上就会出现以下报错:

      [31m2022-06-26 07:26:28 E/Mah Debug: java.util.concurrent.CancellationException: ArrayChannel was cancelled
      java.util.concurrent.CancellationException: ArrayChannel was cancelled
      	at kotlinx.coroutines.channels.AbstractChannel.cancel(AbstractChannel.kt:656)
      	at kotlinx.coroutines.channels.ReceiveChannel$DefaultImpls.cancel$default(Channel.kt:279)
      	at io.ktor.http.cio.websocket.DefaultWebSocketSessionImpl$runOutgoingProcessor$1.invokeSuspend(DefaultWebSocketSessionImpl.kt:182)
      	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
      	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
      	at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:69)
      	at kotlinx.coroutines.DispatchedTaskKt.resumeUnconfined(DispatchedTask.kt:245)
      	at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:161)
      	at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:397)
      	at kotlinx.coroutines.CancellableContinuationImpl.cancel(CancellableContinuationImpl.kt:183)
      	at kotlinx.coroutines.CancellableContinuationImpl.parentCancelled$kotlinx_coroutines_core(CancellableContinuationImpl.kt:190)
      	at kotlinx.coroutines.ChildContinuation.invoke(JobSupport.kt:1474)
      	at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1499)
      	at kotlinx.coroutines.JobSupport.tryMakeCancelling(JobSupport.kt:795)
      	at kotlinx.coroutines.JobSupport.makeCancelling(JobSupport.kt:755)
      	at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:671)
      	at kotlinx.coroutines.JobSupport.parentCancelled(JobSupport.kt:637)
      	at kotlinx.coroutines.ChildHandleNode.invoke(JobSupport.kt:1465)
      	at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1499)
      	at kotlinx.coroutines.JobSupport.tryMakeCompletingSlowPath(JobSupport.kt:900)
      	at kotlinx.coroutines.JobSupport.tryMakeCompleting(JobSupport.kt:863)
      	at kotlinx.coroutines.JobSupport.cancelMakeCompleting(JobSupport.kt:696)
      	at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:667)
      	at kotlinx.coroutines.JobSupport.parentCancelled(JobSupport.kt:637)
      	at kotlinx.coroutines.ChildHandleNode.invoke(JobSupport.kt:1465)
      	at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1499)
      	at kotlinx.coroutines.JobSupport.makeCancelling(JobSupport.kt:747)
      	at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:671)
      	at kotlinx.coroutines.JobSupport.parentCancelled(JobSupport.kt:637)
      	at kotlinx.coroutines.ChildHandleNode.invoke(JobSupport.kt:1465)
      	at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1499)
      	at kotlinx.coroutines.JobSupport.tryMakeCancelling(JobSupport.kt:795)
      	at kotlinx.coroutines.JobSupport.makeCancelling(JobSupport.kt:755)
      	at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:671)
      	at kotlinx.coroutines.JobSupport.parentCancelled(JobSupport.kt:637)
      	at kotlinx.coroutines.ChildHandleNode.invoke(JobSupport.kt:1465)
      	at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1499)
      	at kotlinx.coroutines.JobSupport.tryMakeCancelling(JobSupport.kt:795)
      	at kotlinx.coroutines.JobSupport.makeCancelling(JobSupport.kt:755)
      	at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:671)
      	at kotlinx.coroutines.JobSupport.parentCancelled(JobSupport.kt:637)
      	at kotlinx.coroutines.ChildHandleNode.invoke(JobSupport.kt:1465)
      	at kotlinx.coroutines.JobSupport.notifyCancelling(JobSupport.kt:1499)
      	at kotlinx.coroutines.JobSupport.tryMakeCancelling(JobSupport.kt:795)
      	at kotlinx.coroutines.JobSupport.makeCancelling(JobSupport.kt:755)
      	at kotlinx.coroutines.JobSupport.cancelImpl$kotlinx_coroutines_core(JobSupport.kt:671)
      	at kotlinx.coroutines.JobSupport.cancelInternal(JobSupport.kt:632)
      	at kotlinx.coroutines.JobSupport.cancel(JobSupport.kt:617)
      	at kotlinx.coroutines.JobKt__JobKt.cancel(Job.kt:549)
      	at kotlinx.coroutines.JobKt.cancel(Unknown Source)
      	at kotlinx.coroutines.JobKt__JobKt.cancel$default(Job.kt:548)
      	at kotlinx.coroutines.JobKt.cancel$default(Unknown Source)
      	at io.ktor.server.cio.backend.ServerPipelineKt$startServerConnectionPipeline$1.invokeSuspend(ServerPipeline.kt:179)
      	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
      	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
      	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
      

      机器人程序都是使用Ariadne SDK写的
      mirai 2.11.0
      mirai-http2.5.2
      Ariadne 0.7.14

      希望大佬们可以帮忙看看,谢谢!
      现在每天早上起来第一件事就是重启mirai o(╥﹏╥)o
      打算写一个定时重启脚本临时用着

      发布在 HTTP API和第三方SDK
      8
      857950459