Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

网络不稳定时,bot偶尔会关闭 #2819

Closed
15890182384 opened this issue Nov 13, 2023 · 1 comment
Closed

网络不稳定时,bot偶尔会关闭 #2819

15890182384 opened this issue Nov 13, 2023 · 1 comment

Comments

@15890182384
Copy link

问题描述

日志显示, Bot is closed manually with exception: java.lang.IllegalStateException: NetworkHandler is already closed.
java.lang.IllegalStateException: NetworkHandler is already closed.
出现的场景是刚重启,然后断网在mirai重新连接之后就出现了这个错误(不是必现)。
想了解几个问题
1 bot是什么,机器人的实例吗
2 断掉的原因可能和网络有关吗,运行环境是在win10虚拟机,用Ariadne调用。
主要是向大佬了解下思路,这种问题的原因可能比较多。万分感谢!

复现

运行环境是在笔记本win10虚拟机,用的wifi不是网线;断网在mirai重新连接之后就出现了这个错误(不是必现)。

mirai-core 版本

2.14.0

bot-protocol

ANDROID_PHONE

其他组件版本

miai-app-http:"2.9.1",
mirai-console-terminal:"2.14.0"
mirai-console:"2.14.0"

系统日志

这是当时的错误日志
        2023-11-12 01:13:47 I/Bot.***********: Login successful
2023-11-12 01:13:47 I/Bot.***********: Saved account secrets to local cache for fast login.
2023-11-12 01:13:47 I/Bot.***********: Login successful.
2023-11-12 01:13:47 V/Bot.***********: Event: BotOnlineEvent(bot=Bot(***********))
2023-11-12 01:13:47 V/Bot.***********: Event: BotReloginEvent(bot=Bot(***********), cause=null)
2023-11-12 01:13:47 V/Bot.***********: Event: BotOfflineEvent.Active(bot=Bot(***********), cause=java.lang.IllegalStateException: NetworkHandler is already closed., reconnect=false)
2023-11-12 01:13:47 I/Bot.***********: Bot is closed manually with exception: java.lang.IllegalStateException: NetworkHandler is already closed.
java.lang.IllegalStateException: NetworkHandler is already closed.
	at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$StateClosed.sendPacketImpl(CommonNetworkHandler.kt:389)
	at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler.sendPacketImpl(CommonNetworkHandler.kt:36)
	at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.sendAndExpect(NetworkHandlerSupport.kt:123)
	at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.sendAndExpect(NetworkHandlerSupport.kt:149)
	at net.mamoe.mirai.internal.network.handler.NetworkHandler.sendAndExpect$default(NetworkHandler.kt:194)
	at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$LoginStrategy.sendAndExpect(SsoProcessor.kt:217)
	at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$SlowLoginImpl.doLogin(SsoProcessor.kt:264)
	at net.mamoe.mirai.internal.network.components.SsoProcessorImpl.login(SsoProcessor.kt:159)
	at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$StateConnecting$startState$2.invokeSuspend(CommonNetworkHandler.kt:246)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
	Suppressed: java.lang.IllegalStateException: NetworkHandler is already closed.
		at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$StateClosed.sendPacketImpl(CommonNetworkHandler.kt:389)
		at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler.sendPacketImpl(CommonNetworkHandler.kt:36)
		at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.sendAndExpect(NetworkHandlerSupport.kt:123)
		at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.sendAndExpect(NetworkHandlerSupport.kt:149)
		at net.mamoe.mirai.internal.network.handler.NetworkHandler.sendAndExpect$default(NetworkHandler.kt:194)
		at net.mamoe.mirai.internal.network.components.SsoProcessorImpl$FastLoginImpl.doLogin(SsoProcessor.kt:363)
		at net.mamoe.mirai.internal.network.components.SsoProcessorImpl.login(SsoProcessor.kt:156)
		... 7 more
	Suppressed: HeartbeatFailedException: ***********.AliveHeartbeat, recoverable=true, cause=PacketTimeoutException(message=***********.AliveHeartbeat Scheduler: Timeout receiving action response, cause=null)
		at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$StateOK$heartbeatJobs$1$1.invoke(CommonNetworkHandler.kt:346)
		at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$StateOK$heartbeatJobs$1$1.invoke(CommonNetworkHandler.kt:346)
		at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.setStateImpl$mirai_core(NetworkHandlerSupport.kt:329)
		at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$StateOK$heartbeatJobs$1.invoke(CommonNetworkHandler.kt:408)
		at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$StateOK$heartbeatJobs$1.invoke(CommonNetworkHandler.kt:345)
		at net.mamoe.mirai.internal.network.components.TimeBasedHeartbeatSchedulerImpl$launchHeartbeatJobAsync$1.invokeSuspend(HeartbeatScheduler.kt:131)
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
		at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
		at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
		at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
		at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
		at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
		at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
		... 4 more
	Caused by: PacketTimeoutException(message=***********.AliveHeartbeat Scheduler: Timeout receiving action response, cause=null)
		at net.mamoe.mirai.internal.network.components.TimeBasedHeartbeatSchedulerImpl$launchHeartbeatJobAsync$1.invokeSuspend(HeartbeatScheduler.kt:133)
		... 12 more

2023-11-12 01:13:47 I/Bot.***********: Bot cancelled: Bot closed

网络日志

No response

补充信息

No response

@15890182384
Copy link
Author

其实相关的issues也看过,主要是没找到合适的解决方法。bot是什么?断的原因是什么?为什么mirai连接已经成功了还是会有问题。大佬如果有时间的话希望可以回复下。万分感谢!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant