Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0007247opensim[REGION] OpenSim Corepublic2014-07-03 00:562015-07-15 16:32
Assigned To 
PlatformPCOSWindowsOS Version8.1
Product Versionmaster (dev code) 
Target VersionFixed in Version 
Summary0007247: LLUDPSERVER]: No packets received from child agent for 60000ms
DescriptionOver the last few weeks, I have noticed that avatars logging off (or teleporting back to a home grid) from a region on the Openvue grid (on latest 0.8.1 dev e.g. r/24902) are removed from the region they are on immediately, and they seem to be removed from immediately adjacent regions too, BUT... they seem to fail to be removed until after a 60,000ms delay from another regions they are established as "child" agents on the same grid.

In this example case the region where they fail to be removed is TWO 256x256 standard regions) away, not adjacent. The log off region is at 9051,9051 and the "child" region that the avatar is removed from after 60,000ms is at 9050,9049. BOTH regions are on the same OpenSim.exe instance, though I am not sure thatis a factor.

No var or mega regions are in use on the Openvue grid involved. All regions are standard 256x256 regions.

Could this relate to changes in adjacent region code handling intended to allow for varregions even though var regions are not in use, or perhaps relate to max view distances being used to establish child region relationships. I do often use 512m distance settings in viewers, and others might when visiting over HG.

Sample of the problem...

03:56:47 - [CLIENT]: Close has been called for lookatme.once attached to scene Vue-Port
03:56:47 - [SCENE]: Removing child agent lookatme.once df3ac0c6-e294-4426-a447-3b29a4341d0c from Vue-Port
03:56:47 - [CAPS]: Remove caps for agent df3ac0c6-e294-4426-a447-3b29a4341d0c in region Vue-Port
03:56:47 - [ENTITY TRANSFER STATE MACHINE]: Agent df3ac0c6-e294-4426-a447-3b29a4341d0c cleared from transit in Vue-Port
04:53:31 - [LLUDPSERVER]: No packets received from child agent of for 60000ms in Sandbox. Disconnecting.
04:53:31 - [CLIENT]: Close has been called for lookatme.once attached to scene Sandbox
04:53:31 - [SCENE]: Removing child agent lookatme.once df3ac0c6-e294-4426-a447-3b29a4341d0c from Sandbox
04:53:31 - [CAPS]: Remove caps for agent df3ac0c6-e294-4426-a447-3b29a4341d0c in region Sandbox
Additional InformationAlso, the log off from the child regions seems to be roughly 1 hour later. that's 360,000ms not 60,0000ms.. So is the message correct?
TagsNo tags attached.
Git Revision or version numberr/24902
Run Mode Grid (1 Region per Sim) , Grid (Multiple Regions per Sim)
Physics EngineBulletSim
Script Engine
Environment.NET / Windows64
Mono VersionNone
Attached Files

- Relationships

-  Notes
aiaustin (developer)
2014-07-03 01:05
edited on: 2014-07-03 01:06

I have also noted this in the console previously and it may be related... in this case it was for a local avatar on Openvue.. not related to a HG visitor...

08:56:32 - [LLUDPSERVER]: No packets received from child agent of Ai Austin for 60000ms in Sandbox. Disconnecting.

On next login I saw this with a null previous region UUID.

09:42:58 - [PRESENCE SERVICE]: ReportAgent: session f6535a1c-fdd6-4922-af6f-0167597f04b8, user e24a9015-f5ca-452b-8c95-d32e34cb9d64, region e2017542-db2a-4d96-8380-59b5794c7b61. Previously: region 00000000-0000-0000-0000-000000000000

aiaustin (developer)
2014-07-04 12:38
edited on: 2015-03-17 05:09

I see recent commits from Diva Canto which may relate to this bug... but were applied to address varregion issues. Note the bug report here was for a grid with normal regions only.

Silver (reporter)
2015-07-15 16:32

Here is the code that causes the warning:

            //FIXME: Make this an .ini setting
            const int AGENT_TIMEOUT_MS = 1000 * 60;

            // Disconnect an agent if no packets are received for some time
            if (Util.TickCount() - agent.TickLastPacketReceived > AGENT_TIMEOUT_MS)
                m_log.Warn("Ack timeout, disconnecting " + agent.ID);


            // Get a list of all of the packets that have been sitting unacked longer than udpClient.RTO
            List<OutgoingPacket> expiredPackets = agent.NeedAcks.GetExpiredPackets(agent.RTO);

            if (expiredPackets != null)
                //m_log.Debug("[LLUDPSERVER]: Resending " + expiredPackets.Count + " packets to " + udpClient.AgentID + ", RTO=" + udpClient.RTO);

                // Exponential backoff of the retransmission timeout

                // Resend packets
                for (int i = 0; i < expiredPackets.Count; i++)
                    OutgoingPacket outgoingPacket = expiredPackets[i];

                    //m_log.DebugFormat("[LLUDPSERVER]: Resending packet #{0} (attempt {1}), {2}ms have passed",
                    // outgoingPacket.SequenceNumber, outgoingPacket.ResendCount, Environment.TickCount - outgoingPacket.TickCount);

                    // Set the resent flag
                    outgoingPacket.Buffer.Data[0] = (byte)(outgoingPacket.Buffer.Data[0] | Helpers.MSG_RESENT);
                    outgoingPacket.Category = ThrottleCategory.Resend;

                    // Bump up the resend count on this packet
                    Interlocked.Increment(ref outgoingPacket.ResendCount);
                    Interlocked.Increment(ref m_packetsResent);

                    // Requeue or resend the packet
                    if (!agent.EnqueueOutgoing(outgoingPacket))

- Issue History
Date Modified Username Field Change
2014-07-03 00:56 aiaustin New Issue
2014-07-03 00:56 aiaustin Description Updated View Revisions
2014-07-03 01:05 aiaustin Note Added: 0026422
2014-07-03 01:06 aiaustin Note Edited: 0026422 View Revisions
2014-07-03 01:14 aiaustin Physics Engine BasicPhysics => BulletSim
2014-07-04 12:38 aiaustin Note Added: 0026428
2015-03-17 05:09 aiaustin Note Edited: 0026428 View Revisions
2015-07-15 16:32 Silver Note Added: 0028906

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker