Skip to content
This repository has been archived by the owner on Aug 19, 2018. It is now read-only.

InWorldz Halcyon 0.9.22

Compare
Choose a tag to compare
@appurist appurist released this 14 Apr 06:20

Crossings

  • Replaced a very expensive call that was invoked once on a crossing, once for every prim in an object, if there were any seated avatars. The total sum of these expensive operations would cause significant delays in crossings, and in some cases could cause crossing timeouts to be detected by the sending region, causing a crossing to fail and the avatar to be left in an inconsistent state. (See the forum discussion.) This problem is also suspected to be one of the primary causes of Mantis #3180, if not the complete source of the trouble there.
  • Added a second crossing optimization while checking friend permissions to avoid a potentially expensive call on crossings where the friend and the owner were actually the same user.
  • Added a third crossing optimization to only send the forced immediate updates to the passengers of an incoming object with seated avatars, rather than to all avatars.

Rezzing by Attachments on Group Land

  • Fixed Mantis #3028, inability for attachment to rez on group-enabled land. This wasn't technically a bug, but it was not consistent with other places where we relaxed the requirement for rezzers to wear the land group tag when compared to SL.

Outfits

  • Added a CofVersion (Current Outfit folder) field to the login responses. Also added support for the CofVersion/Serial from inbound/outbound appearance packets, and removed some unused COF cleanup code that was was no longer being used.

Materials

  • Fixed the materials code to do a deep copy of on a duplicate operation. This fixes problems with materials after an object shift-copy.

Server Reliability and Performance

  • Fixed null reference exception in prim media seen during region persistence backup, which could cause the storage to fail and the object to be lost. This problem is not believed to have a problem on the main grid, but only in some of the intermediate 0.9.22 test versions (e.g. on the beta grid).
  • The server now auto-repairs the case where we should have a locally-cached cloud-based asset, but don't. This can happen if the local disk drive is full for unrelated reasons, so the cached item is 0 bytes (or missing). This fixes some cases where a region will not come back up after an automated restart.
  • Fixed a problem where a script calling llEmail in an object that is then removed or leaves the region can cause the script engine to terminate (failing to load further scripts or run existing scripts). This was an old OpenSim bug, seen on I'z Straits 8 and has been fixed (and will be reported to OpenSim as it is still a problem there and a possible vulnerability in all OpenSim regions).
  • [R5910] Fixed a possible serious performance problem caused by many overlapping profile fetch requests that could occur when a user profile was needed but not already cached (cache miss). Reported earlier on Sandbox 2.
  • [R5911] Fixed a concurrency problem with overlapped user profile fetches.
  • [R5911] Fixed an regression resulting in unwanted looping fetching profiles after lock conflict.
  • [R5911] Removed a long-standing needless XML-RPC call to the User service to do a user profile lookup for bots when botCreateBot was called. It doesn't need to check with the User server if that UUID already exists, given it just made a random UUID up. (That operation is now conditional on NOT being a bot.) This extra call is what was causing all the User service profile lookups to fail.
  • [R5917] Fixed to avoid removing user profiles unless we've searched again, inside lock. (Fixes a race condition with botCreateBot.)
  • [R5917] Performance optimization to avoid a costly friend edit perms check for bots.
  • [R5917] Performance improvement (perhaps lower memory as well) to continue to report the inventory link "not found" error case, but not with a full traceback. That's a costly operation for a very very common case and also pollutes the log preventing scanning for errors.
  • [R5917] Performance optimization to skip the god permissions checks on bots.
  • [R5917] Fixed botCreateBot prechecks to address a race condition allowing the same name, and to tighten the checks for null-named bots, etc.
  • [R5917] Fixed incorrect removal of bot profiles on remote lookup failures. (Bots are only in this region, should not be removed because storage couldn't find them, and are explicitly removed.)
  • [R5917] Closed a race condition where profile cache was checked outside the
    lock then assumed inside the lock.

Friend Permissions

  • [R5910] Fixed a an earlier regression in this update which broke friend edit permissions in some cases.
  • [R5910] Fixed a long-standing problem where the tests for online status visibility notifications for friends was inverted.