Commit Graph

17018 Commits (65d838da00692daf9b38f2de714ea637e143c0e7)

Author SHA1 Message Date
Justin Clark-Casey (justincc) 65d838da00 Update parent inventory folder version numbers when folders are moved/created/deleted to match version numbers cached by viewers.
This is done in the way that one would expect (e.g. moving a folder increments version number on both source and destination parent folders).
This should hopefully improve viewer reuse of its cached inventory information.
Currently MySQL only but will be implement for SQLite/MSSQL if there are no issues.
2012-11-13 04:47:17 +00:00
Justin Clark-Casey (justincc) c8ff599544 Add System.Core reference to OpenSim.Data.MySQL DLL, which is necessary to use LINQ 2012-11-08 22:05:37 +00:00
Justin Clark-Casey (justincc) 10a12b10d5 Update folder version numbers when moving items and making the Delete(string[], string[]) call (not just string, string).
This is to stop viewer inventory cache version numbers becoming out of sync with grid stored numbers when viewer performs these actions.
If there are no problems with these changes, they will be propogated to SQLite (and MSSQL if that's simple enough).
May also need to do the same on folder store/create/delete and maybe propogate version increments up the folder hierarchy, but that requires investigation.
2012-11-08 22:00:44 +00:00
Justin Clark-Casey (justincc) baddfa08f3 Increment version number of a folder when an object it contains is deleted.
Not doing this was allowing the viewer inventory cache to become out of sync if an item was directly deleted.
2012-11-08 22:00:36 +00:00
Justin Clark-Casey (justincc) f6aa262585 Lock GDI+ portion og VectorRenderModule.GetDrawStringSize() to prevent concurrent thread use provoking mono crashes.
Same rationale as commit 13690582.
2012-09-28 01:56:25 +01:00
Justin Clark-Casey (justincc) 2cc7a89012 Fix usage statement on "debug http" console command since max level is now 5 rather than 3 2012-09-13 00:20:38 +01:00
Justin Clark-Casey (justincc) 108e77fe1a Fix bug in logging sample input at debug http level 4.
Also converts newlines to "\n" text.
2012-09-13 00:20:31 +01:00
Justin Clark-Casey (justincc) 97b1b309ce minor: Comment out friends notification log spam for now. 2012-09-13 00:20:21 +01:00
Justin Clark-Casey (justincc) 53839ac779 Make "show http-handlers" command available for ROBUST instances as well as the simulator executable. 2012-09-13 00:20:09 +01:00
Justin Clark-Casey (justincc) 4efcf38e17 Add levels 4 and 5 to "debug http" console command that will log a sample of incoming request data and the entire incoming data respectively.
See "help debug http" for more details.
2012-09-13 00:20:01 +01:00
Justin Clark-Casey (justincc) 639d147231 Add missing DynamicTexture.cs file from last commit 2012-09-13 00:19:45 +01:00
Justin Clark-Casey (justincc) a53f90cf7a If reusing dynamic textures, do not reuse small data length textures that fall below current viewer discard level 2 thresholds.
Viewer LL 3.3.4 and before sometimes fail to properly redisplay dynamic textures that have a small data length compared to pixel size when pulled from cache.
This appears to happen when the data length is smaller than the estimate discard level 2 size the viewer uses when making this GetTexture request.
This commit works around this by always regenerating dynamic textures that fall below this threshold rather than reusing them if ReuseDynamicTextures = true
This can be controlled by the [Textures] ReuseDynamicLowDataTextures config setting which defaults to false.
2012-09-13 00:19:39 +01:00
Justin Clark-Casey (justincc) e0a3a8d47b If the GetTexture capability receives a request for a range of data beyond that of an otherwise valid asset, return HTTP PartialContent rather than RequestedRangeNotSatisfiable.
This is because recent viewers (3.2.1, 3.3.4) and probably earlier ones using the http GetTexture capability will sometimes make such invalid range requests.
This appears to happen if the viewer's estimate of texture sizes at discard levels > 0 (chiefly 2) exceeds the total texture size.
I believe this does not normally happen but can occur for dynamic textures with are large but mainly blank.
If this happens, returning a RequestedRangeNotSatisfiable will cause the viewer to not render the texture at the final resolution.
However, returning a PartialContent (or OK) even with 0 data will allow the viewer to render the final texture.
2012-09-13 00:19:26 +01:00
Justin Clark-Casey (justincc) 7ce30cc49e Make ReuseDynamicTextures an experimental config setting in [Textures]. Default is false, as before.
If true, this setting reuses dynamically generated textures (i.e. created through osSetDynamicTextureData() and similar OSSL functions) where possible rather than always regenerating them.
This results in much quicker updates viewer-side but may bloat the asset cache (though this is fixable).
Also, sometimes issue have been seen where dynamic textures do not transfer to the viewer properly (permanently blurry).
If this happens and that flag is set then they are not regenerated, the viewer has to clear cache or wait for 24 hours before all cached uuids are invalidated.
CUrrently experimental.  Default is false, as before.
2012-09-13 00:19:12 +01:00
Justin Clark-Casey (justincc) 6c36471f0c If the compile-time DynamicTextureModule.ReuseTextures flag is set, check metadata still exists for any reused asset in case some other process has removed it from the cache. 2012-09-13 00:19:05 +01:00
Justin Clark-Casey (justincc) a100723aaf Renaming existing 'torture' tests to 'performance' tests instead, since this better matches what they really do.
nant target name changes to test-perf instead of torture, to match test-stress
still not run by default
2012-09-13 00:18:56 +01:00
Justin Clark-Casey (justincc) 69dc9b89a2 Add VectorRenderModuleStressTests that contains a long running test that generates thousands of vector textures concurrently.
Intended for use if there are future issues with mono crashes whilst generate dynamic textures.
This test is triggered via a new test-stress nant target.
Not run by default.
2012-09-13 00:18:48 +01:00
Justin Clark-Casey (justincc) c0d68d0aa4 Add experimental DynamicTextureModule.ReuseTextures flag, currently only configurable on compile.
Disabled (status quo) by default.
This flag makes the dynamic texture module reuse cache previously dynamically generated textures given the same input commands and extra params for 24 hours.
This occurs as long as those commands would always generate the same texture (e.g. they do not contain commands to fetch data from the web).
This makes texture changing faster as a viewer-cached texture uuid is sent and may reduce simulator load in regions with generation of lots of dynamic textures.
A downside is that this stops expiry of old temporary dynamic textures from the cache,
Another downside is that a jpeg2000 generation that partially failed is currently not regenerated until restart or after 24 hours.
2012-09-13 00:18:29 +01:00
Justin Clark-Casey (justincc) ce89bc38e1 Add VectorRenderModule.TestRepeatSameDrawDifferentExtraParams() 2012-09-13 00:18:07 +01:00
Justin Clark-Casey (justincc) a21ee11fe8 Add VectorRenderModuleTests.TestRepeatDrawContainingImage() 2012-09-13 00:18:00 +01:00
Justin Clark-Casey (justincc) 06df03d98a Add VectorRenderModuleTests.TestRepeatDraw() 2012-09-13 00:17:47 +01:00
Justin Clark-Casey (justincc) 2f4181623d Add IDynamicTextureManager.ConvertData() to match AsyncConvertData(). Remove mismatching ConvertStream() where there is no AsyncConvertStream and neither IDynamicTextureManager implementer implements this method. 2012-09-13 00:13:22 +01:00
Justin Clark-Casey (justincc) bbfb501b02 minor: Simplify return of vector render module name and some very minor removal of unncessary syntax clutter 2012-09-13 00:13:13 +01:00
Justin Clark-Casey (justincc) a70baa95d1 Lock disposal of separate gdi+ objects under different threads since this prevents malloc heap corruption seen under Ubuntu 10.04.1 and 11.04 - probably a libcairo issue
In testing, it appears that if multiple threads dispose of separate GDI+ objects simultaneously,
the native malloc heap can become corrupted, possibly due to a double free().  This may be due to
bugs in the underlying libcairo used by mono's libgdiplus.dll on Linux/OSX.  These problems were
seen with both libcario 1.10.2-6.1ubuntu3 and 1.8.10-2ubuntu1.  They go away if disposal is perfomed
under lock.
2012-08-22 23:09:33 +01:00
Justin Clark-Casey (justincc) ed99017271 Tighten up OpenSim.Framework.Cache locking to avoid race conditions.
This is to resolve a reported issue in http://opensimulator.org/mantis/view.php?id=6232
Here, the land management module is using OpenSim.Framework.Cache (the only code to currently do so apart from the non-default CoreAssetCache).
2012-08-21 22:23:34 +01:00
Justin Clark-Casey (justincc) 061c748b75 Add --force flag to "kick user" console command to allow bypassing of recent race condition checks.
This is to allow a second attempt to remove an avatar even if "show connections" shows them as already inactive (i.e. close has already been attempted once).
You should only attempt --force if a normal kick fails.
This is partly for diagnostics as we have seen some connections occasionally remain on lbsa plaza even if they are registered as inactive.
This is not a permanent solution and may not work anyway - the ultimate solution is to stop this problem from happening in the first place.
2012-08-21 22:23:04 +01:00
Justin Clark-Casey (justincc) c4645a899f Add information to ThreadStackSize about possibly increasing if suffering StackOverflowExceptions during script conversion/compilation (e.g. on Windows 64-bit) 2012-08-21 22:15:17 +01:00
Justin Clark-Casey (justincc) c223ac6929 minor: Make xengine debug message on script load a scripting loading message instead.
This is more useful if compilation fails due to an uncatchable exception since we know what was being compiled.
2012-08-21 22:14:56 +01:00
Melanie 7e287227a4 Release http-in URLs when llResetScript is called 2012-08-21 22:12:48 +01:00
Justin Clark-Casey (justincc) d4470c6147 Fix the recent windows compile error by putting newFont for case "R" in VectorRenderModule inside its own context, rather than disposing of the old font before using it as a prototype for the new. 2012-08-21 22:11:53 +01:00
SignpostMarv c14f983cca attempting to fix a build issue
Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
2012-08-21 22:11:39 +01:00
Justin Clark-Casey (justincc) 8a78d0f974 Delete old blank SOGSpamTest 2012-08-21 22:09:00 +01:00
Justin Clark-Casey (justincc) f35e94f168 Properly dispose of all GDI+ entities used in VectorRenderModule for dynamic textures.
The convention is that if an object implements IDiposable() the code must explicitly call Dispose() or call it via the using statement.
This may be particularly important for GDI+ objects since they encapsulate native code entities.
2012-08-21 22:08:49 +01:00
Justin Clark-Casey (justincc) 0e9e60d55a Remove duplicated IScenePresence.PresenceType. This is already in ISceneAgent.PresenceType from which IScenePresence inherits.
No other code changes required.
2012-08-21 22:06:31 +01:00
Justin Clark-Casey (justincc) f6a7325961 Add information about each column to "show queues" region console command help. 2012-08-21 22:00:38 +01:00
Justin Clark-Casey (justincc) ed63cafa65 Extend region console "show queues" command to show already collected time since last packeted received by the simulator from a viewer. 2012-08-21 22:00:31 +01:00
Justin Clark-Casey (justincc) 092e94035b Backport fix of inventory skeleton fetch from XInventoryServicesConnector.
This is not used by login if the inventory service and login service are housed in the same ROBUST instance (which is the default config)
2012-08-02 01:55:44 +01:00
Justin Clark-Casey (justincc) fa3ebd85c9 minor: Comment out noisy ScriptTaskInventory Request log message 2012-08-02 01:36:37 +01:00
Justin Clark-Casey (justincc) 08a9b01123 Fix a bug in pCampbot grabbing behaviour where an exception would be thrown if the bot was not yet aware of any objects. 2012-08-02 01:35:31 +01:00
Justin Clark-Casey (justincc) 5772d23ff6 Look up the NPC module when the SensorRepeat class is created, rather than on every single sensor sweep. 2012-08-02 01:34:53 +01:00
Justin Clark-Casey (justincc) 1d0ff7da2a Resolve a deadlock between INPCModule and SensorRepeat by replacing the SensorRepeat list with a new list on add/removes rather than locking it for the duration of the sensor sweep.
A deadlock was observed today where NPC removal on a script thread would lock the NPC list and then try to lock the sensor list via scripted attachment removal.
Concurrently, the sensor sweep thread would lock the sensor list and then try to lock the NPC list to check NPC status.
This commit resolves the deadlock by replacing the sensor list on update rather than locking it for the duration of the sweep.
2012-08-02 01:30:35 +01:00
Justin Clark-Casey (justincc) ec063b9088 Fix bug in SoundModule.TriggerSound() where every sound update to an avatar would base its gain calculation on the previous avatar's gain, instead of the original input gain.
This was making sound attenuate oddly when there were NPCs in the region, though it could also happen with ordinary avatars.
2012-08-02 01:30:27 +01:00
Justin Clark-Casey (justincc) 12fbfb6125 If we're fetching active gestures via the XInventoryServiceConnector, then properly look at the ITEMS dictionary already returned rather than the level above this. 2012-08-02 01:30:17 +01:00
SignpostMarv 272cd9886d adding asset cache and map tile directories to .gitignore 2012-08-02 01:29:22 +01:00
Justin Clark-Casey (justincc) 627cfe6678 Remove the LandGeom checks in OdeScene - these are pointless since LandGeom is always IntPtr.Zero and contacts returned always have a valid geometry.
Possibly this was for a feature that was never implemented or was otherwise removed.
Thanks to SignpostMarv for the spot of the warning that shows this parameter was never changed.
2012-08-02 01:28:21 +01:00
Justin Clark-Casey (justincc) aac4d9d682 Fix issue where RegionCombinerModule was not removing regions from its dictionary on RemoveRegion(), causing a later issue if regions were restarted (removed then readded). 2012-08-02 01:27:17 +01:00
Justin Clark-Casey (justincc) 25d39a19e1 When copying items, copy the item description field instead of the asset description field.
If we copy the asset description then we will only ever replicate the very first description, if there was one, not any subsequent changes.
Thanks to Oren Hurvitz of Kitely for this patch from http://opensimulator.org/mantis/view.php?id=6107
I have adapted it slightly to change the order of arguments (name before description rather than vice-versa) and slightly improve some method doc.
2012-08-02 01:27:03 +01:00
Justin Clark-Casey (justincc) 55d383e4be Add MemoryWatchdog class missing from git master a1e9964 2012-08-02 01:19:01 +01:00
Justin Clark-Casey (justincc) b180fdd0fd Correct churn stat from MB/s from KB/s 2012-08-02 01:18:48 +01:00
Justin Clark-Casey (justincc) cc6b2fdb9f Add experimental "OpenSim object memory churn" statistics to output of region console "show stats" command
This aims to capture the amount of memory that OpenSim turns over whilst operating a region.
This memory is not lost - apart from leaks it is reclaimed by the garbage collector.
However, the more memory that gets turned over the more work the GC has to do to reclaim it.
2012-08-02 01:13:58 +01:00