Commit Graph

700 Commits

Author SHA1 Message Date
Oren Hurvitz
3a2d4c8b05 Added logging in places where regions are searched for by their location
This commit also fixes the log message "Region already exists in coordinates <{0},{1}>": it was actually showing the *requested* coordinates, instead of the coordinates of the previously-existing link.
2015-07-22 20:13:53 +03:00
BlueWall
3c2886cd75 Adding back command to clear region's user cache 2015-05-13 14:31:28 -05:00
Diva Canto
0bf1209f90 Another major overhaul of inventory downloading, this time pertaining to inventory links. Added yet another function to IInventoryService to get multiple items at once, so that fetching collections of linked items is done once per folder instead of once per item. 2015-05-08 20:53:28 -07:00
Diva Canto
c74cef0f42 Major change in the way inventory is downloaded: added a method throughout IIventoryService that fetches sets of folders at once. Also added folder id in the InventoryCollection data structure, so that we don't need to go to inventory server again just for that. This reduces the chatter between sims and inventory server by... a lot. On my tests, this reduces initial inventory download down to 30% of what it currently is. 2015-05-07 19:24:08 -07:00
Diva Canto
1abbad71b4 Refactored some code that is used in two different dlls related to SOP rewriting. Also added some unit tests that relate to mantis #7514 2015-05-05 20:59:09 -07:00
Diva Canto
877371411a Mantis #7514
I think this is it -- a bug introduced back in October, where the prefix and name space were being added twice on HG asset posts bu simulators.
2015-05-02 22:18:58 -07:00
Justin Clark-Casey (justincc)
0aeea89258 Fix script state not being preserved in objects sent via Hypergrid.
This was because attributes were not being included in the transformation, hence losing the script state identity.
Symptoms are messages like "[SCENE OBJECT GROUP]: SavedScriptState element had no UUID in object test box"
Regression since the conference code merge.  Regression test extended for this case.
Relates to http://opensimulator.org/mantis/view.php?id=7439
2015-03-13 20:09:29 +00:00
Freaky Tech
5a413c1b2f adjusted new UserManagementModule to accept the HG UUI test harness
Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
2015-03-05 17:19:39 -05:00
Freaky Tech
0ea6977013 solving HG IM, HGFriends issues based on falsified GridUser data
it does not consider GridUser as a viable source for residents' data.
it does not consider Friends, Inventory Creators to be trusted at all. There are lots of broken entries in existence.

There are lots of broken creator data fields in assets.

The following issues arise from the broken data in the old User Management Module:

failing HG IM
failing HGFriends Requests

Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
2015-03-05 16:17:12 -05:00
Justin Clark-Casey (justincc)
5fa651c529 minor: In HGAssetMapper, don't complain on seeing an XmlDeclaration as we know that we not using those in transformation.
Relates to http://opensimulator.org/mantis/view.php?id=7447
2015-02-25 21:42:07 +00:00
Justin Clark-Casey (justincc)
c67b3407d4 In HGAssetMapper.RewriteSOP(), don't explicitly end the document.
The document here has no <?xml declaration.  Though ideally it may be present, in practice it has not been added as the data here is embedded within an asset
On Mono 3.2.8 and probably other versions, calling WriteEndDocument() without a declaration does nothing.
On Windows .NET, the same operation throws a "Document does not have a root element" exception which may be contributing to Mantis 7397 and possibly 7439
2015-02-21 00:08:49 +00:00
Justin Clark-Casey (justincc)
c90c22ed28 If HGAssetMapper.PostAsset fails then be more explicit about the uuid, type, size and base asset uuid of the failure for debugging purposes. 2015-02-19 23:50:25 +00:00
Justin Clark-Casey (justincc)
264047dba0 Add the type of the unrecognized node to the HG asset mapping error message in TransformXml() 2015-02-19 22:39:22 +00:00
Justin Clark-Casey (justincc)
1d2616e7a2 If the owner of an object is taking a copy from the scene (e.g. via the "take copy" option on a viewer) then only require owner copy perms, not copy and transfer.
This matches Linden Lab behaviour and what was already possible via shift-copy.
Transfer would not apply here as the owner and copier are the same.
This is the only functional change, all other current take copy logic remains the same.
Adds regression tests around relevant take copy cases.
2015-02-03 23:43:30 +00:00
Justin Clark-Casey (justincc)
d0a2ea0857 Fix regression where the stored state of every second script in an object rezzed from inventory (e.g. attachments) was no longer loaded.
Likely a regression since f132f642 (2014-08-28)
Relates to http://opensimulator.org/mantis/view.php?id=7278
2015-01-23 00:27:57 +00:00
Justin Clark-Casey (justincc)
b22c072c40 Fix a recent regression with HG asset posting to other grids where the assets were no longer being posted.
Addresses regression from 08606ae (Thu Jan 8 2015)
2015-01-15 23:44:34 +00:00
Justin Clark-Casey (justincc)
beef41f24c Stop simulators attempting to contact registered but offline regions (RegionFlags.Persistent but not RegioNFlags.RegionOnline) on startup and when an avatar completes a teleport.
This eliminates spurious network calls and failure reporting.
This is done by adding RegionFlags to the GridRegion returned data in a backward compatible way as an alternative to multiple IGridService.GetRegionFlags() calls
Using a simulator or a grid service older than this commit will just see previous behaviour.
2015-01-14 19:45:19 +00:00
Justin Clark-Casey (justincc)
8e1e8a0920 Make the performance controlling job processing threads introduced in conference code use a generic JobEngine class rather than 4 slightly different copy/pasted versions. 2015-01-12 20:56:37 +00:00
Justin Clark-Casey (justincc)
08606ae409 Make the IteratingUuidGatherer the only UuidGatherer.
This UUID gatherer provides a superset of the previous gatherer's functionality
as it also allows the caller to control gathering iterations for load purposes.
2015-01-08 20:21:40 +00:00
BlueWall
e50aac020f Add command to reset region's user cache 2014-12-16 12:47:02 -05:00
Justin Clark-Casey (justincc)
f3ab7c0f5c refactor: rename IteratingUuidGather.AddAssetUuidToInspect() and RecordAssetUuids() to AddForInspection() as this properly describes what both of these methods do. 2014-12-05 00:21:42 +00:00
Justin Clark-Casey (justincc)
9208fb5d54 refactor: Make IteratingUUIDGatherer take a dictionary in its constructor like UUIDGatherer, so we can deal with future cases where the dictionary may already be pre-populated. 2014-12-04 23:55:59 +00:00
Justin Clark-Casey (justincc)
39eab72d7c When performing region cross, don't add the velocity to the new position in ETM.CrossAgentIntoNewRegionMain() since this has already been performed by SP.CheckForBorderCrossing() 2014-11-29 00:16:23 +00:00
Justin Clark-Casey (justincc)
09534f378e Avoid repeated lag-generating continuous attempts to retrieve HG service Urls in UMM if the initial request fails, possibly due to the home URL not being present
Instead, the failure information is effectively added to the memory cache (so no persistence over simualtor sessions).
A future improvement may be to invalidate negative cache results after some time has passed in case the failure was transient.
Looks to resolve http://opensimulator.org/mantis/view.php?id=7382
2014-11-28 01:16:30 +00:00
Justin Clark-Casey (justincc)
ee9fae23ff Be more explicit again in UMM bad HomeURL message by logging the original creator data 2014-11-27 00:32:04 +00:00
Justin Clark-Casey (justincc)
8a27fc5d61 Make UMM.AddUser(UUID, string) log message when bad creatorData is given to reflect its location (UMM not Scene) and add the user name and ID. 2014-11-27 00:24:17 +00:00
Justin Clark-Casey (justincc)
86367d7219 refactor: Move methods to start a monitored thread, start work in its own thread and run work in the jobengine from Watchdog to a WorkManager class.
This is to achieve a clean separation of concerns - the watchdog is an inappropriate place for work management.
Also adds a WorkManager.RunInThreadPool() class which feeds through to Util.FireAndForget.
Also switches around the name and obj arguments to the new RunInThread() and RunJob() methods so that the callback obj comes after the callback as seen in the SDK and elsewhere
2014-11-25 23:56:32 +00:00
Justin Clark-Casey (justincc)
66b1c37973 Fix bug in HG attachment throttling code where attachments were never rezzed on any teleport within a foreign grid after the first.
Bug was introduced in ghosts branch commit 69abade
2014-11-25 23:23:12 +00:00
Justin Clark-Casey (justincc)
aeae34505f When processing incoming attachments via HG, if a request for uuid gathering or final asset import takes too long remove remaining requests from same user to prevent hold up of other user's incoming attachments.
This improves upon the earlier naive simply queueing immplementation.
Threshold is 30 seconds.  If this happens to a user they can relog and fetch will be reattempted.
2014-11-25 23:23:11 +00:00
Justin Clark-Casey (justincc)
06a5d6e9ef Introduce an IteratingUuidGatherer where each fetch from the asset service (iteration) can be controlled by the caller.
This is to enable an imminent change where incoming HG scene object fetching can assess the time taken by each request rather than being forced to perform all requests in one call.
Soon, this will replace the existing UuidGatherer since it is both simpler and more flexible.
2014-11-25 23:23:11 +00:00
Justin Clark-Casey (justincc)
d6c9705a3b Add incoming packet async handling engine to queue some inbound udp async requests.
This is to reduce the potential for overload of the threadpool if there are many simultaneous requets in high concurrency situations.
Currently only applied to AvatarProperties and GenericMessage requests.
2014-11-25 23:23:11 +00:00
Justin Clark-Casey (justincc)
1c5c6af274 Add missing class from recent commit 69abade 2014-11-25 23:23:10 +00:00
Justin Clark-Casey (justincc)
f54c70741b Add "show threadpool calls active" console debug command.
This shows named threadpool calls (excluding timer and network calls) that are currently queued or running.
Also shows total of labelled and any anonymous calls.
2014-11-25 23:23:10 +00:00
Justin Clark-Casey (justincc)
1d19e1bbd0 Add naive implementation of controlled incoming HG attachments to manage load.
Instead of processing all incoming attachment scene object concurrently, process them consecutively to eliminate potential overload from this source.
This is a naive implementation because it does not currently account for slow foreign asset services.
Although it may take longer, this approach may also improve attachment visibility for HG avatars
since the scene object is now always added to the scene after receiving assets from the foreign service and not before.
2014-11-25 23:23:10 +00:00
Justin Clark-Casey (justincc)
ec8d21c434 Label all threadpool calls being made in core OpenSimulator. This is to add problem diagnosis.
"show threadpool calls" now also returns named (labelled), anonymous (unlabelled) and total call stats.
2014-11-25 23:23:10 +00:00
Justin Clark-Casey (justincc)
1eb3e6cc43 When inserting missing CreatorData in the HGAssetMapper, do the rewrite on a streaming xml basis rather than loading it all into memory via XmlDocument.
This is because objects with lots of parts can have a lot of xml to load into memory, and this has been seen to have a noticeable performance impact.
Whereas streaming has been seen to reduce the impact in normal serialization.
Implmentation is messy but I couldn't see a better way of doing it when you can't assume that you know the exact structure of the input XML.
2014-11-25 23:21:38 +00:00
Justin Clark-Casey (justincc)
f7ab3e20bc Add regression test TestPostAssetRewrite() to check results of HGAssetMapper.Post() object asset rewriting, 2014-11-25 23:21:38 +00:00
Justin Clark-Casey (justincc)
dacd0ecfee minor: Remove unused field from EntityTransferModule 2014-11-25 23:21:37 +00:00
Justin Clark-Casey (justincc)
fc878a33ed refactor: consistently put all test classes in the OpenSim.Tests.Common package rather than some in OpenSim.Tests.Common.Mock
the separate mock package was not useful and was just another using line to always add
2014-11-25 23:21:37 +00:00
Justin Clark-Casey (justincc)
458ccd26ff Use Scene or IEntityTransferModule directly in HGEntityTransferModule instead of casting or re-obtaining module.
This code originates from when IEntityTransferModule was shared rather than one per region.
Now it's one per region we know that callers are always in the same scene as the module.
2014-10-08 23:16:01 +01:00
AliciaRaven
8d4c1945c2 HG Restricted appearance checking code is only called when HG teleporting via the map but bypassed completely when teleporting via landmarks. This fixes this by including a call when acting on landmarks. Does not affect local grid teleports as flags are checked. 2014-10-08 23:04:19 +01:00
Justin Clark-Casey (justincc)
57e75d7c03 Do not add attachments to the region scene object backup list.
Attachment persistence is not handled in this way and this just results in a load of busy work until a check in each SOG terminates a backup check for attachments anyway.
2014-10-02 22:30:44 +01:00
Diva Canto
763c22b28e Improve on the last commit to InventoryArchiver: put back the original constructor (3rd party modules use it), change order of new parameters to make it more consistent. 2014-09-28 16:10:32 -07:00
AliciaRaven
5bc3bbbcf3 Add an event callback for loading IAR files. The callback for creating them already existed but not for loading. This is of interest for use by region modules. Also includes reporting numbers of items saved and items filtered to the completed log printout. 2014-09-23 00:04:53 +01:00
Justin Clark-Casey (justincc)
f132f642b2 On code section that rezzes single objects and attachments, reduce CPU use by reading asset XML a single time with a stream reader rather than multiple times.
Reading large XML documents (e.g. complex attachments) is CPU expensive - this must be done as few times as possible (preferably just once).
Reading these documents into XmlDocument is also more resource intensive than using XmlTextReader, as per Microsoft's own publication "Improve .NET Application Performance and Scalability"
Optimization of other cases will follow if this change is successful.
2014-08-28 18:15:33 +01:00
Justin Clark-Casey (justincc)
91e1aaa5d4 On teleport to a region that already has a child agent established (e.g. a neighbour) don't resend all the initial avatar and object data again.
This is unnecessary since it has been received (and data continues to be received) in the existing child connection.
2014-08-15 21:47:34 +01:00
Justin Clark-Casey (justincc)
3654ae8d8c Allow the "debug scene set physics false|true" command to work when bulletsim physics is running in a separate thread.
This will also allow the "disable physics" setting in the region debug viewer dialog to work in this circumstance.
2014-07-29 01:21:15 +01:00
Oren Hurvitz
4804edf77f Allow reading the BulletSim detail log while the sim is running 2014-07-21 09:27:57 +01:00
Michael Cerquoni
e455374a4b fix all instances of "non-existant" to "non-existent" (spelling mistakes) thanks Ai Austin for pointing this out. 2014-07-17 09:37:24 -04:00
Diva Canto
dac8703949 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2014-07-04 15:56:32 -07:00