From 585473aade100c3ffeef27e0c8e6b6c8c09d0109 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Tue, 8 Feb 2011 20:12:33 -0800 Subject: Brute-force debug -- mantis #5365 --- OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs | 18 +++++++++++++++--- OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 5 +++++ 2 files changed, 20 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs index 65a8fe3..2d58b94 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs @@ -463,12 +463,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP bool packetSent = false; ThrottleOutPacketTypeFlags emptyCategories = 0; - //string queueDebugOutput = String.Empty; // Serious debug business + string queueDebugOutput = String.Empty; // Serious debug business for (int i = 0; i < THROTTLE_CATEGORY_COUNT; i++) { bucket = m_throttleCategories[i]; - //queueDebugOutput += m_packetOutboxes[i].Count + " "; // Serious debug business + if (i == 4) + queueDebugOutput += m_packetOutboxes[i].Count + " "; // Serious debug business if (m_nextPackets[i] != null) { @@ -476,13 +477,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP // leaving a dequeued packet still waiting to be sent out. Try to // send it again OutgoingPacket nextPacket = m_nextPackets[i]; + if (i == 4) queueDebugOutput += "m_nextPackets[i] != null, " + nextPacket.Buffer.DataLength; if (bucket.RemoveTokens(nextPacket.Buffer.DataLength)) { + if (i == 4) queueDebugOutput += " removed tokens "; // Send the packet m_udpServer.SendPacketFinal(nextPacket); m_nextPackets[i] = null; packetSent = true; } + else + if (i == 4) queueDebugOutput += " did not remove tokens "; } else { @@ -491,6 +496,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP queue = m_packetOutboxes[i]; if (queue.Dequeue(out packet)) { + if (i == 4) queueDebugOutput += "m_nextPackets[i] == null, dq ok " + packet.Buffer.DataLength; // A packet was pulled off the queue. See if we have // enough tokens in the bucket to send it out if (bucket.RemoveTokens(packet.Buffer.DataLength)) @@ -498,11 +504,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP // Send the packet m_udpServer.SendPacketFinal(packet); packetSent = true; + if (i == 4) queueDebugOutput += " removed tokens "; } else { // Save the dequeued packet for the next iteration m_nextPackets[i] = packet; + if (i == 4) queueDebugOutput += " did not remove tokens "; } // If the queue is empty after this dequeue, fire the queue @@ -513,17 +521,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP } else { + if (i == 4) queueDebugOutput += "m_nextPackets[i] == null, dq nok "; // No packets in this queue. Fire the queue empty callback // if it has not been called recently emptyCategories |= CategoryToFlag(i); } } + } if (emptyCategories != 0) BeginFireQueueEmpty(emptyCategories); - //m_log.Info("[LLUDPCLIENT]: Queues: " + queueDebugOutput); // Serious debug business + if (m_udpServer.EmergencyMonitoring) + m_log.Info("[LLUDPCLIENT]: Queues: " + queueDebugOutput); // Serious debug business + return packetSent; } diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 04fec95..922e2bc 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs @@ -1133,6 +1133,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP private int npacksSent = 0; private int npackNotSent = 0; + public bool EmergencyMonitoring + { + get { return m_scene.EmergencyMonitoring; } + } + private void MonitoredClientOutgoingPacketHandler(IClientAPI client) { nticks++; -- cgit v1.1