ScenePresence. Pace prim delivery to about 200 updates/s max. Break
a long-held lock that caused the notorious MapBlockQuery XMLRPC timeout
on agent login. Eliminate 60 second timeout at "Waiting for region handshake".
Fix region crossing/teleport response. Fix appearance in primmy regions.
llRezObject changed to llRezAtRoot. llRezObject implemented
to call llRezAtRoot until I can figure out how to calculate
a bounding box. Partial implementation of llPushObject
(no angular impulse applied)
patch attached replaces the tree walk algorithm used to build the
folder hierarchy with a single database query. That is, we replace
1 database query per folder with 1 query for the root folder's
properties and 1 query to retrieve the entire collection of folders for a user.
In case you run the server with mono --debug OpenSim.exe
line numbers are reported as <filename>:<linenumber>, so no
"at line" is found. That led to an exception, which is caught
since r5766. The attached patch fixes this for mono;
Bringing in an old private patch, increasing region registration timeout
to 90 seconds. That allows regions witj > 10000 prims to register
successfully. Running them.... well, YMMV
* If there's a Socket.AlreadyInProgress, just silently ignore this one
* Tried to refactor the Reset and BeginRecieve logic into something a little more readable, little less duplicated
Increase GetUserProfile timeout from 6 to 30 seconds. Because
the worker thread fo the XMLRPC data pump sits on a lock
while the system starts, regions with upwards of 6000 prims
throw and exception when that thread gets blocked for more
than 6 seconds, due to this timeout, and won't start.
When a region is re-registered (e.g. because of region restart),
it is removed from m_regions. If I understood that correctly,
the old entry should be replaced, instead.
This fixes a sitting problem which popped up on loading regions from
archive and turned out to be caused by the fact that the archiving
mechanisms all preserve the sit-target information that is set in the
object at the time the image is captured. This caused the new region
to pick a sit-target prim that did not correspond to the prim on which
the script was running, so the script's changed event is driven with
an invalid avatar UUID.
I have modified the ArchiveReadRequest class so that any sit information
that survives the archiving process is deleted before the object is
instantiated. This change has just been checked in.
* From the logs, I'm guessing probable cause is that an exception generated by a bad index given to substring error line number conversion stopped the script being killed, leading to continuous events that filled up the log (maybe)
* Someone will need to go back and fix this properly
* If a text string is too long we actually need to truncate to 254 chars rather than 255, since the Helpers.StringToField conversion will stick a \0 on the end