This is to *try* to avoid the exception we are seeing repeatedly:

#13:53:03 - [LLUDPSERVER]: Packet exceeded buffer size during zerocoding. Removing MSG_ZEROCODED flag
#13:53:03 - [Scene]: Failed with exception System.ArgumentException: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.
#  at System.Buffer.BlockCopy (System.Array src, Int32 srcOffset, System.Array dst, Int32 dstOffset, Int32 count) [0x000b7] in /home/grid/install/mono24/mono-2.4.2.3/mcs/class/corlib/System/Buffer.cs:116
#  at OpenSim.Region.ClientStack.LindenUDP.LLUDPServer.SendPacketData (OpenSim.Region.ClientStack.LindenUDP.LLUDPClient client, System.Byte[] data, Int32 dataLength, PacketType type, Boolean doZerocode, ThrottleOutPacketType category) [0x00060] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs:290
#  at OpenSim.Region.ClientStack.LindenUDP.LLUDPServer.SendPacket (OpenSim.Region.ClientStack.LindenUDP.LLUDPClient client, OpenMetaverse.Packets.Packet packet, ThrottleOutPacketType category, Boolean allowSplitting) [0x00077] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs:265
#  at OpenSim.Region.ClientStack.LindenUDP.LLClientView.OutPacket (OpenMetaverse.Packets.Packet packet, ThrottleOutPacketType throttlePacketType) [0x00000] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs:5244
#  at OpenSim.Region.ClientStack.LindenUDP.LLClientView.SendCoarseLocationUpdate (System.Collections.Generic.List`1 users, System.Collections.Generic.List`1 CoarseLocations) [0x0012a] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs:3424
#  at OpenSim.Region.Framework.Scenes.ScenePresence.SendCoarseLocationsDefault (UUID sceneId, OpenSim.Region.Framework.Scenes.ScenePresence p) [0x000fa] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/ScenePresence.cs:2536
#  at OpenSim.Region.Framework.Scenes.ScenePresence.SendCoarseLocations () [0x0000d] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/ScenePresence.cs:2491
#  at OpenSim.Region.Framework.Scenes.ScenePresence.Update () [0x00011] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/ScenePresence.cs:2404
#  at OpenSim.Region.Framework.Scenes.SceneGraph.UpdateEntities () [0x0001b] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/SceneGraph.cs:164
#  at OpenSim.Region.Framework.Scenes.Scene.Update () [0x000dc] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/Scene.cs:1031  On Region: Wright Plaza
prioritization
Diva Canto 2009-10-09 14:25:01 -07:00
parent c146f2c8c4
commit c8cc14a98b
1 changed files with 4 additions and 0 deletions

View File

@ -287,11 +287,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// instead // instead
m_log.Info("[LLUDPSERVER]: Packet exceeded buffer size during zerocoding. Removing MSG_ZEROCODED flag"); m_log.Info("[LLUDPSERVER]: Packet exceeded buffer size during zerocoding. Removing MSG_ZEROCODED flag");
data[0] = (byte)(data[0] & ~Helpers.MSG_ZEROCODED); data[0] = (byte)(data[0] & ~Helpers.MSG_ZEROCODED);
//
buffer = new UDPPacketBuffer(client.RemoteEndPoint, dataLength);
//
Buffer.BlockCopy(data, 0, buffer.Data, 0, dataLength); Buffer.BlockCopy(data, 0, buffer.Data, 0, dataLength);
} }
} }
else else
{ {
// ??? will it fit?
Buffer.BlockCopy(data, 0, buffer.Data, 0, dataLength); Buffer.BlockCopy(data, 0, buffer.Data, 0, dataLength);
} }
buffer.DataLength = dataLength; buffer.DataLength = dataLength;