aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules (follow)
Commit message (Collapse)AuthorAgeFilesLines
* refactor: Move methods to start a monitored thread, start work in its own ↵Justin Clark-Casey (justincc)2014-11-2510-14/+14
| | | | | | | | 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
* Fix bug in HG attachment throttling code where attachments were never rezzed ↵Justin Clark-Casey (justincc)2014-11-251-55/+63
| | | | | | on any teleport within a foreign grid after the first. Bug was introduced in ghosts branch commit 69abade
* When processing incoming attachments via HG, if a request for uuid gathering ↵Justin Clark-Casey (justincc)2014-11-252-25/+102
| | | | | | | 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.
* Introduce an IteratingUuidGatherer where each fetch from the asset service ↵Justin Clark-Casey (justincc)2014-11-251-3/+16
| | | | | | | (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.
* Add incoming packet async handling engine to queue some inbound udp async ↵Justin Clark-Casey (justincc)2014-11-251-1/+1
| | | | | | | 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.
* Add missing class from recent commit 69abadeJustin Clark-Casey (justincc)2014-11-251-0/+327
|
* Add "show threadpool calls active" console debug command.Justin Clark-Casey (justincc)2014-11-251-2/+6
| | | | | 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.
* Add naive implementation of controlled incoming HG attachments to manage load.Justin Clark-Casey (justincc)2014-11-252-27/+117
| | | | | | | 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.
* Label all threadpool calls being made in core OpenSimulator. This is to add ↵Justin Clark-Casey (justincc)2014-11-2511-15/+19
| | | | | | problem diagnosis. "show threadpool calls" now also returns named (labelled), anonymous (unlabelled) and total call stats.
* Just for now, don't alert the user or log if we couldn't change their ↵Justin Clark-Casey (justincc)2014-11-251-2/+2
| | | | | | | | server-side preferences due to no e-mail address being sent. This is to avoid user confusion in the oscc rehearsal as they are often not aware that this fails because no e-mail is set. Also may be failing in the hypergrid case, though this may also be a config issue. This is meant as a temporary solution.
* When inserting missing CreatorData in the HGAssetMapper, do the rewrite on a ↵Justin Clark-Casey (justincc)2014-11-252-31/+185
| | | | | | | | 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.
* Add regression test TestPostAssetRewrite() to check results of ↵Justin Clark-Casey (justincc)2014-11-251-0/+84
| | | | HGAssetMapper.Post() object asset rewriting,
* Add an IConfigSource constructor to HGAssetBroker so that it can be ↵Justin Clark-Casey (justincc)2014-11-251-0/+7
| | | | instantiated directly for potentially handling some capabilities directly in services with HG active
* minor: remove warnings from unused fields in LocalGridServicesConnectorJustin Clark-Casey (justincc)2014-11-251-2/+2
|
* minor: Remove unused field from EntityTransferModuleJustin Clark-Casey (justincc)2014-11-251-2/+0
|
* refactor: consistently put all test classes in the OpenSim.Tests.Common ↵Justin Clark-Casey (justincc)2014-11-2518-18/+0
| | | | | | 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
* Add 'terrain feature' commandDev Random2014-11-194-2/+353
|
* minor: correct console response when setting attachments logging levelJustin Clark-Casey2014-11-101-1/+1
|
* Actually persist a changed console set agent-limit via "region set".Justin Clark-Casey (justincc)2014-10-311-2/+7
| | | | | Unfortunately, it's not currently easy to do this with "max-agent-limit" - this must be separately set as MaxAgents in region config if it's to persist over restarts.
* Add "region set" console command.Justin Clark-Casey (justincc)2014-10-311-1/+73
| | | | | | This current allows one to set two region parameters agent-limit <int> will set the current root agent limit for the region, as also settable through the viewer, though some impose a max setting (e.g. 100). max-agent-limit <int> will set the maximum allowed root agent limit. This can also be set via the MaxAgent parameter in region config.
* Add "region get" command as a synononym for "show region" console command.Justin Clark-Casey (justincc)2014-10-311-0/+9
| | | | This matches existing similar commands and a soon to be added "region set" command.
* Add hypergrid teleporting support to user profiles picksBlueWall2014-10-271-16/+97
|
* Use Scene or IEntityTransferModule directly in HGEntityTransferModule ↵Justin Clark-Casey (justincc)2014-10-081-8/+7
| | | | | | | 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.
* HG Restricted appearance checking code is only called when HG teleporting ↵AliciaRaven2014-10-081-0/+8
| | | | 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.
* Don't unnecessarily remove from backup objects that were not directly ↵Justin Clark-Casey (justincc)2014-10-022-5/+18
| | | | | | | attached from the scene. These are never in region backup in the first place since recent 11830c43 Extend regression test to check backup status.
* Do not add attachments to the region scene object backup list.Justin Clark-Casey (justincc)2014-10-021-1/+1
| | | | 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.
* Merge branch 'master' of ssh://opensimulator.org/var/git/opensimDiva Canto2014-09-281-0/+1
|\
| * When a prim is bought through BuySellModule, the click action is not changed ↵AliciaRaven2014-09-271-0/+1
| | | | | | | | | | | | back from buy object. This means that after the object is bought, it still appears as if for sale which can be confusing. This sets it back to touch, the default after sale. Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
* | Improve on the last commit to InventoryArchiver: put back the original ↵Diva Canto2014-09-284-12/+25
|/ | | | constructor (3rd party modules use it), change order of new parameters to make it more consistent.
* Fix recent regression with llRegionSayTo() started sending messages twice.Justin Clark-Casey (justincc)2014-09-261-8/+2
| | | | | | Addresses http://opensimulator.org/mantis/view.php?id=7330 Fixed by removing chat delivery to avatar from WorldCommModule.DeliverMessageTo(), in common with existing similar methods that only handle deliver to script listeners. Preserves fixes from http://opensimulator.org/mantis/view.php?id=5005
* Make "generate map" console command also trigger upload to maptiles as well ↵Justin Clark-Casey (justincc)2014-09-262-50/+81
| | | | as asset generation without performing tile generation twice.
* Modifications to previous IAR commits to bring them more inline with ↵AliciaRaven2014-09-233-16/+19
| | | | existing OpenSim code conventions. Also include new IAR save switch in console help print out.
* Add an event callback for loading IAR files. The callback for creating them ↵AliciaRaven2014-09-238-47/+135
| | | | 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.
* Change existing IAR save to use UUID for its callback reference instead of ↵AliciaRaven2014-09-235-17/+17
| | | | Guid. This is for uniformity as discussed on IRC.
* Include same content filters for IAR file exports that already exist for OAR ↵AliciaRaven2014-09-232-0/+54
| | | | files. Adds new console switch --perm=CTM to save iar command.
* For monitoring purposes, start non-timeout tasks (which do not currently use ↵Justin Clark-Casey (justincc)2014-09-056-9/+16
| | | | | | | a threadpool) via Watchdog.RunInThread() rather than Util.RunThreadNoTimeout() The functionality is the same but this allow us to monitor such tasks via "show threads" and abort them for test purposes, etc. Also extends thread names to provide more info (e.g. SendInitialDataToClient says what client the task is for).
* For processing outbound http requests in the XMLRPCModule, start the thread ↵Justin Clark-Casey (justincc)2014-09-041-5/+4
| | | | through Watchdog for monitoring and stat purposes.
* Ignore whitespace when reading serialized XML objects.Justin Clark-Casey (justincc)2014-08-291-17/+1
| | | | | | This was previously effectively being done by XmlDocument in the multiple passes through the XML. This change tells XmlReader to ignore whitespace. This also means changing arguments to use XmlReader instead of XmlTextReader (a descendent of XmlReader) directly. XmlReader.Create() has been the recommend way to create XML readers since .NET 2.0 as per MS SDK and is the only way to specific ignore whitespace settings.
* Fix recent regression test TestDeserializeXmlObjectWithOtherParts() which ↵Justin Clark-Casey (justincc)2014-08-291-1/+1
| | | | was not meant to indent the input xml
* Add regression test for deserializing xml objects with more than one ↵Justin Clark-Casey (justincc)2014-08-291-127/+406
| | | | non-root part.
* On code section that rezzes single objects and attachments, reduce CPU use ↵Justin Clark-Casey (justincc)2014-08-282-2/+5
| | | | | | | | 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.
* Remove race conditions from where SP.AbsolutePosition could change between ↵Justin Clark-Casey (justincc)2014-08-261-7/+4
| | | | the various property checks.
* On teleport to a region that already has a child agent established (e.g. a ↵Justin Clark-Casey (justincc)2014-08-152-3/+3
| | | | | | 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.
* Move the inventory request lock introduced in git master a58152bd to ↵Justin Clark-Casey (justincc)2014-08-091-20/+43
| | | | | | | HGInventoryBroker to preserve that behaviour there but allow 2 simultaneous inv requests (chiefly WebFetch) rather than 1 This lock serialized all requests and made the inventory throttling in WebFetch redundant. By moving this lock, two simultaneous requests may now take place which may help with http://opensimulator.org/mantis/view.php?id=7054
* Fix short help string for show region command.BlueWall2014-08-061-1/+1
|
* OpenSimExtrasBlueWall2014-08-063-129/+17
| | | | Move the experimental extra features functionality into the GridService. This sends default values for map, search and destination guide, plus ExportSupported control to the region on startup. Please watch http://opensimulator.org/wiki/SimulatorFeatures_Extras for changes and documentation.
* Simulator Extra Features ServiceBlueWall2014-07-301-0/+129
| | | | | Provide a means for regions to fetch extra features supported by modern viewers from a central location .
* In TerrainModule, lock m_perClientPatchUpdates when removing entries.Justin Clark-Casey (justincc)2014-07-291-3/+2
| | | | | This may have been the trigger CheckSendingPatchesToClients() dictionary out of sync exceptions in today's load test. Don't need to check ContainsKey() since Remove() returns false on a request to remove a key that it doesn't have
* Allow the "debug scene set physics false|true" command to work when ↵Justin Clark-Casey (justincc)2014-07-292-5/+5
| | | | | | 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.
* Fix recent regression in 3c6becd5 where login or hg login to variable sized ↵Justin Clark-Casey (justincc)2014-07-221-15/+12
| | | | | | | | | regions failed with outdated simulator message. I forgot that a null 'their version' would not be passed over the wire and ends up as an empty string instead (like older simulators). So instead pass through the correct simulator protcol version instead (SIMULATOR/0.3) when querying from login or hg login. Also removes a debug console write for agent limit accidentally left in for the same commit. Relates to mantis 7276