Commit Graph

3358 Commits (e09c8681ad5f6a645ef433e86166795a5c7dd762)

Author SHA1 Message Date
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) 8c9f82b035 Just for now, don't alert the user or log if we couldn't change their 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.
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) 8ddcd16c69 Add an IConfigSource constructor to HGAssetBroker so that it can be instantiated directly for potentially handling some capabilities directly in services with HG active 2014-11-25 23:21:38 +00:00
Justin Clark-Casey (justincc) 93f3444de1 minor: remove warnings from unused fields in LocalGridServicesConnector 2014-11-25 23:21:37 +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
Dev Random d3b43a96fb Add 'terrain feature' command 2014-11-19 18:18:18 +00:00
Justin Clark-Casey 4123b0fdbd minor: correct console response when setting attachments logging level 2014-11-10 23:48:59 +00:00
Justin Clark-Casey (justincc) f084320976 Actually persist a changed console set agent-limit via "region set".
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.
2014-10-31 22:36:08 +00:00
Justin Clark-Casey (justincc) a05be7bd65 Add "region set" console command.
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.
2014-10-31 21:47:12 +00:00
Justin Clark-Casey (justincc) 23fb4f2221 Add "region get" command as a synononym for "show region" console command.
This matches existing similar commands and a soon to be added "region set" command.
2014-10-31 21:47:07 +00:00
BlueWall b463870914 Add hypergrid teleporting support to user profiles picks 2014-10-27 17:27:42 -04: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) 2a9528fa22 Don't unnecessarily remove from backup objects that were not directly attached from the scene.
These are never in region backup in the first place since recent 11830c43
Extend regression test to check backup status.
2014-10-02 22:30:44 +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 4e28a06f3c Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2014-09-28 16:10:57 -07: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 f0218258d1 When a prim is bought through BuySellModule, the click action is not changed 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>
2014-09-27 12:54:00 -04:00
Justin Clark-Casey (justincc) 31c8b7fd1a Fix recent regression with llRegionSayTo() started sending messages twice.
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
2014-09-26 23:35:29 +01:00
Justin Clark-Casey (justincc) 9fcee73326 Make "generate map" console command also trigger upload to maptiles as well as asset generation without performing tile generation twice. 2014-09-26 01:02:19 +01:00
AliciaRaven 1e22091193 Modifications to previous IAR commits to bring them more inline with existing OpenSim code conventions. Also include new IAR save switch in console help print out. 2014-09-23 00:04:59 +01: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
AliciaRaven 08675d44a7 Change existing IAR save to use UUID for its callback reference instead of Guid. This is for uniformity as discussed on IRC. 2014-09-23 00:04:50 +01:00
AliciaRaven 3bde737f76 Include same content filters for IAR file exports that already exist for OAR files. Adds new console switch --perm=CTM to save iar command. 2014-09-23 00:04:45 +01:00
Justin Clark-Casey (justincc) 41f2f3132b For monitoring purposes, start non-timeout tasks (which do not currently use 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).
2014-09-05 23:20:59 +01:00
Justin Clark-Casey (justincc) 73e20b7f5f For processing outbound http requests in the XMLRPCModule, start the thread through Watchdog for monitoring and stat purposes. 2014-09-04 00:22:30 +01:00
Justin Clark-Casey (justincc) 1b75ec5647 Ignore whitespace when reading serialized XML objects.
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.
2014-08-29 19:08:23 +01:00
Justin Clark-Casey (justincc) 3555c0c3f3 Fix recent regression test TestDeserializeXmlObjectWithOtherParts() which was not meant to indent the input xml 2014-08-29 18:14:47 +01:00
Justin Clark-Casey (justincc) 305c3e668a Add regression test for deserializing xml objects with more than one non-root part. 2014-08-29 18:06:29 +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) bafa82eb12 Remove race conditions from where SP.AbsolutePosition could change between the various property checks. 2014-08-26 18:25:14 +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) 8738445eb7 Move the inventory request lock introduced in git master a58152bd to 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
2014-08-09 00:52:51 +01:00
BlueWall 2924d250ab Fix short help string for show region command. 2014-08-06 21:41:53 -04:00
BlueWall 10a8d2852e OpenSimExtras
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.
2014-08-06 17:25:12 -04:00
BlueWall e0d8f42e6b Simulator Extra Features Service
Provide a means for regions to fetch extra features supported by modern viewers from a central location
.
2014-07-30 11:24:39 -04:00
Justin Clark-Casey (justincc) a4107cb6c7 In TerrainModule, lock m_perClientPatchUpdates when removing entries.
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
2014-07-29 23:39:10 +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
Justin Clark-Casey (justincc) 3a87cce2e0 Fix recent regression in 3c6becd5 where login or hg login to variable sized 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
2014-07-22 18:04:28 +01:00
Justin Clark-Casey (justincc) 3c6becd524 On login and first HG entrance to a foreign grid, perform query access checks before proceeding. 2014-07-21 23:53:33 +01:00
Oren Hurvitz 4804edf77f Allow reading the BulletSim detail log while the sim is running 2014-07-21 09:27:57 +01:00
Oren Hurvitz 2d034e20c4 XBakes: store the assets only in the sim's local assets cache; not in the main assets server. Also, some cleanup. 2014-07-21 09:27:56 +01:00
Oren Hurvitz b481711fa6 Added locking in AccessModule to prevent possible errors when shutting down a simulator that has >1 region 2014-07-21 09:19:05 +01:00
Oren Hurvitz 05cacf6eb6 Eliminated common but un-useful log messages 2014-07-21 09:18:20 +01:00
Oren Hurvitz f94b3bbe0f Minor: changed "existant" to "existent" 2014-07-21 09:15:05 +01:00
Oren Hurvitz 99ac770abb Close streams immediately when we finish using them 2014-07-21 08:30:03 +01:00
Robert Adams b81187db5a Set "[Terrain]SendTerrainUpdatesByViewDistance=true" by default.
This, by default, enables terrain patches being sent to each avatar
from the avatar away (rather than the old outside-in pattern), only
sending terrain patches within the avatars view distance (making
view loading quicker), and sending multiple terrain patches per
protocol packet (making terrain loading and editing quicker).
2014-07-20 10:56:52 -07:00
Justin Clark-Casey (justincc) 4dc0aaa03f minor: Add meters unit to water height console display 2014-07-18 23:57:33 +01:00
Justin Clark-Casey (justincc) 1bdf0bed9c Add "show region" command which will show parameters for current region.
This shows static data (e.g. region agent limit) whereas "show scene" shows live data (sim fps, current prims, etc.)
2014-07-18 23:52:49 +01:00
Justin Clark-Casey (justincc) 6048dfcd71 In grid mode, add SuppressConsoleCommands flag to [GridService] so that we can stop misleading grid service only console commands from registering.
We need to do this because the simulator initializes and internal copy of the GridService in grid mode for internal purposes
2014-07-18 22:57:04 +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 869191a51d Small change to my previous commit: not so aggressive on the trigger, please. 2014-07-04 16:28:37 -07:00
Diva Canto dac8703949 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2014-07-04 15:56:32 -07:00
Diva Canto 78c155cd12 Instrument the UDP path of creating assets so that it triggers an asset post for users with different asset servers 2014-07-04 15:56:09 -07:00
Justin Clark-Casey (justincc) 20b47fce07 Still log (but this time with warning rather than an exception) if we regenerate a new child caps seed for a region where we already have one.
I think it's still useful to know this to show up any errors early, but it's reasonable to still carry on rather than throw an exception.
Follow on from Diva's commit 9643792
2014-07-04 22:59:10 +01:00
Diva Canto d99c8e68a7 It turns out that child agent management has had a bug for a while: there was an inconsistency in the scope between opening and closing child agents in neighboring regions. For opening (in EnableChildAgents), the region's DrawDistance was being used; for closing (in IsOUtsideView) , the viewer's (SP) DrawDistance was being used. This fixes this inconsistency, therefore eliminating bugs observed in TPs between, at least, neighboring varregions. 2014-07-04 10:13:53 -07:00
Diva Canto d0782c2bc0 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2014-07-03 20:09:38 -07:00
Diva Canto 9643792b34 Avoid an exception in creating child agents some times. 2014-07-03 20:09:16 -07:00
Justin Clark-Casey (justincc) 889194db63 Actually call Close() for shared region modules when the simulator is being shutdown.
Adds regression test for this case.
2014-07-02 23:49:25 +01:00
Diva Canto ca2379ee83 Bug fix in map teleports in varregions. The cherry was missing from the ice-cream Sunday: the packet itself was hardcoding the size of the region... 2014-06-21 15:38:38 -07:00
Justin Clark-Casey (justincc) 5450b1b024 Change assembly versions to 0.8.1 2014-06-17 18:37:15 +01:00
Diva Canto c5f7184d1b Behavior change: only local users can set home in any parcel of a grid. Setting it for foreign users does not make sense, since cntrl+shift+H always teleports them back to their original grid. 2014-06-15 16:29:25 -07:00
Diva Canto dcd8e74584 Manual change as per patch in mantis #7212. (the patch failed to apply, but the fix was good) Thanks FreakyTech. 2014-06-15 07:26:27 -07:00
Diva Canto fe779128b0 Added simulation version compatibility check so that agents coming from 0.7.6 to a varregion running in 0.8 and above will be denied teleport, rather than be allowed and crash the viewer. 2014-06-06 11:04:53 -07:00
Diva Canto 733763c4e2 Amend to previous commit -- write down the problematic Profile server URL. 2014-06-05 20:06:01 -07:00
Diva Canto 5bb95a8a55 May fix mantis #7133 2014-06-05 18:59:30 -07:00
Robert Adams 0aa0dad478 Send multiple terrain patches per terrain update packet if terrain
draw distance optimization is enabled. Makes terrain editting a lot
snappier.
2014-06-01 19:23:49 -07:00
Diva Canto 3aa99b9a7f Fixes a permissions bug where a user with group powers to always rez was not being given permission to rez on group land. 2014-06-01 16:45:37 -07:00
Diva Canto 94d0ae0d91 This may fix mantis #7200, but I am unable to test because I don't have any old viewers around anymore. 2014-06-01 10:18:53 -07:00
Diva Canto 0eaca7aafb Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2014-06-01 10:06:59 -07:00
Diva Canto 2ff9ea3f80 Fixed a few things pertaining to interfacing with the estate service. Specifically, StoreEstateSettings was not being used anywhere; instead EstatSetting.Save was being called, but that method is a trigger to the DB-layer code directly, which, besides being wrong, was making it impossible to replace the service with a remote connector.
Also added more packing/unpacking code.
2014-06-01 10:06:26 -07:00
Robert Adams 0300ec45eb Modifications to debugging printouts. No functional changes. 2014-05-31 12:19:51 -07:00
Robert Adams 22dade6463 varregion: More tweeking to only sending patches within avatar draw distance.
Still has problems with child avatars.
2014-05-31 12:19:50 -07:00
Robert Adams db5a42ffac varregion: send terrain patches from where the avatar outward if the parameter
[Terrain]SendTerrainUpdatesByViewDistance=true.
This tracks which patches have been sent to each client and outputs the
patches as the avatar moves.
2014-05-31 12:19:49 -07:00
Justin Clark-Casey (justincc) 8656b5e948 Fix bug where setting a parcel in a varregion for sale would make sale bitmap generation in WorldMapModule throw an exception on next startup.
This commit replaces the hardcoded region sizes in WorldMapModule.GenerateOverlay() with numbers pulled from m_scene.RegionInfo
2014-05-30 19:40:10 +01:00
Diva Canto e19c830a6c Fixes a bug where map search results pertaining to varregions would only send the SW-most corner of the varregions; the other areas, when clicked, would result a blue circle, meaning that the viewer didn't know about those areas. This is still not quite right, as all the areas appear to be in the same coordinates, but it's good enough for now. 2014-05-27 10:13:24 -07:00
Diva Canto d2877b9cd4 Don't report NPC presences. 2014-05-26 10:28:31 -07:00
Oren Hurvitz 33cc847c4a When saving an OAR in "Publish" mode, also discard Group information 2014-05-26 15:33:13 +01:00
Oren Hurvitz e68867c9b6 When taking an object into inventory, set the inventory item's "Next Owner" permissions according to the permissions of the items in the object 2014-05-25 15:35:00 +01:00
Diva Canto 227685bea4 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2014-05-23 16:20:04 -07:00
Diva Canto 20f20895cf Adds optional HTTP Basic Authentication to Robust service connectors. 2014-05-23 16:19:43 -07:00
Justin Clark-Casey (justincc) 72c67c5091 Fix possible infinite recursion in MessageTransferModule.SendGridInstantMessageViaXMLRPCAsync() whilst preserving retry lookup behaviour.
This is based on heavily mikemig's original patch in http://opensimulator.org/mantis/view.php?id=7149
but instead of exiting after the first IM delivery failure to presence information retrieved from the presence service
it will retry the lookup until the result matches the previous lookup.
This is to deal with the case where the agent is sent an IM whilst they are teleporting.
2014-05-23 20:14:49 +01:00
Justin Clark-Casey (justincc) f8b8241239 Add regression test for north-south chat across neighbour regions. 2014-05-22 20:28:26 +01:00
Justin Clark-Casey (justincc) bffc9ad184 Extend regression TestInterRegionChatDistanceEastWest() to test out of range chat 2014-05-22 20:04:32 +01:00
Justin Clark-Casey (justincc) 15b50ae737 Extend regression TestInterRegionChatDistanceEastWest() to test in range chat both ways. 2014-05-22 19:55:34 +01:00
Justin Clark-Casey (justincc) 65a135f4d3 Simplify regression TestInterRegionChatDistanceEastWest() by making the child presence connection directly rather than routing through TestClient.
This code isn't relevant to this test and is already exercised by other tests.
2014-05-22 19:47:33 +01:00
Justin Clark-Casey (justincc) 1b156b7fe8 Add regression test for in-range chat between neighbouring regions from east to west. 2014-05-22 19:18:24 +01:00
Diva Canto b7c7293c7a Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2014-05-22 10:16:19 -07:00
Diva Canto f7b2aa0f49 Fixed a problem with detaching attachments in situations where the user's asset server is not the same as the simulator's asset server. Unfortunately this still continues to be wasteful -- new assets are created every time an attachment is detached, but the process of storing the new asset goes through the InventoryAccess module, which does all sorts of checks regarding the users' inventory. 2014-05-22 10:16:01 -07:00
Oren Hurvitz a1b291c889 Allow map searches for regions that contain the characters "!+|"
These characters are used as placeholders for other characters: ": /". But we should search first for the exact string the user entered, and only if that fails then replace the characters and search again.
2014-05-21 07:39:23 +01:00
Oren Hurvitz 47b84875fd Tell QueryAccess explicitly whether the user is coming in via Teleport or Cross, because the permission checks are different.
Previously we used a heuristic of checking if the entry position is 0 to differentiate between Teleport and Cross, but that doesn't work anymore since we've started providing the precise entry position for cross, too. That's required in order to ensure that the user is allowed to enter the parcel that he's walking into.
2014-05-19 11:19:11 +01:00
Oren Hurvitz dd30a29ba0 Return more specific error messages if an attempt to enter a region fails due to permissions (in QueryAccess and IsAuthorizedForRegion) 2014-05-19 11:11:30 +01:00
Oren Hurvitz 882af7195c Better error-handling and logging in case User Profile requests fail 2014-05-19 11:11:06 +01:00
Oren Hurvitz 96e5836b50 When can't rez, show only one error message; not two. And show more specific error messages. 2014-05-19 10:54:27 +01:00
Diva Canto 922f76a3a7 Don't fetch assets from the server when doing simple inventory operations like copy-paste items in inventory. 2014-05-18 07:49:01 -07:00