Skip to content

cannot find member for OnlineMessageSourceFromGroupImpl #2277

@MrY-Cat

Description

@MrY-Cat

问题描述

事情是这样:某位群员16:12发送了一句广告,随后多次发送,机器人有记录消息后随机复读消息的功能,在16:29踢出那位群员后,16:36机器人随机到了那位群员的消息,但sendMessage时失败(找不到消息source的成员)。
image
image

按理说他虽然被踢了但是他之前发的消息应该是存在的呀,莫非说群员被踢了,他的消息就不能复读了

复现

本地缓存存储一位群成员的消息,在群成员被踢后向该群发送该消息。

mirai-core 版本

2.13.0-RC

bot-protocol

ANDROID_PAD

其他组件版本

No response

系统日志

2022-10-15 16:36:00 E/Bot.2305339556: java.lang.IllegalStateException: Exception while broadcasting event 'GroupMessageEvent'
java.lang.IllegalStateException: Exception while broadcasting event 'GroupMessageEvent'
	at net.mamoe.mirai.internal.network.components.EventDispatcherImpl.broadcast$suspendImpl(EventDispatcher.kt:104)
	at net.mamoe.mirai.internal.network.components.EventDispatcherImpl.broadcast(EventDispatcher.kt)
	at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcastAsync$job$1.invokeSuspend(EventDispatcher.kt:113)
	at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcastAsync$job$1.invoke(EventDispatcher.kt)
	at net.mamoe.mirai.internal.network.components.EventDispatcherImpl$broadcastAsync$job$1.invoke(EventDispatcher.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55)
	at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
	at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
	at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
	at net.mamoe.mirai.internal.network.components.EventDispatcherImpl.broadcastAsync-kKe4JaQ(EventDispatcher.kt:110)
	at net.mamoe.mirai.internal.network.components.EventDispatcher.broadcastAsync-kKe4JaQ$default(EventDispatcher.kt:35)
	at net.mamoe.mirai.internal.network.components.EventBroadcasterPacketHandler.impl(PacketHandler.kt:87)
	at net.mamoe.mirai.internal.network.components.EventBroadcasterPacketHandler.handlePacket(PacketHandler.kt:73)
	at net.mamoe.mirai.internal.network.components.PacketHandlerChain.handlePacket(PacketHandler.kt:42)
	at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport$collectReceived$3.invokeSuspend(NetworkHandlerSupport.kt:108)
	at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport$collectReceived$3.invoke(NetworkHandlerSupport.kt)
	at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport$collectReceived$3.invoke(NetworkHandlerSupport.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55)
	at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
	at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
	at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47)
	at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source)
	at net.mamoe.mirai.internal.network.handler.NetworkHandlerSupport.collectReceived$mirai_core(NetworkHandlerSupport.kt:106)
	at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline.processBody(CommonNetworkHandler.kt:160)
	at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline.access$processBody(CommonNetworkHandler.kt:102)
	at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline$1$3$1.invokeSuspend(CommonNetworkHandler.kt:126)
	at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline$1$3$1.invoke(CommonNetworkHandler.kt)
	at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline$1$3$1.invoke(CommonNetworkHandler.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55)
	at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
	at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
	at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47)
	at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source)
	at net.mamoe.mirai.internal.network.handler.CommonNetworkHandler$PacketDecodePipeline$1.invokeSuspend(CommonNetworkHandler.kt:126)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:164)
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalStateException: cannot find member for OnlineMessageSourceFromGroupImpl. msg=[Msg#1438235654 {
            contentHead=ContentHead#64049741 {
                    divSeq=0x00006C5E(27742)
                    pkgNum=0x00000001(1)
            }
            msgBody=MsgBody#1836746531 {
                    richText=RichText#1060593443 {
                            attr=Attr#1370697595 {
                                    charSet=0x00000086(134)
                                    fontName=微软雅黑
                                    random=0x87C80AAA(-2016933206)
                                    size=0x0000000A(10)
                                    time=0x634A6B6E(1665821550)
                            }
                            elems=[Elem#308610430 {
                                    text=Text#436593629 {
                                            attr6Buf=00 01 00 00 00 0C 00 65 9D 73 09 00 00
                                            str=@大米来啦プラスPLUS
                                    }
                            }, Elem#308610430 {
                                    text=Text#436593629 {
                                            str=你伽我一下
                                    }
                            }, Elem#308610430 {
                                    generalFlags=GeneralFlags#1029416556 {
                                            pbReserve=08 04 20 CB 50 78 80 80 04 C8 01 00 F0 01 00 F8 01 00 90 02 00 98 03 00 A0 03 00 B0 03 00 C0 03 00 D0 03 00 E8 03 00 8A 04 02 10 02 90 04 80 C1 80 80 06 B8 04 00 C0 04 00 CA 04 02 10 00 F8 04 8C 80 08 88 05 00
                                    }
                            }, Elem#308610430 {
                                    elemFlags2=ElemFlags2#839459072 {
                                            insts=[]
                                            msgRptCnt=0x00000001(1)
                                    }
                            }, Elem#308610430 {
                                    extraInfo=ExtraInfo#1037725708 {
                                            groupMask=0x00000003(3)
                                            level=0x00000001(1)
                                            nick=南栀
                                    }
                            }]
                    }
            }
            msgHead=MsgHead#1870528232 {
                    fromAppid=0x00000001(1)
                    fromInstid=0x00000001(1)
                    fromUin=0x000000006A303D7C(1781546364)
                    groupInfo=GroupInfo#663823529 {
                            groupCard=南栀
                            groupCardType=0x00000002(2)
                            groupCode=0x000000003D3E39E5(1027488229)
                            groupInfoSeq=0x00000000000170C6(94406)
                            groupLevel=0x00000001(1)
                            groupName=E5 A4 8D E8 AF BB E5 96 B5 E6 98 9F E7 90 83 E5 AE 98 E6 96 B9 E7 BE A4
                            groupType=0x00000001(1)
                    }
                    isSrcMsg=false
                    msgSeq=0x000510AC(331948)
                    msgTime=0x634A6B82(1665821570)
                    msgType=0x00000052(82)
                    msgUid=0x0100000087C80AAA(72057596315962026)
                    toUin=0x000000008968B0A4(2305339556)
            }
    }]
	at net.mamoe.mirai.internal.message.source.OnlineMessageSourceFromGroupImpl$sender$2.invoke(incomingSourceImpl.kt:225)
	at net.mamoe.mirai.internal.message.source.OnlineMessageSourceFromGroupImpl$sender$2.invoke(incomingSourceImpl.kt:218)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
	at net.mamoe.mirai.internal.message.source.OnlineMessageSourceFromGroupImpl.getSender(incomingSourceImpl.kt:218)
	at net.mamoe.mirai.internal.message.source.OnlineMessageSourceFromGroupImpl.getSender(incomingSourceImpl.kt:186)
	at net.mamoe.mirai.message.data.OnlineMessageSource$Incoming.getFromId(MessageSource.kt:559)
	at net.mamoe.mirai.message.data.OnlineMessageSource$Incoming$FromGroup.toString(MessageSource.kt:615)
	at net.mamoe.mirai.internal.utils.TypeKt.estimateLength(type.kt:46)
	at net.mamoe.mirai.internal.utils.TypeKt.estimateLength(type.kt:35)
	at net.mamoe.mirai.internal.message.protocol.outgoing.OutgoingMessagePipelineContext.verifyLength(OutgoingMessagePipeline.kt:94)
	at net.mamoe.mirai.internal.message.protocol.impl.LongMessageProtocol.convertToLongMessageIfNeeded(LongMessageProtocol.kt:72)
	at net.mamoe.mirai.internal.message.protocol.impl.LongMessageProtocol.access$convertToLongMessageIfNeeded(LongMessageProtocol.kt:31)
	at net.mamoe.mirai.internal.message.protocol.impl.LongMessageProtocol$collectProcessorsImpl$1.process(LongMessageProtocol.kt:35)
	at net.mamoe.mirai.internal.message.protocol.outgoing.OutgoingMessageProcessorAdapter.process(OutgoingMessagePipelineProcessor.kt:26)
	at net.mamoe.mirai.internal.message.protocol.outgoing.OutgoingMessageProcessorAdapter.process(OutgoingMessagePipelineProcessor.kt:20)
	at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process$suspendImpl(ProcessorPipeline.kt:256)
	at net.mamoe.mirai.internal.pipeline.AbstractProcessorPipeline.process(ProcessorPipeline.kt)
	at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacadeImpl.preprocessAndSendOutgoingImpl(MessageProtocolFacade.kt:340)
	at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacadeImpl.preprocessAndSendOutgoing(MessageProtocolFacade.kt:325)
	at net.mamoe.mirai.internal.message.protocol.MessageProtocolFacade$INSTANCE.preprocessAndSendOutgoing(MessageProtocolFacade.kt)
	at net.mamoe.mirai.internal.contact.AbstractUserKt.sendMessageImpl(AbstractUser.kt:263)
	at net.mamoe.mirai.internal.contact.CommonGroupImpl.sendMessage$suspendImpl(GroupImpl.kt:203)
	at net.mamoe.mirai.internal.contact.CommonGroupImpl.sendMessage(GroupImpl.kt)
	at org.mirai.cat.plugin.PluginMain$onEnable$3.invokeSuspend(PluginMain.kt:2513)
	at org.mirai.cat.plugin.PluginMain$onEnable$3.invoke(PluginMain.kt)
	at org.mirai.cat.plugin.PluginMain$onEnable$3.invoke(PluginMain.kt)
	at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invokeSuspend(EventChannel.kt:506)
	at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invoke(EventChannel.kt)
	at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invoke(EventChannel.kt)
	at net.mamoe.mirai.internal.event.SafeListener$onEvent$2.invokeSuspend(SafeListener.kt:58)
	at net.mamoe.mirai.internal.event.SafeListener$onEvent$2.invoke(SafeListener.kt)
	at net.mamoe.mirai.internal.event.SafeListener$onEvent$2.invoke(SafeListener.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at net.mamoe.mirai.internal.event.SafeListener.onEvent(SafeListener.kt:58)
	at net.mamoe.mirai.internal.event.EventListeners.process(EventListeners.kt:120)
	at net.mamoe.mirai.internal.event.EventListeners.callListeners$mirai_core(EventListeners.kt:68)
	at net.mamoe.mirai.internal.event.EventChannelImpl.callListeners(EventChannelImpl.kt:85)
	at net.mamoe.mirai.internal.event.EventChannelImpl.broadcastEventImpl(EventChannelImpl.kt:75)
	at net.mamoe.mirai.internal.network.components.EventDispatcherImpl.broadcast$suspendImpl(EventDispatcher.kt:99)
	... 48 more

网络日志

No response

补充信息

有群友说可以去 PR 个 MemberExited(狗头

Metadata

Metadata

Assignees

No one assigned

    Labels

    s:core子系统: mirai-coret:bug类型: bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions