Commit Graph

19165 Commits (dac8edd5dddb5f3d2a2447fb479144429e32ea68)

Author SHA1 Message Date
Oren Hurvitz a3bed1fbcb Report "Script Execution Time" as the time spent executing the script in the last 30 seconds. Use a sliding window to calculate this.
Notes:
- This metric provides a better indication of which scripts are taking up a lot of CPU (and therefore should be optimized).
- Previously the execution time was reset to 0 in every new measurement period, causing the reported time to fluctuate for no reason. This has been fixed by using a sliding window.
2015-08-11 08:42:26 +01:00
Oren Hurvitz 287096d826 Improved calculation of Script Execution TimeStarted
1. Use a Stopwatch (a high-resolution timer)
2. Whenever we start a new measurement period, zero out the total execution time (previously it just kept accumulating)
3. Changed the measurement period from 30 minutes to 30 seconds. This is much more useful in the "Top Scripts" dialog, as it shows currently active scripts
2015-08-11 07:35:41 +01:00
Oren Hurvitz 20af31f18e Fixed mistakes related to confusion between Environment.TickCount (milliseconds) and TimeSpan.TicksPerXXX (10000 x milliseconds) 2015-08-11 07:35:40 +01:00
Oren Hurvitz 4c6fb9fb64 Log scripts that have processed many events: this is probably an indication of a problem 2015-08-11 07:35:39 +01:00
Oren Hurvitz aadd5627fe Removed unused code that checked wait_timeout in MySQLEstateData 2015-08-11 07:35:39 +01:00
Oren Hurvitz 7457173fe4 Fixed calling "debug xengine log" without the 'level' parameter: this should show the current log level; not crash 2015-08-11 07:35:38 +01:00
Oren Hurvitz c8135834db Prevent a crash if "debug jobengine log" is entered without a log level 2015-08-11 07:35:37 +01:00
Oren Hurvitz 4ad1468165 Better handling of invalid XML: a) prevent infinite loop on EOF; b) better logging
If the XML was truncated for some reason then ExecuteReadProcessors() would get into an infinite loop, using high CPU. Now it detects EOF (and several other error cases) and aborts.

The rest of the changes just improve logging of XML in case of errors, so that we can see what the bad XML is.
2015-08-11 07:35:37 +01:00
Oren Hurvitz 373455a6fa Fixed mistakes in string format specifiers (e.g., "{0)" instead of {0}") 2015-08-11 06:16:23 +01:00
Robert Adams fe37cb9990 BulletSim: rearrange code and add different locking to eliminate chances
of race conditions and, especially, race conditions when an object is
removed and quickly re-added to a scene.

This hopefully reduces the occurance of problems when avatars TP within
a region -- the main problem being the loss of collisions.
2015-08-09 15:36:50 -07:00
Robert Adams fe86df0ec9 BulletSim: update the motion actors so they completely clean themselves
when Dispose() is called. This reduces chance of object leakage when
    destroying objects.
Rearrange initialization and shut down of BSActorLockAxis so it is
    consistant with other actors.
2015-08-09 15:34:06 -07:00
Kevin Cozens f3c883a26d Corrected spelling of SQLITE. Fixes mantis #7675. 2015-08-08 17:08:06 -04:00
Diva Canto d9a9f6f43b Convert the enum to int before casting it to string for DB query 2015-08-08 13:47:42 -07:00
Diva Canto 2c9ffc2a87 Fixed failing test 2015-08-08 12:56:52 -07:00
Diva Canto 959872315f WARNING: massive refactor to follow libomv's latest changes regarding inventory folders. The newest version of libomv itself is committed here. Basically, everything that was using the AssetType enum has been combed through; many of those uses were changed to the new FolderType enum.
This means that from now on, [new] root folders have code 8 (FolderType.Root), as the viewers expect, as opposed to 9, which was what we had been doing. Normal folders are as they were, -1. Also now sending folder code 100 for Suitcase folders to viewers, with no filter.
All tests pass, but fingers crossed!
2015-08-08 12:12:50 -07:00
Oren Hurvitz 2153a01cc7 Have osAvatarName2Key check the cache first, even for foreign users
Another change: removed the second call to userManager.AddUser(). UserManagementModule won't modify an existing record.
2015-08-07 11:34:52 +03:00
Cinder f218cbd29d max-agent-groups support
Robust now tells viewers what the maximum number of groups is. Viewers show this limit to the users, and enforce it.

The default is 42, which is what viewers had assumed was the maximum number before this update.

Signed-off-by: Oren Hurvitz <orenh@kitely.com>
2015-08-07 07:42:26 +01:00
Robert Adams 5a1279af8a BulletSim: clean up some code for axis locking. No functional change. 2015-08-06 21:48:50 -07:00
Robert Adams f0417c5d50 BulletSim: rearrange code and add some tests to try and resolve the
initialization race conditions reported in Mantis 6792.

When a region is initializing it seems that the prim initialization code
can be interrupted part way through then taints are processed for
prims that are not completely there.
2015-08-06 19:57:32 -07:00
Christopher 86c426e587 create osGetAvatarHomeURI
Signed-off-by: Melanie Thielker <melanie@t-data.com>
2015-08-04 18:09:13 +02:00
Christopher b5be5ca490 Make osAvatarName2Key() able to get names from unknown HG users
Signed-off-by: Melanie Thielker <melanie@t-data.com>
2015-08-04 18:08:54 +02:00
Oren Hurvitz c4f8630968 In the AgentCircuitData of HG users, set the last name to include the port
E.g., instead of "first.last @grid.example.com", the name is now "first.last @grid.example.com:8002"
2015-08-03 16:25:45 +03:00
Oren Hurvitz dc098ef671 Merged the two "Version 2" migrations in PGSQL 2015-08-03 15:34:59 +03:00
Geir Nøklebye 818735ae2c PGSL Presence migration to correct a double version 2 migration that existed
The migration file had a version 2 migration defined twice and
therefore the LastSeen field most likely never was defined in the
presence file. This migration adds the field and migrates the table to
version 4.

Signed-off-by: Oren Hurvitz <orenh@kitely.com>
2015-08-03 13:32:11 +01:00
Oren Hurvitz 5a59a6d445 Removed unused variable 2015-08-03 15:31:48 +03:00
Robert Adams fdb7a804fc Add an option to processes physics collisions using FireAndForget.
Off by default but set with [Startup]ShouldUseFireAndForgetForCollsions=true

There is a problem with physics colliions sometimes stopping. One suspicion
is that the long callback path from the physics engine into the script engine
is causing problems. Enabling this feature passes the collision into the
script engine on a separate thread and not the main simulation thread.
Tester can enable this and see if the collsions stay around. If they still
fail, this commit should be reverted and another solution looked for.
2015-08-02 22:31:53 -07:00
AliciaRaven ce62824b1f Add HGFSAssetService to the HypergridService to provide HG support for FSAssets. 2015-08-02 20:02:36 +01:00
Christopher bccf785665 osKey2Name returns now correct values for HG users who are not on the region.
Signed-off-by: Oren Hurvitz <orenh@kitely.com>
2015-08-02 09:17:50 +01:00
Diva Canto c8cd2f18f5 Mantis #7657: similar fixes for FSAssets. 2015-08-01 20:27:04 -07:00
Diva Canto e5a1243abc Mantis #7657 and #7514. This should alleviate the problem of bad object assets being passed around via HG and archives. No guarantees that all the leaks have been found, but at least it detects and fixes these bad assets upon:
(1) storing and getting assets over HG -- assuming the core HG asset service is being used (not the case with OSGrid!)
(2) importing assets via OAR and IAR

Instantiation of bad assets now should also work, instead of producing an exception, but the bad assets themselves aren't being fixed in the DB. That should be done with a cleaning tool -- see Perl script in Mantis #7657.

Virus!
2015-08-01 18:58:05 -07:00
Diva Canto 32d87aa168 Mantis #7664: Added IHypergridLinker interface to establish a contract about what implementers need to provide publicly. This is used by 3rd-party addons such as Wifi. 2015-08-01 09:30:34 -07:00
Cinder 368ea78d14 Show last online status of group members from the PresenceService in group profiles
Signed-off-by: Oren Hurvitz <orenh@kitely.com>
2015-07-31 17:19:13 +01:00
Oren Hurvitz 14b4d8bad7 Eliminated several warnings 2015-07-31 18:13:39 +03:00
Oren Hurvitz 149cb8dcbc XMLRPCModule now actually aborts the worker thread when requested 2015-07-31 18:13:23 +03:00
Geir Nøklebye 1de8c3570d PGSQL migrations for IM_Store, UserProfiles, removal of casting exception for UserProfiles and adding double precision to PGSQL Manager
PGSQL migrations for IM_Store, UserProfiles, removal of casting
exception for UserProfiles and adding double precision to PGSQL Manager.

Fixes the Offline IM to Email toggle and prepares for fixing Offline
IM.

Signed-off-by: Oren Hurvitz <orenh@kitely.com>
2015-07-31 15:57:22 +01:00
Oren Hurvitz e979a7e7f0 Fixed bad log message
This fixes http://opensimulator.org/mantis/view.php?id=7661
2015-07-31 17:55:09 +03:00
Oren Hurvitz 8aa75f225b Fixed bug introduced in 4735514. The project didn't compile. 2015-07-26 14:09:17 +03:00
Geir Nøklebye a7fccbcf6f Update PGSQL groups handler to accept search queries from the viewer
Update PGSQL groups handler to accept search queries from the viewer.
Fixed malformed query strings.

Signed-off-by: Oren Hurvitz <orenh@kitely.com>
2015-07-26 11:59:15 +01:00
Quill Littlefeather 4735514a88 Fixed not being charged to create classifeids on money enabled regions
Signed-off-by: Melanie Thielker <melanie@t-data.com>
2015-07-26 02:31:31 +02:00
Oren Hurvitz 83da582261 Removed unused code related to DNS lookups 2015-07-23 14:50:50 +03:00
Melanie Thielker 7342192223 Add quotes aroung LandFlags as PGSQL seems to choke on the word when
it's bare.
2015-07-23 01:59:33 +02:00
Oren Hurvitz 43c8e2396e Added locking to HypergridLinker, to prevent problems if multiple linking requests for the same region are handled simultaneously 2015-07-22 20:39:30 +03:00
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
Robert Adams 8cc7433d68 BulletSim: fix cut-and-paste typo in constraint frame setting.
This code is in the XNA module so it does not affect the normal
Bullet configuration .
2015-07-21 20:11:59 -07:00
AliciaRaven 297d31b1c2 Prevent two maptiles being generated at startup, one for v1 and another for v2-3 service. * v1 Service (WorldMapModule) is called directly by scene on startup. This patch moves the initial map registration of the v2-3 service (MapImageServiceModule) to that point so they can share the bitmap instead of doubling the work of Warp3D and exasperate its memory leak issues.
Signed-off-by: Michael Cerquoni <nebadon2025@gmail.com>
2015-07-21 15:11:47 -04:00
Melanie Thielker c7f6e248e8 Correcting errors in previous change: MySQL needs int unsigned, not
unsigned int. PGSQL has no unsigned types, changing to bigint.
2015-07-14 21:22:53 +02:00
Melanie Thielker 7b571a928c Mantis #7629: Change LandFlags column to unsigned. Thanks, Jim! 2015-07-14 21:16:25 +02:00
AliciaRaven 248c0e18de Prevent multiple instances of the FSAssets service causing problems. Protect against secondary instances registering duplicate console commands Also prevents multiple instances each starting a writer thread which will cause major file access exceptions as they fight over the contents of the spool directory.
Signed-off-by: Melanie Thielker <melanie@t-data.com>
2015-07-13 19:04:33 +02:00
Oren Hurvitz e174dc87fb Fixed the whitespace in Scene.cs
The whitespace in this file was fubared recently
2015-07-13 12:37:18 +03:00
AliciaRaven f3f748ed11 Bringing FSAssets more inline with current OpenSim standards. * If no connection string found in assets config, fallback to using default database config * Create database storage interface to allow other db connectors to be written at some point * Add MySQL migrations file to create the initial db table * Added new config option named DaysBetweenAccessTimeUpdates to reduce db load by only updating access times when fetching assets if the last access time was over the threshold. This idea was taken from XAssets service. * Change log message headers to indicate FS assets is the source not just assets
Signed-off-by: Melanie Thielker <melanie@t-data.com>
2015-07-12 04:03:08 +02:00
Melanie Thielker c59144ff13 More cleanup, add missing refs to prebuild, remove refs to stuff not
used. Will NOT compile.
2015-07-11 19:27:19 +02:00
Melanie Thielker a343c07d12 Some cleanup, add prebuild project, correct path 2015-07-11 19:21:32 +02:00
Melanie Thielker 2672637202 Rename for uniformity, add data module 2015-07-11 19:10:39 +02:00
Melanie Thielker db62e1ac3c Add main FSAssetsService 2015-07-11 19:07:42 +02:00
Melanie Thielker 987e7e4f84 Applying Gavin Hird's patch to correct PGSQL group notices. Thatk you,
Gavin
2015-06-26 19:08:51 +02:00
Robert Adams d750647fb1 BulletSim: fix two compiler warnings.
Mostly code left over from things that are not done that way anymore.
2015-06-25 22:02:12 -07:00
Diva Canto 0e401238e7 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2015-06-25 15:02:06 -07:00
Diva Canto c299414d50 Fixed bad-ish code in login patch 2015-06-25 15:01:43 -07:00
Quill Littlefeather 4131fbea0c Changes to Welcome Message sent to clients.
.gitignore                                        |  1 +
 OpenSim/Services/LLLoginService/LLLoginService.cs | 32 +++++++++++++++--------
 1 files changed, 22 insertions(+), 11 deletions(-)

Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-25 14:53:51 -07:00
dahlia 3aa9e786de Thanks Gavin Hird for a fix for Mantis 0007604: DeleteClassifiedRecord exception PGSQL 2015-06-24 04:08:34 -07:00
dahlia 2c5a3ff9f0 Thanks Gavin Hird for a fix for an exception when requesting an Estate Ban when using PGSQL. 2015-06-24 03:46:30 -07:00
Diva Canto b5ac0e1ab8 FetchInventoryDescendents2: Signal to the viewer that folder with UUID.Zero is a bad folder. Don't even go to the backend to ask for it, because that will likely kill the sim. Apparently Firestorm requests folder Zero quite often. 2015-06-23 14:24:55 -07:00
Cinder a91f32e2c7 Guard against null AgentPrefs service in llGetAgentLanguage()
Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-21 08:41:37 -07:00
Cinder 7edaf1d851 Add MaxMaterialsPerTransaction to SimFeatures
Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-19 08:44:34 -07:00
AliciaRaven c37315da87 Warp3DImageModule. Reduce workload by not calling to render the root prim twice. When loading prims to draw the map, the Warp3D system first calls to load the root prim, followed by all the prims in the SOG. The initial call to load the root prim is not required because it is also in the parts list. The result of this was that all root prims were being loaded twice.
Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-19 06:56:19 -07:00
Diva Canto 017d2cf417 Bug fix in inventory fetching: sometimes the caps request comes before there is a scene presence, and that's ok. 2015-06-17 15:55:07 -07:00
Diva Canto 4a516fa156 Removed the pgsql table for AgentPrefs, because it is not working. For now the Agent Preferences feature will not work with PGSQL installations -- someone who uses PGSQL needs to send a table that works. 2015-06-14 14:49:20 -07:00
Diva Canto be68f4852c Mantis #7610. Changed AgentPrefs table in PGSQL to use uuid instead of varchar(36), to be consistent with the otehr pgsql tables. Since the first commit on this was yesterday, there's no migration; instead, the version starts at 2. If anyone created the table yesterday, it will be dropped and recreated.
WARNING: untested. (I don't use pg)
2015-06-14 09:30:55 -07:00
Diva Canto f27ce66877 Squooshed a warning that could result in a runtime null pointer exception. It says that code is for debugging, but it was buggy. 2015-06-14 08:18:21 -07:00
Diva Canto 03f142730c Squoosh one more warning 2015-06-14 08:14:09 -07:00
Diva Canto 496f35b4e8 Removing the Store methods in the DB layer of AgentPreferences, as they were simply calling the base ones. 2015-06-14 08:04:25 -07:00
Cinder 3853904b80 Quell three new warnings I introduced with AgentPrefsData, return an empty llsd map instead of an empty llsd block when no AgentPrefs service is available to try and appease Firestorm
Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-14 07:59:25 -07:00
Roger Kirkman 54c1659934 AgentPreferences SQLLite Migration update Mantis #7157
Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-13 22:10:51 -07:00
Cinder 7635138c59 SQLite and PGSQL adapters for AgentPreferences
Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-13 14:53:17 -07:00
Diva Canto 75baf6ce01 Added ':' to debug messages 2015-06-13 14:34:28 -07:00
Cinder d6dc782d75 Add optional GodNames region module
Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-13 14:31:49 -07:00
Cinder 044654b5a9 Guard against scenes without an agent prefs service and a copy and paste fix
Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-13 13:37:08 -07:00
Diva Canto 7f1a73cbda Fixed indentation 2015-06-13 10:27:48 -07:00
Diva Canto bcb8a7d7f9 A few bug fixes for Agent Preferences to actually work. Also added missing config for standalone. 2015-06-13 08:36:06 -07:00
Cinder 0fa94f222d Refactor AgentPreferences so that database operations happen centrally. the opensim way.
Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-13 07:27:42 -07:00
Cinder c1ddb7f05e Relicense AgentPreferences files to BSD and OpenSimulator
Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-13 07:27:26 -07:00
Cinder 6f71d5c2c6 Support for Linden AgentPreferences capability and friends (UpdateAgentLanguage and UpdateAgentInformation) and Mantis #7157
Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-13 07:27:01 -07:00
dahlia 58972f65ac SceneObjectPart.UpdateLookAt() now uses corrected libomv quaternion functions. 2015-06-10 01:26:38 -07:00
Diva Canto a83d2247d4 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2015-06-09 13:22:24 -07:00
Diva Canto b931f393a8 Avoid registering console commands in every single instance of GridUserService running on the same process. Only one registers them now. 2015-06-09 13:21:41 -07:00
Robert Adams 81ef7b586e Address Mantis 7592 (http://opensimulator.org/mantis/view.php?id=7592) by
disabling terrain patch sending by view distance for legacy sized regions.

The problem seems to be that people expect adjacent legacy sized regions
to just display like they always have. Limiting displayed terrain is
complicated by the camera position not being updated in child regions.
2015-06-06 07:09:20 -07:00
H-H-H 0c5facbd75 Typo Fix
Signed-off-by: Diva Canto <diva@metaverseink.com>
2015-06-05 16:48:16 -07:00
Diva Canto c4efeb0f7c Upgraded the Simian inventory connector with an item cache, too, so that it doesn't get awfully out of sync with the improvements I'm making to the robust service connectors, which are being fully leveraged by the simulator. This Simian connector needs more love... 2015-06-05 11:46:13 -07:00
Diva Canto 96f0c6f074 More on mantis #7567. Two things:
- Increase the inventory cache timeout to 20 secs, so that the items will still be there when they are needed by the sim for rezzing
- Before rezzing attachs, make a call to GetMultipleItems so to fetch them all at the same time
2015-06-05 10:07:50 -07:00
Diva Canto cc22d81b4d The only purpose of this commit is to remove an erroneous comment. It turns out that rezzing the attachments is necessary in modern viewers too. Proof: commenting the lines below the comment results in no attachments seen in the avatar. 2015-06-05 09:47:36 -07:00
Diva Canto 52d9ea1cee Mantis #7603 -- bad folders in inventory could produce null pointer exception. Thanks for the line numbers in the exception trace. 2015-06-04 19:57:01 -07:00
Diva Canto 83267e19f6 Mantis #7536. This may alleviate the side effects of broken SceneObjects XML. It doesn't (can't) fix the cause. 2015-06-04 16:17:45 -07:00
Diva Canto 51fccff235 Mantis #7600. The warning message was not a symptom of a problem, it was just that the HG client was trying to fetch folders that aren't in the Suitcase, so that fails. This should make the warning message go away in that situation. (fetching those folders will still fail, because they aren't available over HG) 2015-06-04 15:04:36 -07:00
Diva Canto f63e7ec46f Trivial: fix copy-paste typo in string 2015-06-04 09:30:41 -07:00
Diva Canto 2fff376762 More assertions in inventory client tests to check for assorted combinations of cached/non-cached/existing/non-existing items 2015-06-04 09:17:12 -07:00
Diva Canto 6f469ec0a5 Added tests that verify the absence of the bug fixed in the previous commits (cache issues). 2015-06-04 08:52:57 -07:00
Diva Canto a433a40980 Making the inventory cache static, so that there's less timers. 2015-06-04 07:10:06 -07:00
Diva Canto ea5aa82c2c Mantis #7567. Once again, avoiding prefetching linked items within linked folders. Also fixing the inventory connector GetMultipleItems, so that if everything is in the cache, it returns successfully rather than unsuccessfully. 2015-06-04 06:58:07 -07:00
Diva Canto bac53387a9 Mantis #7567: added an 8-sec expiring item cache to the inventory network connector. This fixed the problem on my local test grid and generally made things faster. This cache has been needed for a while... there are many parts in the code where the sim gets an item multiple times in a short amount of time (rezzing attachs and objects, for example).
Other minor changes:
- added the scene as a parameter to the constructor od FetchInvDescHandler, so that I could see in which scene the handler was being called
- brought linked items in linked folders back to being prefetched
2015-06-03 17:42:41 -07:00
Diva Canto 3141664d6b I suspect the viewer doesn't need the target of linked items inside linked folders to go in the reply of the original request. At least my tests indicate that. Pushing this out, so that others who use linked folders a lot more can verify. 2015-06-02 16:31:56 -07:00