#author("2023-12-30T16:32:18+00:00","default:iseki","iseki")
*** オブジェクトのリスト更新でクラッシュ [#uac991e5]
- Error Log
 19:03:35 - [CLIENT]: Client thread for Fumi Hax 751c1531-03b5-48a9-8f2d-51a0527be7ca crashed.  Logging them out.
 19:03:35 - System.NullReferenceException: Object reference not set to an instance of an object
  at OpenMetaverse.Packets.ParcelObjectOwnersReplyPacket.get_Length () [0x00000] 
  at OpenSim.Region.ClientStack.LindenUDP.LLPacketHandler.QueuePacket (OpenMetaverse.Packets.Packet packet, ThrottleOutPacketType throttlePacketType, System.Object id) [0x00000] 
  at OpenSim.Region.ClientStack.LindenUDP.LLPacketHandler.OutPacket (OpenMetaverse.Packets.Packet packet, ThrottleOutPacketType throttlePacketType, System.Object id) [0x00000] 
  at OpenSim.Region.ClientStack.LindenUDP.LLPacketHandler.OutPacket (OpenMetaverse.Packets.Packet packet, ThrottleOutPacketType throttlePacketType) [0x00000] 
  at OpenSim.Region.ClientStack.LindenUDP.LLClientView.OutPacket (OpenMetaverse.Packets.Packet NewPack, ThrottleOutPacketType throttlePacketType) [0x00000] 
  at OpenSim.Region.ClientStack.LindenUDP.LLClientView.SendLandObjectOwners (OpenSim.Framework.LandData land, System.Collections.Generic.List`1 groups, System.Collections.Generic.Dictionary`2 ownersAndCount) [0x00000] 
  at OpenSim.Region.CoreModules.World.Land.LandObject.sendLandObjectOwners (IClientAPI remote_client) [0x00000] 
  at OpenSim.Region.CoreModules.World.Land.LandManagementModule.handleParcelObjectOwnersRequest (Int32 local_id, IClientAPI remote_client) [0x00000] 
  at OpenSim.Region.ClientStack.LindenUDP.LLClientView.ProcessInPacket (OpenMetaverse.Packets.Packet Pack) [0x00000] 
  at OpenSim.Region.ClientStack.LindenUDP.LLPacketHandler.ProcessInPacket (OpenSim.Region.ClientStack.LindenUDP.LLQueItem item) [0x00000] 
  at OpenSim.Region.ClientStack.LindenUDP.LLClientView.ClientLoop () [0x00000] 
  at OpenSim.Region.ClientStack.LindenUDP.LLClientView.RunUserSession () [0x00000]
#author("2023-12-31T04:52:39+00:00","default:iseki","iseki")

- OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs
- QueuePacket() の item.Length = packet.Length; で例外発生
- ParcelObjectOwnersReplyPacket には get_Length() が実装されていないと言うこと?
- 原因不明だが,とりあえず,例外を catch して回避
 private void QueuePacket(
         Packet packet, ThrottleOutPacketType throttlePacketType,
         Object id)
 {   
     LLQueItem item = new LLQueItem();
     item.Packet = packet;
     item.Incoming = false;
     item.throttleType = throttlePacketType;
     item.TickCount = Environment.TickCount;
     item.Identifier = id;
     item.Resends = 0;
     try {
         item.Length = packet.Length;
     }
     catch (Exception e) {
         item.Length = 0;
     }
     item.Sequence = packet.Header.Sequence;
 
     m_PacketQueue.Enqueue(item);
     m_PacketsSent++;
 }


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 ページ一覧 検索 最終更新   ヘルプ   最終更新のRSS