MrXiaoM / Overflow

替换 mirai 实现为 Onebot 以进行无缝迁移
https://mirai.mrxiaom.top
GNU Affero General Public License v3.0
337 stars 25 forks source link

反向 WebSocket 连接时死锁 #67

Closed luanyaolingwu closed 4 months ago

luanyaolingwu commented 4 months ago

问题描述

WebSocket连接上了, 但是如连

Report_2024_

复现

开启Overflow即可复现

Overflow 版本

9132e582163ff1e5870d43b442d0d455357a9592

其他组件版本

LLOneBot

系统日志

2024-07-06 15:53:01 I/main: Starting mirai-console...
2024-07-06 15:53:01 I/main: 

===================================[ Mirai console 2.16.0 ]===================================
 __       __ __                   __  ______                                      __
|  \     /  \  \                 |  \/      \                                    |  \
| ▓▓\   /  ▓▓\▓▓ ______   ______  \▓▓  ▓▓▓▓▓▓\ ______  _______   _______  ______ | ▓▓ ______
| ▓▓▓\ /  ▓▓▓  \/      \ |      \|  \ ▓▓   \▓▓/      \|       \ /       \/      \| ▓▓/      \
| ▓▓▓▓\  ▓▓▓▓ ▓▓  ▓▓▓▓▓▓\ \▓▓▓▓▓▓\ ▓▓ ▓▓     |  ▓▓▓▓▓▓\ ▓▓▓▓▓▓▓\  ▓▓▓▓▓▓▓  ▓▓▓▓▓▓\ ▓▓  ▓▓▓▓▓▓\
| ▓▓\▓▓ ▓▓ ▓▓ ▓▓ ▓▓   \▓▓/      ▓▓ ▓▓ ▓▓   __| ▓▓  | ▓▓ ▓▓  | ▓▓\▓▓    \| ▓▓  | ▓▓ ▓▓ ▓▓    ▓▓
| ▓▓ \▓▓▓| ▓▓ ▓▓ ▓▓     |  ▓▓▓▓▓▓▓ ▓▓ ▓▓__/  \ ▓▓__/ ▓▓ ▓▓  | ▓▓_\▓▓▓▓▓▓\ ▓▓__/ ▓▓ ▓▓ ▓▓▓▓▓▓▓▓
| ▓▓  \▓ | ▓▓ ▓▓ ▓▓      \▓▓    ▓▓ ▓▓\▓▓    ▓▓\▓▓    ▓▓ ▓▓  | ▓▓       ▓▓\▓▓    ▓▓ ▓▓\▓▓     \
 \▓▓      \▓▓\▓▓\▓▓       \▓▓▓▓▓▓▓\▓▓ \▓▓▓▓▓▓  \▓▓▓▓▓▓ \▓▓   \▓▓\▓▓▓▓▓▓▓  \▓▓▓▓▓▓ \▓▓ \▓▓▓▓▓▓▓

2024-07-06 15:53:01 I/main: Backend: version 2.16.0, built on 2023-10-20 06:28:10.
2024-07-06 15:53:01 I/main: Frontend Terminal: version 2.16.0, provided by Mamoe Technologies
2024-07-06 15:53:01 I/main: Welcome to visit https://mirai.mamoe.net/
2024-07-06 15:53:02 I/plugin: Successfully loaded plugin SimpleGroupAuth v0.1.1
2024-07-06 15:53:02 I/plugin: Successfully loaded plugin Chat Command v0.6.0
2024-07-06 15:53:03 I/plugin: Successfully loaded plugin mirai-api-http v2.10.0
2024-07-06 15:53:04 I/main: Prepared built-in commands: autoLogin, help, login, logout, permission, status, stop
2024-07-06 15:53:04 I/SimpleGroupAuth: SimpleGroupAuth已启动
2024-07-06 15:53:04 W/mirai-api-http: USING INITIAL KEY, please edit the key
2024-07-06 15:53:04 I/Mirai HTTP API: ********************************************************
2024-07-06 15:53:05 I/MahKtorAdapter[http,ws]: Autoreload is disabled because the development mode is off.
2024-07-06 15:53:05 I/MahKtorAdapter[http,ws]: Application started in 0.495 seconds.
2024-07-06 15:53:05 I/MahKtorAdapter[http,ws]: Responding at http://localhost:7827
2024-07-06 15:53:05 I/http adapter: >>> [http adapter] is listening at http://localhost:7827
2024-07-06 15:53:05 I/ws adapter: >>> [ws adapter] is listening at ws://localhost:7827
2024-07-06 15:53:05 I/Mirai HTTP API: Http api server is running out of verify mode
2024-07-06 15:53:05 I/Mirai HTTP API: adaptors: [http,ws]
2024-07-06 15:53:05 I/Mirai HTTP API: ********************************************************
2024-07-06 15:53:05 I/main: 5 plugin(s) enabled.
2024-07-06 15:53:05 I/main: mirai-console started successfully.
2024-07-06 15:53:05 I/Onebot: Overflow v2.16.0 正在运行
2024-07-06 15:53:05 I/Onebot: 在端口 10721 开启反向 WebSocket 服务端
2024-07-06 15:53:05 I/Onebot: ▌ 反向 WebSocket 服务端已在 0.0.0.0/0.0.0.0:10721 启动
2024-07-06 15:53:05 I/Onebot: ▌ 正在等待客户端连接...
2024-07-06 15:53:08 I/Onebot: ▌ 反向 WebSocket 客户端 /127.0.0.1:10331 已连接 ┈━═☆
2024-07-06 15:55:05 E/Onebot: 未连接到 Onebot
2024-07-06 15:55:05 W/console: Closing input service...

网络日志

2024-07-06 15:53:05 I/Onebot: Overflow v2.16.0 正在运行
2024-07-06 15:53:05 I/Onebot: 在端口 10721 开启反向 WebSocket 服务端
2024-07-06 15:53:05 I/Onebot: ▌ 反向 WebSocket 服务端已在 0.0.0.0/0.0.0.0:10721 启动
2024-07-06 15:53:05 I/Onebot: ▌ 正在等待客户端连接...
2024-07-06 15:53:08 I/Onebot: ▌ 反向 WebSocket 客户端 /127.0.0.1:10331 已连接 ┈━═☆
2024-07-06 15:55:05 E/Onebot: 未连接到 Onebot
2024-07-06 15:55:05 E/Onebot: ▌ 反向 WebSocket 客户端连接出现错误 Exception in completion handler InvokeOnCancelling@746ed63e[job@30f298d0] for CompletableDeferredImpl{Completed}@30f298d0 或未连接 ┈━═☆
2024-07-06 15:55:05 I/Onebot: ▌ 反向 WebSocket 客户端连接因 The connection was closed because the other endpoint did not respond with a pong in time. For more information check: https://github.com/TooTallNate/Java-WebSocket/wiki/Lost-connection-detection 已关闭 (关闭码: ABNORMAL_CLOSE)

补充信息

No response

MrXiaoM commented 4 months ago

The connection was closed because the other endpoint did not respond with a pong in time.

Onebot 协议端那边有问题

MrXiaoM commented 4 months ago

还有就是,你未提供开头截图的崩溃的日志,这个日志会出现在mirai根目录下

luanyaolingwu commented 4 months ago

The connection was closed because the other endpoint did not respond with a pong in time.

Onebot 协议端那边有问题

=============================================================
MIRAI CONSOLE CRASH REPORT.
Console has take too long to shutdown.

TIME: 1720254375321 <2024-07-06T08:26:15.321Z>
SYSTEM: Windows 10 amd64 10.0
JRT:
  OpenJDK Runtime Environment  17.0.11
    by Amazon.com Inc.
SPEC:
  Java Platform API Specification 17
    by Oracle Corporation
VM:
  OpenJDK 64-Bit Server VM 17.0.11+9-LTS
    by Amazon.com Inc.

PROCESS Working dir: D:\QQBot\Mirai-Overflow-RT
Console Working Dir: D:\QQBot\Mirai-Overflow-RT
Loaded plugins:
|- Console v2.16.0
|   `- ID: net.mamoe.mirai-console
|   `- AUTHOR: Mamoe Technologies
|   `- MAIN: class net.mamoe.mirai.console.internal.plugin.MiraiConsoleAsPlugin
|   `- FROM: D:\QQBot\Mirai-Overflow-RT\libs\mirai-console-2.16.0-all.jar
|- 溢出核心 v

PROCESS: 10084@VM-Huawei-0-301
VM OPTIONS:

THREADS:

"main" prio=5 Id=1 on kotlinx.coroutines.BlockingCoroutine@3e39ce34
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    -  waiting on kotlinx.coroutines.BlockingCoroutine@3e39ce34
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    at app//kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:88)
    at app//kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
    at app//kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
    at app//kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
    at app//kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
    at app//net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader.main(MiraiConsoleTerminalLoader.kt:61)

"Reference Handler" daemon prio=10 Id=2
    at java.base@17.0.11/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
    at java.base@17.0.11/java.lang.ref.Reference.processPendingReferences(Reference.java:253)
    at java.base@17.0.11/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:215)

"Finalizer" daemon prio=8 Id=3 on java.lang.ref.ReferenceQueue$Lock@79bcc175
    at java.base@17.0.11/java.lang.Object.wait(Native Method)
    -  waiting on java.lang.ref.ReferenceQueue$Lock@79bcc175
    at java.base@17.0.11/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
    at java.base@17.0.11/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
    at java.base@17.0.11/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:172)

"Signal Dispatcher" daemon prio=9 Id=4

"Attach Listener" daemon prio=5 Id=5

"Notification Thread" daemon prio=9 Id=21

"Common-Cleaner" daemon prio=8 Id=22 on java.lang.ref.ReferenceQueue$Lock@6423135e
    at java.base@17.0.11/java.lang.Object.wait(Native Method)
    -  waiting on java.lang.ref.ReferenceQueue$Lock@6423135e
    at java.base@17.0.11/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
    at java.base@17.0.11/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:140)
    at java.base@17.0.11/java.lang.Thread.run(Thread.java:840)
    at java.base@17.0.11/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:162)

"JLine Input Daemon" daemon prio=5 Id=27 on java.lang.Object@4011ea45
    at java.base@17.0.11/java.lang.Object.wait(Native Method)
    -  waiting on java.lang.Object@4011ea45
    at java.base@17.0.11/java.lang.Object.wait(Object.java:338)
    at app//net.mamoe.mirai.console.terminal.JLineInputDaemon.run(JLineInputDaemon.kt:67)
    at java.base@17.0.11/java.lang.Thread.run(Thread.java:840)

"DefaultDispatcher-worker-1" daemon prio=5 Id=28
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-2" daemon prio=5 Id=29
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"Mirai Console Logging#0" daemon prio=5 Id=31 on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6d6ab52b
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6d6ab52b
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    at java.base@17.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    at java.base@17.0.11/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
    at java.base@17.0.11/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
    at java.base@17.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    at java.base@17.0.11/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    at java.base@17.0.11/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base@17.0.11/java.lang.Thread.run(Thread.java:840)

"Mirai Console Logging#1" daemon prio=5 Id=32 on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6d6ab52b
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6d6ab52b
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    at java.base@17.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    at java.base@17.0.11/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
    at java.base@17.0.11/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
    at java.base@17.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    at java.base@17.0.11/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    at java.base@17.0.11/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base@17.0.11/java.lang.Thread.run(Thread.java:840)

"Mirai Console Logging#2" daemon prio=5 Id=33 on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6d6ab52b
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6d6ab52b
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    at java.base@17.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    at java.base@17.0.11/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
    at java.base@17.0.11/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
    at java.base@17.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    at java.base@17.0.11/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    at java.base@17.0.11/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base@17.0.11/java.lang.Thread.run(Thread.java:840)

"DefaultDispatcher-worker-3" daemon prio=5 Id=34
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-4" daemon prio=5 Id=35
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-5" daemon prio=5 Id=36
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-6" daemon prio=5 Id=37
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"WebSocketWorker-38" daemon prio=5 Id=38 on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@72c2669a
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@72c2669a
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    at java.base@17.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    at java.base@17.0.11/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
    at java.base@17.0.11/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
    at java.base@17.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    at java.base@17.0.11/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
    at app//top.mrxiaom.overflow.internal.deps.websocket.server.WebSocketServer$WebSocketWorker.run(WebSocketServer.java:1083)

"DefaultDispatcher-worker-7" daemon prio=5 Id=64 (in native)
    at java.base@17.0.11/sun.nio.ch.WEPoll.wait(Native Method)
    at java.base@17.0.11/sun.nio.ch.WEPollSelectorImpl.doSelect(WEPollSelectorImpl.java:111)
    at java.base@17.0.11/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:129)
    -  locked sun.nio.ch.Util$2@e87327f
    -  locked sun.nio.ch.WEPollSelectorImpl@797094df
    at java.base@17.0.11/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:141)
    at mirai-api-http-2.10.0.mirai2.jar[shared]//io.ktor.network.selector.ActorSelectorManager.select(ActorSelectorManager.kt:98)
    at mirai-api-http-2.10.0.mirai2.jar[shared]//io.ktor.network.selector.ActorSelectorManager.access$select(ActorSelectorManager.kt:18)
    at mirai-api-http-2.10.0.mirai2.jar[shared]//io.ktor.network.selector.ActorSelectorManager$select$1.invokeSuspend(ActorSelectorManager.kt)
    at app//kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at app//kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at app//kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
    at app//kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-8" daemon prio=5 Id=65
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-9" daemon prio=5 Id=66
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-10" daemon prio=5 Id=67
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-11" daemon prio=5 Id=68
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-12" daemon prio=5 Id=69 on kotlin.concurrent.ThreadsKt$thread$thread$1@4edde6e5
    at java.base@17.0.11/java.lang.Object.wait(Native Method)
    -  waiting on kotlin.concurrent.ThreadsKt$thread$thread$1@4edde6e5
    at java.base@17.0.11/java.lang.Thread.join(Thread.java:1313)
    at java.base@17.0.11/java.lang.Thread.join(Thread.java:1381)
    at java.base@17.0.11/java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:107)
    at java.base@17.0.11/java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:46)
    at java.base@17.0.11/java.lang.Shutdown.runHooks(Shutdown.java:130)
    at java.base@17.0.11/java.lang.Shutdown.exit(Shutdown.java:173)
    -  locked java.lang.Class@18e7cbdd
    at java.base@17.0.11/java.lang.Runtime.exit(Runtime.java:115)
    at java.base@17.0.11/java.lang.System.exit(System.java:1864)
    at app//top.mrxiaom.overflow.internal.Overflow.start0(Overflow.kt:243)
    at app//top.mrxiaom.overflow.internal.Overflow.access$start0(Overflow.kt:63)
    at app//top.mrxiaom.overflow.internal.Overflow$start0$1.invokeSuspend(Overflow.kt)
    at app//kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at app//kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"Mirai Console Shutdown Hook" prio=5 Id=23 on kotlinx.coroutines.BlockingCoroutine@2f440674
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    -  waiting on kotlinx.coroutines.BlockingCoroutine@2f440674
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    at app//kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:88)
    at app//kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
    at app//kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
    at app//kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
    at app//kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
    at app//net.mamoe.mirai.console.MiraiConsoleImplementation$Companion$1.invoke(MiraiConsoleImplementation.kt:464)
    at app//net.mamoe.mirai.console.MiraiConsoleImplementation$Companion$1.invoke(MiraiConsoleImplementation.kt:461)
    at app//kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)

"Mirai Console Shutdown Daemon #0" daemon prio=5 Id=70
    at java.management@17.0.11/sun.management.ThreadImpl.dumpThreads0(Native Method)
    at java.management@17.0.11/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:528)
    at java.management@17.0.11/sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:516)
    at app//net.mamoe.mirai.console.internal.shutdown.ShutdownDaemon$dumpCrashReport$2.a(ShutdownDaemon.kt:192)
    at app//net.mamoe.mirai.console.internal.shutdown.ShutdownDaemon.dumpCrashReport(ShutdownDaemon.kt:238)
    at app//net.mamoe.mirai.console.internal.shutdown.ShutdownDaemon.listen(ShutdownDaemon.kt:269)
    at app//net.mamoe.mirai.console.internal.shutdown.ShutdownDaemon.start$lambda$0(ShutdownDaemon.kt:103)
    at app//net.mamoe.mirai.console.internal.shutdown.ShutdownDaemon$$Lambda$272/0x000001f5a7387470.run(Unknown Source)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base@17.0.11/java.lang.Thread.run(Thread.java:840)

"Mirai Console Shutdown Daemon #1" daemon prio=5 Id=71 on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@33427b56
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    -  waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@33427b56
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    at java.base@17.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    at java.base@17.0.11/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3465)
    at java.base@17.0.11/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3436)
    at java.base@17.0.11/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    at java.base@17.0.11/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    at java.base@17.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base@17.0.11/java.lang.Thread.run(Thread.java:840)

"DefaultDispatcher-worker-13" daemon prio=5 Id=72
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-14" daemon prio=5 Id=73
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-15" daemon prio=5 Id=74
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-16" daemon prio=5 Id=75
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-17" daemon prio=5 Id=76
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-18" daemon prio=5 Id=77
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-19" daemon prio=5 Id=78
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)

"DefaultDispatcher-worker-20" daemon prio=5 Id=79
    at java.base@17.0.11/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@17.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:376)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park(CoroutineScheduler.kt:795)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark(CoroutineScheduler.kt:740)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:711)
    at app//kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
luanyaolingwu commented 4 months ago

The connection was closed because the other endpoint did not respond with a pong in time.

Onebot 协议端那边有问题

回滚到 a88c3f0 , 并未出现此故障

dbb03c309f79516d5559f803f91a59a9

luanyaolingwu commented 4 months ago

出现异常的版本 WebSocket 通讯内容: OneBot实现是客户端 Overflow监听在 10721

成功连接上游WebSocket服务
客户端消息:{"time":1720257544,"self_id":2330833294,"post_type":"meta_event","meta_event_type":"lifecycle","sub_type":"connect"}
客户端消息:{"time":1720257554,"self_id":2330833294,"post_type":"meta_event","meta_event_type":"heartbeat","status":{"online":true,"good":true},"interval":10000}
客户端消息:{"time":1720257564,"self_id":2330833294,"post_type":"meta_event","meta_event_type":"heartbeat","status":{"online":true,"good":true},"interval":10000}

能工作的版本通讯信息:

成功连接上游WebSocket服务
客户端消息:{"time":1720257740,"self_id":2330833294,"post_type":"meta_event","meta_event_type":"lifecycle","sub_type":"connect"}
上游WebSocket消息:{"action":"get_version_info","echo":0}
客户端消息:{"status":"ok","retcode":0,"data":{"app_name":"LLOneBot","protocol_version":"v11","app_version":"3.22.1"},"message":"","wording":"","echo":0}
上游WebSocket消息:{"action":"get_login_info","echo":1}
客户端消息:{"status":"ok","retcode":0,"data":{"user_id":2330833294,"nickname":"Eutopia_IM"},"message":"","wording":"","echo":1}
上游WebSocket消息:{"action":"get_friend_list","echo":2}
客户端消息:{"status":"ok","retcode":0," …略
luanyaolingwu commented 4 months ago

The connection was closed because the other endpoint did not respond with a pong in time.

Onebot 协议端那边有问题

那为啥 Overflow 连 get_version_info get_login_info 都不发送了 vw 我能正常使用的最后一个版本是 https://github.com/MrXiaoM/Overflow/actions/runs/9608666710