[Opensim-dev] Continual object update resends if acks are missed

Lake, Dan dan.lake at intel.com
Wed Oct 12 08:20:16 UTC 2011


Thanks for the additional info on this, Melanie. You are correct that the resend should get a new sequence number and that old updates for an object will no longer get sent when there is a newer update to send. Properties and updates are handled almost the same but different code. I'll look it over with Mic in the morning so I understand what is going on. 

~Dan


-----Original Message-----
From: opensim-dev-bounces at lists.berlios.de [mailto:opensim-dev-bounces at lists.berlios.de] On Behalf Of Melanie
Sent: Tuesday, October 11, 2011 11:22 PM
To: opensim-dev at lists.berlios.de
Subject: Re: [Opensim-dev] Continual object update resends if acks are missed

It appears this mechanism has already been removed for prim updates
because intermediate updates are needed fro proper motion of
physical prims, but was left in for property updates. However,
culling of later updates as well as preservation of sequence numbers
was not done.

Melanie

On 12/10/2011 07:43, Mic Bowman wrote:
> We should collect more information on what is actually happening. The old
> behavior was to resend infinitely (and very badly). It would send old
> updates even when there were new updates for the same object. We changed the
> resend to transmit the current data rather than old data. If there are still
> no acks coming back after some time then we need to figure out what the
> viewer is expecting & when it no longer acks packets.
> 
> There is a write up on the procedure in an old email message on this list.
> 
> --mic
> 
> 
> On Tue, Oct 11, 2011 at 3:55 PM, Justin Clark-Casey <
> jjustincc at googlemail.com> wrote:
> 
>> Hi dslake (since this is chiefly addressed to you :)
>>
>> In commit b5ab33b5 back on Wednesday 20th April 2011, you made a change so
>> that the resend of object updates or property updates is threaded back
>> through Resend methods on LLClientView rather than the normal resend within
>> UDPServer.
>>
>> The normal resend only performs the resend once, while going through the
>> LLClientView.Resent*() methods will continually attempt the resend until
>> acked as they put the requests back on the m_entityUpdates/m_entityProps
>> queue.
>>
>> From my experience, often the client will not reack such packets.  This
>> means that they are continuously resent until the client logs out.  I can
>> see this happening by uncommenting the log lines in LLClientView.**ResendPrimUpdates()
>> and ResentPropertyUpdates().  This is chiefly seen on remote regions (I
>> can't repro on a localhost).
>>
>> What do you think?  Can we resend such packets just once?
>>
>> Thanks,
>>
>> --
>> Justin Clark-Casey (justincc)
>> http://justincc.org/blog
>> http://twitter.com/justincc
>> ______________________________**_________________
>> Opensim-dev mailing list
>> Opensim-dev at lists.berlios.de
>> https://lists.berlios.de/**mailman/listinfo/opensim-dev<https://lists.berlios.de/mailman/listinfo/opensim-dev>
>>
> 
> 
> 
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
_______________________________________________
Opensim-dev mailing list
Opensim-dev at lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev



More information about the Opensim-dev mailing list