Justin Clark-Casey (justincc)
6f4a588397
minor test var name tweak
2009-11-05 19:09:32 +00:00
Justin Clark-Casey (justincc)
bae03dfcbd
Merge branch 'master' of ssh://justincc@opensimulator.org/var/git/opensim
2009-11-05 18:53:57 +00:00
Justin Clark-Casey (justincc)
345ddcd0d8
* Escape / character when saving items and folders in an iar so that the loader doesn't barf
2009-11-05 18:53:25 +00:00
Melanie
ec0d5b408a
Change the permissions module to use the friend list cache already in the
...
friends module instead of requesting the entire friends list over the
network each time a prim is touched.
2009-11-05 17:29:52 +00:00
Melanie
b098572525
Remove a spammy debug message from friends list check in the perms module.
...
Replace the integer compares with proper bitflags checking from libOMV.
Friends rights are now functional.
2009-11-05 16:46:39 +00:00
Melanie
83b4b4440b
Patch by revolution, thank you. Mantis #1789 . Implement friends permissions.
...
Applied with major changes. Core functionality commented pending review
for possible rights escalation. No user functionality yet.
2009-11-05 02:09:07 +00:00
Melanie
30a2411e58
Separate folder and item limit for UDP inventory packets. Folder limit is
...
now 6, as before, item limit is 5. This should avoid most, if not
all, oversized packets.
2009-11-04 23:54:19 +00:00
Melanie
a431f346e7
Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim
2009-11-04 23:29:42 +00:00
John Hurliman
a13e25ebbe
Initialize SceneObjectPart.RotationOffset to Quaternion.Identity
2009-11-04 16:19:56 -08:00
John Hurliman
f57a646638
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2009-11-04 16:08:23 -08:00
John Hurliman
ec2ebf2598
Removing EntityBase.Rotation
2009-11-04 16:08:10 -08:00
Melanie
b6ea7c26ac
Refine oversized packet handling as per jhurliman. Reallocate the buffer to
...
actual packet size only for oversized packets.
2009-11-04 23:12:56 +00:00
Melanie
58be90d2b1
Add some length to the backet buffer for packet sending so oversize
...
inventory packets don't make us barf
2009-11-04 22:47:40 +00:00
Justin Clark-Casey (justincc)
9dd5d63495
minor: remove some mono compiler warnings
2009-11-04 19:44:28 +00:00
Melanie
535f4597c1
Add an overload to OutPacket as per jhurliman. Switch hacky workaround
...
for InventoryDescendents to the proper way
2009-11-04 04:36:19 +00:00
Melanie
cfcb5faa4e
Bounce the pacjet items limit back up to 6
2009-11-04 04:09:46 +00:00
Melanie
5bcc02c97b
Prevent autosplitting of inventory descendents packets. Also reduces the
...
number of items per packet to 5 to prevent asserts
2009-11-04 03:56:31 +00:00
Melanie
4d2ecd1236
Correctly set the totall number of descendents in inventory retrieval
2009-11-04 03:07:21 +00:00
Melanie
c72f78215b
Backport the fixes to WebFetchInventoryDescendents to the UDP
...
InventoryDescendents packet. Testing has shown that UDP inventory now
works flawlessly and, unlike CAPS inventory, doesn't download the entire
agent inventory on start. Neither does it incessantly re-request folder
NULL_KEY. Therefore, I have disabled CAPS inventory.
2009-11-04 01:56:19 +00:00
Melanie
00130841db
Remove parallel loading from XEngine, but retain the new design where
...
all scripts are loaded from the same thread, rather than launching a
new one for each script. This is only marginally slower, but avoids the
race condition that led to script engine failure.
2009-11-03 20:23:50 +00:00
Justin Clark-Casey (justincc)
865d3f4b09
minor: remove a few mono compiler warnings
2009-11-03 19:35:18 +00:00
Justin Clark-Casey (justincc)
af0e5d0974
Merge branch 'master' of ssh://justincc@opensimulator.org/var/git/opensim
2009-11-03 19:11:09 +00:00
Justin Clark-Casey (justincc)
1d737b010c
minor: remove some mono compiler warnings
2009-11-03 18:52:20 +00:00
Diva Canto
9e6f01321e
Fixed a couple of NREs in corner cases.
2009-11-03 10:24:02 -08:00
dahlia
82554e9a89
Delete depricated extrusion methods and redirect to universal extrude method.
...
Sync with PrimMesher.cs r47 on forge.
2009-11-02 22:24:58 -08:00
John Hurliman
1927945053
Another race condition fix in SceneObjectGroup
2009-11-02 15:09:07 -08:00
John Hurliman
de71d23e14
Removing Console.WriteLine()s that were brought in with the revert
2009-11-02 11:54:39 -08:00
John Hurliman
0e8b5c7ffa
Fixing race conditions in the SceneObjectPart properties
2009-11-02 11:40:57 -08:00
John Hurliman
67ac9881fa
Removing duplicate SceneObjectPart.RotationalVelocity property
2009-11-02 11:28:35 -08:00
John Hurliman
6309fcc5b4
Reverting the memory leak patch for MySQL. Problems have been reported with the grid server after running for several hours
2009-11-02 11:19:55 -08:00
Melanie
f4e9809b7d
Fix an invalid argument exception in the remote admin module when.
...
Patch from CasperW
2009-11-02 06:13:05 +00:00
Adam Frisby
3c0881c83c
* Committing missing file from last commit.
2009-11-02 00:20:41 +11:00
Adam Frisby
838bc80ab9
* Implemented some tweaks to monitoring module.
...
* Output is prettier & more useful.
* Added 'Alerts' to allow rules to be constructed using Monitors to detect for events such as deadlocks. This will be translated to SNMP Traps when I get SNMP implemented.
2009-11-02 00:05:49 +11:00
Adam Frisby
711dde34e4
* Implements new 'Monitoring' system for reporting performance.
...
* Mostly the same set as the StatsMonitor used for Viewer notification, but exposes some new frametimes - including EventMS, PhysicsUpdateMS, LandUpdateMS; new memory monitoring - both GC.TotalMemory and Process.PrivateWorkingMemory64; also exposes ThreadCount (using System.Diagnostics.Process)
* Type 'monitor report' on the console to see output.
* SNMP Implementation forthcoming.
2009-11-01 19:37:40 +11:00
Diva Canto
58c260140c
Patch + minor formatting fixes.
2009-10-31 19:10:33 -07:00
Douglas R. Miles
7f4d646aea
http://opensimulator.org/mantis/view.php?id=4337
2009-10-31 19:05:02 -07:00
Teravus Ovares (Dan Olivares)
50b599a62b
Merge branch 'master' of ssh://MyConnection/var/git/opensim
2009-10-30 19:25:41 -04:00
Teravus Ovares (Dan Olivares)
fb08133999
* Remove the locklessqueue tests since I guess I didn't understand what it was when I wrote the test.
2009-10-30 19:24:14 -04:00
Teravus Ovares (Dan Olivares)
5101f688ee
* Add LocklessQueueTests. One Test is commented out because it fails. It should probably work.. but I'm awaiting clarification.
2009-10-30 19:13:57 -04:00
Teravus Ovares (Dan Olivares)
2e81acec48
* Adding Tests for OpenSim.Framework.Cache. Some test cases disabled until mantis resolutions.
2009-10-30 18:13:58 -04:00
Melanie
f54d611771
Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim
2009-10-30 22:08:34 +00:00
Melanie
c6246050d9
Make the default and max RTO configurable int he linden client stack
2009-10-30 22:07:56 +00:00
Teravus Ovares (Dan Olivares)
419303a40f
Merge branch 'master' of ssh://MyConnection/var/git/opensim
2009-10-30 17:28:08 -04:00
Teravus Ovares (Dan Olivares)
4563f00852
* Another ACL Test
2009-10-30 17:27:44 -04:00
Teravus Ovares (Dan Olivares)
9d6a540198
Merge branch 'master' of ssh://MyConnection/var/git/opensim
2009-10-30 17:04:55 -04:00
Teravus Ovares (Dan Olivares)
120c731a3b
* Moving A test from the OpenSim.Framework.ACL object to the OpenSim.Framework.Tests assembly. Fixing the test.
2009-10-30 17:04:10 -04:00
John Hurliman
f5e470d4ba
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2009-10-30 13:18:38 -07:00
John Hurliman
cb1492aaf0
Fixed a regression in SendAvatarGroupsReply()
2009-10-30 13:18:18 -07:00
Melanie
8eb3ea02ee
Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim
2009-10-30 19:55:51 +00:00
Melanie
92f4835ba6
Convert the AvatarGroupsReply message to the event queue.
2009-10-30 19:54:56 +00:00
Melanie
39f95e8cf0
Add a using for OSD to the client view
2009-10-30 19:44:01 +00:00
John Hurliman
5d5d0e699a
* Disables automatic packet splitting on AvatarGroupsReply packets. This packet is a mess and shouldn't be used at all (in favor of the event queue message)
...
* Clean up the way we send AvatarGroupsReply packets, including clamping the group name and group title
2009-10-30 11:12:32 -07:00
Melanie
8a64421735
Squelch an error message on sim shutdown when not using MXP
2009-10-30 18:08:58 +00:00
John Hurliman
8a73dc0f8a
* Fix for a potential race condition in ScenePresence.AbsolutePosition
...
* Unified the way region handles are stored and used in ScenePresence
* Fixed camera position for child agents
* CheckForSignificantMovement now checks avatar and camera position (both are important for scene prioritization)
* Removing debug code from the previous commit
2009-10-30 03:01:15 -07:00
John Hurliman
7965b6eb61
* Moving parcel media and avatar update packets from the unthrottled category to task
...
* Fixing a bug where the max burst rate for the state category was being set as unlimited, causing connections to child agents to saturate bandwidth
* Upped the example default drip rates to 1000 bytes/sec, the minimum granularity for the token buckets
2009-10-30 00:43:46 -07:00
John Hurliman
a05c67bebb
* Fixes issue #4329 "llDialog fails silently" by updating OpenMetaverse.dll
...
* Prints a warning for any future packet splitting failures
2009-10-30 00:08:41 -07:00
John Hurliman
aecaa51063
* Fixed a NullReferenceException in GetMovementAnimation() and added more protection against NREs in AddNewMovement()
...
* Removed the three second limit on ImprovedTerseObjectUpdate. With the latest fixes I don't think this is necessary, and it generates a lot of unnecessary updates in a crowded sim
2009-10-29 16:31:48 -07:00
John Hurliman
2913c24c8a
* Commented out two noisy debug lines in the LLUDP server
...
* Misc. cleanup in ScenePresence.HandleAgentUpdate()
2009-10-29 15:24:31 -07:00
John Hurliman
ec7fd8b1f8
More performance improvements to XEngine script loading
2009-10-29 06:42:40 -07:00
John Hurliman
dd13fa361b
* Misc. formatting cleanup for the previous patch
...
* Added the new AppDomainLoading variable to the [XEngine] section in the example config
2009-10-29 05:56:37 -07:00
Dan Lake
33448e4ba8
Optimizations
2009-10-29 05:39:18 -07:00
John Hurliman
5c894dac8b
* Implemented foot collision plane for avatars
...
* Fixed a NullReferenceException regression
2009-10-29 05:34:40 -07:00
John Hurliman
3f2d6fe470
Ported the Simian avatar animation system to OpenSim. Landing is currently not working
2009-10-29 04:13:51 -07:00
John Hurliman
fd2c99f184
Fixing NullReferenceException regression in the previous commit
2009-10-29 02:10:48 -07:00
John Hurliman
7132877075
* Log progress messages when loading OAR files with a lot of assets
...
* Change the PhysicsCollision callback for objects to send full contact point information. This will be used to calculate the collision plane for avatars
* Send the physics engine velocity in terse updates, not the current force being applied to the avatar. This should fix several issues including crouching through the floor and walking through walls
2009-10-29 01:46:58 -07:00
John Hurliman
59eb378d16
Small performance tweaks to code called by the heartbeat loop
2009-10-28 23:10:16 -07:00
John Hurliman
1c9696a9d2
Always send a time dilation of 1.0 while we debug rubberbanding issues
2009-10-28 15:11:01 -07:00
John Hurliman
a069a1ee68
Limit physics time dilation to 1.0
2009-10-28 14:44:05 -07:00
John Hurliman
b81c829576
* Standalone logins will now go through the sequence of "requested region, default region, any region" before giving up
...
* Hip offset should have been added not subtracted (it's a negative offset). This puts avatar feet closer to the ground
* Improved duplicate checking for terse updates. This should reduce bandwidth and walking through walls
2009-10-28 14:13:17 -07:00
John Hurliman
c003f49432
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2009-10-28 12:45:56 -07:00
John Hurliman
a65c8cdc38
* Reduce the velocity tolerance on sending terse updates to avoid slowly drifting prims/avatars
...
* Added contacts_per_collision to the ODE config section. This allows you to reduce the maximum number of contact points ODE will generate per collision and reduce the size of the array that stores contact structures
2009-10-28 12:45:40 -07:00
John Hurliman
ee0f7e10c8
Fixed a bad check on velocity in the ODE near() callback (it was only checking for velocity in certain directions, and was calling the get_Velocity() function three times)
2009-10-28 12:20:34 -07:00
Melanie
184e85cdec
Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim
2009-10-28 18:26:31 +00:00
Melanie
c17359fea5
Adding changes to previous patch to make it fit into core better
2009-10-28 18:25:37 +00:00
Fredo Chaplin
bff0d75e0f
patch kill by UUID
...
Signed-off-by: Melanie <melanie@t-data.com>
2009-10-28 18:09:50 +00:00
John Hurliman
cdbeb8b83b
Track timestamps when terse updates were last sent for a prim or avatar to avoid floating away forever until a key is pressed (deviates from SL behavior in a hopefully good way)
2009-10-28 03:21:53 -07:00
John Hurliman
587c35f6b6
Marking ImprovedTerseObjectUpdate packets for avatars as unthrottled to test
2009-10-28 02:30:16 -07:00
John Hurliman
2d470f8bde
Switching sculpty from CSJ2K back to OpenJPEG for now until more kinks are ironed out
2009-10-28 01:48:53 -07:00
John Hurliman
e31024f08b
Print the exception message when CSJ2K decoding fails for sculpty textures
2009-10-28 01:30:39 -07:00
Mikko Pallari
8254256fe9
Modified visibilities of properties and methods. This is so that SL client based clients can use UDP server that is inherited from LLUDPServer.
2009-10-28 00:41:13 -07:00
Diva Canto
6a6a8df1ba
Make map search work also for hyperlinked regions.
2009-10-27 20:32:48 -07:00
John Hurliman
76dc52dba4
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2009-10-27 16:26:02 -07:00
John Hurliman
0c466b28bb
Move the calculation of time dilation from the scene to the physics engine. The scene is still the one reporting dilation so this does not break the API or remove flexibility, but it gets the calculation happening in the right place for the normal OpenSim usage. The actual calculation of physics time dilation probably needs tweaking
2009-10-27 16:24:43 -07:00
John Hurliman
f89c2cac0f
Experimental test to rate limit the incoming packet handler and try to always leave a worker thread available for other tasks
2009-10-27 14:16:01 -07:00
Melanie
d068d108ad
Remove the SECS loader
2009-10-27 21:11:10 +00:00
John Hurliman
2525810e2a
Removed the DotNetEngine scripting engine. You will need to create a fresh checkout or clean out all *DotNet*.dll assemblies from the bin/ directory to run OpenSim moving forward
2009-10-27 13:31:04 -07:00
Melanie
92f7521983
Remove the rest of SECS. It was never used, except by an experimental version
...
of the DotNetEngine that was never runnable.
2009-10-27 20:25:54 +00:00
John Hurliman
fefe767476
Lowering the position tolerance of terse updates for ScenePresences to mitigate some of the rubberbanding issues while we are sending incorrect time dilation values
2009-10-27 13:16:58 -07:00
John Hurliman
a718d7d56a
Making the defaults for interest management variables match whether you have the [InterestManagement] section in your config or not
2009-10-27 10:17:20 -07:00
John Hurliman
bcd7593dfb
Forgot a line in the previous commit
2009-10-27 10:07:35 -07:00
John Hurliman
3a1ee79ee4
Finally hunted down the Parallel deadlock. Packets were being handled asynchronously (filling up the threadpool with handlers), which would turn around and try to do parallel operations on the starved threadpool. The solution for now is to disable Parallel.cs operations until we can gracefully handle parallel operations with a potentially starved threadpool
2009-10-27 02:36:57 -07:00
John Hurliman
b498693cff
* Tweak to region module loading to check for a matching constructor first instead of throwing and catching exceptions
...
* Commenting out the MySQL startup sequence that cleans out dropped attachments under the advice that it is no longer relevant. If anything, it could be brought back as a database cleanup console command
* Updated to the latest libomv 0.8.0-pre. UUID.TryParse() will no longer throw and catch exceptions for most failed UUID parses
2009-10-27 01:46:14 -07:00
John Hurliman
c75d415648
* Converts ClientManager.ForEach() (and as a result, Scene.ForEachClient()) to use a non-blocking parallel method when operating in async mode
...
* Minor code readability cleanup
2009-10-27 00:26:56 -07:00
John Hurliman
f5cad91578
* Switched from OpenJPEG to CSJ2K in Meshmerizer
...
* Tested the previous patch and found no regressions
2009-10-26 19:03:55 -07:00
John Hurliman
d199767e69
Experimental change of PhysicsVector to Vector3. Untested
2009-10-26 18:23:43 -07:00
John Hurliman
b6651ce790
* Double the priority on avatar bake texture requests to get avatars rezzing in faster than the surrounding scene
...
* Adds duplicate tracking for SceneObjectParts and ScenePresences to avoid sending out duplicate ImprovedTerseObjectUpdate packets
2009-10-26 18:22:32 -07:00
John Hurliman
0b1726b524
Removing the ClientManager reference from IScene and hiding it entirely inside Scene as an implementation detail. This will reduce programming error and make it easier to refactor the avatar vs client vs presence mess later on
2009-10-26 16:48:43 -07:00
John Hurliman
4847e62e9f
* Switched all operations on the list of clients that could be either sync or async to use Scene.ForEachClient() instead of referencing ClientManager directly
...
* Added a new [Startup] config option called use_async_when_possible to signal how to run operations that could be either sync or async
* Changed Scene.ForEachClient to respect use_async_when_possible
* Fixing a potential deadlock in Parallel.ForEach by locking on a temporary object instead of the enumerator (which may be shared across multiple invocations on ForEach). Thank you diva
2009-10-26 16:33:04 -07:00
John Hurliman
119cf80e13
Added calls to GC.AddMemoryPressure() when unmanaged memory is allocated for ODE (helps the GC make better scheduling choices), and a call to GC.Collect() right before logins are enabled for a region. Although this doesn't change actual memory usage, it improves the reported usage from OpenSim and the operating system
2009-10-26 15:52:59 -07:00
Dan Lake
428bd7a74b
No need to create dupe TriMeshData for ODE. A previous patch created a dictionary to store unique meshes in Meshmerizer based on creation params. This patch contains a dictionary to map each of those unique meshes to its ODE TriMeshData. This eliminated hundreds of megabytes of memory consumption in the unmanaged heap when there are lots of the same prim (roof tiles, bricks, siding, decks, chairs, etc). The objects do not need to be physical to benefit from this patch.
2009-10-26 15:14:19 -07:00
Dan Lake
ad624f703d
ParcelObjectOwnersReplyPacket has null DataBlock when a client requests a list of their prims in the region and none exist. Instead of leaving pack.Data null, this patch sets a new DataBlock[0];
2009-10-26 15:14:13 -07:00
John Hurliman
ff4b45a1e3
Do case-insensitive comparisons on region names in LLStandaloneLoginModule
2009-10-26 15:12:43 -07:00
John Hurliman
ac7ccdf7d7
* Changed the watchdog timer to improve the speed of UpdateThread(), only track threads once the first call to UpdateThread() has been made, and allow re-tracking of threads that timed out but revived later
...
* Added a commented out call to Watchdog.UpdateThread() in OdeScene. If it turns out that loading a large OAR file or some other operation is timing out the heartbeat thread, we'll need to uncomment it
2009-10-26 14:41:27 -07:00
John Hurliman
c04775bf68
Changed UseCircuitCode handling to be synchronous or asynchronous depending on the async_packet_handling config option, and added a debug log message when a UseCircuitCode packet is handled
2009-10-26 13:38:07 -07:00
John Hurliman
ff65b50236
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2009-10-26 11:28:43 -07:00
John Hurliman
2222172afa
Removed an unnecessary lock in LLUDPClient.UpdateRTO() and LLUDPClient.BackoffRTO()
2009-10-26 11:28:02 -07:00
Melanie
1209db6dcd
Thank you, RemedyTomm, for an update to your previous patch. Garbage-collect
...
the transfers that never happen.
2009-10-26 15:51:28 +00:00
Melanie
7df54d4ad2
Thank you, RemedyTomm, for a patch to handle Xfer requests being dropped
...
before the file data to be transfered is ready.
2009-10-26 04:52:11 +00:00
John Hurliman
0be79b285b
Having a commit fail... this fixes a typo in the previous commit(s?)
2009-10-25 01:13:50 -07:00
John Hurliman
593ce2e1fb
Minor tweaks to get OpenSim compiling against both the current libomv and the upcoming 0.8.0
2009-10-25 01:01:26 -07:00
John Hurliman
730930955a
Changing Scene.ForEachClient to use the synchronous for loop instead of Parallel. This is quite possibly the source of some deadlocking, and at the very least the synchronous version gives better stack traces
...
* Lock the LLUDPClient RTO math * Add a helper function for backing off the RTO, and follow the optional advice in RFC 2988 to clear existing SRTT and RTTVAR values during a backoff
* Removing the unused PrimitiveBaseShape.SculptImage parameter * Improved performance of SceneObjectPart instantiation * ZeroMesher now drops SculptData bytes like Meshmerizer, to allow the texture data to be GCed * Improved typecasting speed in MySQLLegacyRegionData.BuildShape()
* Improved the instantiation of PrimitiveBaseShape
2009-10-25 00:40:21 -07:00
John Hurliman
2c34619aea
* Changed various modules to not initialize timers unless the module is initialized. Ideally, the timers would not initialize unless the module was actually enabled, but Melanie's work on configuring module loading from a config file should make that unnecessary
...
* Wrapped the Bitmap class used to generate the world map tile in a using statement to dispose of it after the JPEG2000 data is created
2009-10-23 14:22:21 -07:00
John Hurliman
52a4534f7f
* Change the way Util.FireAndForget() calls SmartThreadPool to avoid using a delegate (which STP appears to hold on to). This removes the slow leak I was seeing when using async_call_method=SmartThreadPool and stabilizes allocated memory for an idle OpenSim instance
2009-10-23 13:45:18 -07:00
John Hurliman
a41cd1d069
* Unregister Mono.Addins event handlers in PluginLoader.Dispose() and always handle PluginLoader with the using pattern. This freed up 121,634,796 bytes on my system
...
* Avoid allocating an Action<IClientAPI> object every round of the OutgoingPacketHandler
* Removed unnecessary semi-colon endings from OpenSim.ini.example [InterestManagement] section
2009-10-23 13:14:29 -07:00
John Hurliman
c749cf0061
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2009-10-23 10:37:01 -07:00
John Hurliman
4c45b5fd3c
Cleaning up OpenSim.ini.example for LLUDP. The [LLClient] section has been removed and several new parameters have been added to [ClientStack.LindenUDP]
2009-10-23 10:35:47 -07:00
dslake
8ba3afb59b
Patch from dslake http://opensimulator.org/mantis/view.php?id=4291 0004291: Inconsistent locking of ODE tainted prims
2009-10-23 12:14:05 -04:00
unknown
71c929137f
Inconsistent locking of SenseRepeaters in Script Engine.
...
When I attempt to 'save oar' on a region with thousands of scripts with timers, I get a NullReferenceException every time. The problem comes from inconsistent locking in SensorRepeat.cs of the SenseRepeaters List. It is iterated and modified in many places and these places are all wrapped in a lock except in the GetSerializationData(). This is the function throwing the exception because an item in the list becomes null during iteration.
The attached patch locks SenseRepeatListLock in GetSerializationData()
2009-10-23 11:25:06 +01:00
Melanie
b0923e0d73
Fix a glitch in a ROBUST message
2009-10-23 10:41:05 +01:00
Melanie
1d47dbb380
Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim
2009-10-23 09:48:13 +01:00
John Hurliman
62f1a5e36d
Implemented a "FrontBack" prioritizer, using distance plus the plane equation to give double weight to prims/avatars in front of you
2009-10-23 02:38:59 -07:00
Melanie
d0019704e6
Adding the presence service skeleton
2009-10-23 09:47:45 +01:00
John Hurliman
37f7277378
Uncommented the resend log line so the previous commit can be seen in action
2009-10-23 01:33:43 -07:00
John Hurliman
ac0acb0296
* Changed the max RTO value to 60 seconds to comply with RFC 2988
...
* Implemented section 5.5, exponential backoff of the RTO after a resend
2009-10-23 01:33:05 -07:00
John Hurliman
53bf479bab
Commented out noisy debugging about resent packets (normal) and agents setting throttles (normal)
2009-10-23 01:11:40 -07:00
John Hurliman
588361e2a2
Experimental change to use an immutable array for iterating ScenePresences, avoiding locking and copying the list each time it is accessed
2009-10-23 01:02:36 -07:00
Teravus Ovares (Dan Olivares)
f34e8adffb
* Moved Copyrights above the comments in ODEPrim and ODEDynamics so they're consistent with the rest (and so chi11ken's auto copyright adding script doesn't duplicate the copyright.
2009-10-22 18:28:42 -04:00
John Hurliman
ba2972eaf6
* Send out m_bodyRot everywhere instead of m_rotation. Still have no clue which is right
...
* Fix WorldMapModule.process() to not trip the watchdog timer
2009-10-22 14:33:54 -07:00
John Hurliman
4ba3842d71
Forgot to hit save in the last commit
2009-10-22 13:24:24 -07:00
John Hurliman
167d8e39fa
* Sending (position - hipoffset) instead of position
...
* Sending m_rotation instead of m_bodyRot in full updates to match terse updates (no idea which one is right!)
2009-10-22 13:14:41 -07:00
John Hurliman
a16c3bf446
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2009-10-22 12:34:47 -07:00
John Hurliman
b2ed348aa2
Implemented a Watchdog class. Do not manually create Thread objects anymore, use Watchdog.StartThread(). While your thread is running call Watchdog.UpdateThread(). When it is shutting down call Watchdog.RemoveThread(). Most of the threads in OpenSim have been updated
2009-10-22 12:33:23 -07:00
KittoFlora
227c832d3b
Commented out instrumentation in ODEPrim.cs
2009-10-22 19:15:35 +01:00
John Hurliman
11013ad295
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
2009-10-22 11:07:43 -07:00
John Hurliman
36b0e5e1d3
Terrible typo in the previous commit!
2009-10-22 11:07:23 -07:00
John Hurliman
6ca4b0f366
* Added a check if Util.m_ThreadPool is null before trying to use it, and if so initialize it to sane defaults
...
* Simplified the InitThreadPool() function
2009-10-22 10:37:11 -07:00
Melanie
5d12170df9
Correct version number after merge
2009-10-22 17:41:42 +01:00
Melanie
fc4ff09181
Merge branch 'vehicles'
2009-10-22 17:39:19 +01:00
Snowcrash
84ac0f56f5
Fixing the patch to the patch
2009-10-22 17:36:52 +01:00
Snowcrash
47d8b6c5f5
Fix rounding error in PRIM_SIZE portion of llSetPrimitiveParams
2009-10-22 17:36:49 +01:00
Jeff Ames
d756fa01ae
Add copyright header. Formatting cleanup.
2009-10-22 18:57:24 +09:00
John Hurliman
5d07e18980
A synchronous call to the messaging server was blocking the process of promoting an agent to a root agent (logins and teleports). Changed to an async method
2009-10-22 02:27:06 -07:00
John Hurliman
2f394b7e7e
* Allow SmartThreadPool to be initialized without setting max stack size (like the original implementation)
...
* Only initialize Util's SmartThreadPool if it is actually being used
* No longer initializing Util's SmartThreadPool with a custom max stack size. From MSDN: "Avoid using this constructor overload. The default stack size used by the Thread(ThreadStart) constructor overload is the recommended stack size for threads."
2009-10-22 01:30:12 -07:00
Melanie
c4969d47d9
Merge branch 'master' into vehicles
2009-10-22 07:12:10 +01:00
Melanie
1e71e3f910
Remove the "mel_t" from version string
2009-10-22 07:03:40 +01:00
Melanie
b35fbe1f98
Merge branch 'melanie_test' into prioritization
...
This makes SmartThreadPool configurable and also makes it the default, since
the regular thread pool simply stinks.
2009-10-22 07:02:21 +01:00
John Hurliman
32ccd5bb40
* Changed the misc. methods calling ThreadPool.UnsafeQueueUserWorkItem() to Util.FireAndForget()
...
* Changed Util.FireAndForget() to use any of five different methods set with async_call_method in the [Startup] section of OpenSim.ini. Look at the example config for possible values
2009-10-21 23:03:18 -07:00
Melanie
624af66c35
Make the LSL scripting delays take full effect. To tune, tweat the
...
ScriptDelayFactor in config
2009-10-22 05:42:34 +01:00
Melanie
8ce4fd7234
Reduce the default pool threads to 15 (from 30) and the minimum from 5 to 2
2009-10-22 04:02:26 +01:00
Melanie
8a336c6860
Add MaxPoolThreads in startup to limit the size of the thread pool used
...
for FireAndForget. This lets us limit concurrency to make OpenSim play nice
2009-10-22 02:28:53 +01:00
John Hurliman
6492640e72
* Change the OnQueueEmpty signature to send the flags of the queues that are empty instead of firing once per empty queue
...
* Change the OnQueueEmpty firing to use a minimum time until next fire instead of a sleep
* Set OutgoingPacket.TickCount = 0 earlier to avoid extra resends when things are running slowly (inside a profiler, for example)
2009-10-21 18:03:41 -07:00
Melanie
9ec55df988
Mark new version
2009-10-22 01:51:27 +01:00
John Hurliman
4e04f6b3a5
* Clarified what FireQueueEmpty is doing with a MIN_CALLBACK_MS constant and upped it to 30ms
...
* Removed the unused PacketSent() function
* Switched UnackedPacketCollection from a SortedDictionary to a Dictionary now that the sorting is no longer needed. Big performance improvement for ResendUnacked()
2009-10-21 17:02:55 -07:00
John Hurliman
2b39ff0a39
Merged master into prioritization
2009-10-21 16:24:17 -07:00
John Hurliman
b06f258319
* FireQueueEmpty now checks if a measurable amount of time has passed, and if not it sleeps for a small amount of time. This throttles OnQueueEmpty calls where there is no callback or the callback is doing very little work
...
* Changed HandleQueueEmpty()'s Monitor.TryEnter() calls to locks. We want to take our time in this function and do all the work necessary, since returning too fast will induce a sleep anyways
2009-10-21 16:21:08 -07:00
John Hurliman
2752a3525c
* Changed the timing calculations for sending resends/acks/pings from per-client back to per-scene
...
* Testing a fix from Jim to make the cpu usage fix cleaner
2009-10-21 15:22:23 -07:00
John Hurliman
62f1bfd136
Testing out a hack to identify the source of the high cpu usage
2009-10-21 14:25:22 -07:00
John Hurliman
bb4da417ad
Removing the Sleep(0) call from the OutgoingPacketHandler
2009-10-21 14:03:49 -07:00
John Hurliman
7ee422a344
* Handle UseCircuitCode packets asynchronously. Adding an agent to a scene can take several seconds, and was blocking up packet handling in the meantime
...
* Clamp retransmission timeout values between three and 10 seconds
* Log outgoing time for a packet right after it is sent instead of well before
* Loop through the entire UnackedPacketCollection when looking for expired packets
2009-10-21 13:47:16 -07:00
Melanie
d88bb83136
Fix llParticleSystem to accept LSL variables and LSL constants in place
...
of the named constants for the rule selector.
Information provided by Snowcrash
2009-10-21 20:47:24 +01:00
John Hurliman
9178537e94
* Replaced the UnackedPacketCollection with a lockless implementation. The tiny amount of time spent in the locks turned into a lot of time when the rest of the LLUDP implementation went lockless
...
* Changed the timer tracking numbers for each client to not have "memory". It will no longer queue up calls to functions like ResendUnacked
* Reverted Jim's WaitHandle code. Although it was technically more correct, it exhibited the exact same behavior as the old code but spent more cycles. The 20ms has been replaced with the minimum amount of time before a token bucket could receive a drip, and an else { sleep(0); } was added to make sure the outgoing packet handler always yields at least a minimum amount
2009-10-21 11:59:48 -07:00
Melanie
8dd15fd5a5
Patch by mcortez: Remove lock from scene presence updating in groups module
2009-10-21 18:45:37 +01:00
John Hurliman
c0c845aea4
Fixed the way OnQueueEmpty is called to prevent simultaneous calls for the same category
2009-10-21 01:07:40 -07:00
John Hurliman
cde47c2b3d
Committing Jim's optimization to replace the 20ms sleep in outgoing packet handling with an interruptible wait handle
2009-10-21 00:18:35 -07:00
Melanie
93b24b5207
Fix web map retrieval for regions configured via .ini
2009-10-21 03:44:40 +01:00
Melanie
2a886fd76c
Really make module port selection work. Implement port setting in
...
LLProxyLoginModule.
2009-10-21 02:19:45 +01:00
John Hurliman
45dc4e0a54
* Added a sanity check to GetScriptAssemblies() and GetScriptStates() for the case where no scripting engine is enabled
...
* Added TokenBucket.cs to OpenSim, with some fixes for setting a more accurate MaxBurst value and getting a more accurate Content value (by Drip()ing each get)
2009-10-20 18:19:17 -07:00
John Hurliman
1833c69568
* Removed the unused m_agentUpdates collection and some extra work that was being done for AgentUpdate packets
...
* Start LLUDPClients unpaused (this variable is not being used yet)
2009-10-20 15:19:19 -07:00
John Hurliman
d38f33736c
* Removed the throttle speed optimizations to see if it brings stability back
...
* Changed the outgoing packet handler to use a real function instead of a closure and to track time on a per-client basis instead of a global basis
2009-10-20 14:41:20 -07:00
John Hurliman
d1ab11dc2a
Added try/catches in the outgoing packet handler to match the one in the incoming packet handler
2009-10-20 12:43:09 -07:00
John Hurliman
99abe885c8
Fixing position/rotation/collisionplane in ObjectUpdate packets for avatars
2009-10-20 12:30:34 -07:00
John Hurliman
edd393ff30
Reverting the deletion of files related to texture sending until we figure out exactly what is and isn't needed
2009-10-20 11:58:23 -07:00
Melanie
f568982e69
Cleanup and comment the region module loader. Add support for configuring
...
a server port to use for modules in a generic way and also add support
for disabling modules that don't support proper disabling.
Add support for selective loading by class name (advanced users only)
2009-10-20 19:38:35 +01:00
John Hurliman
8151190a45
* Removing ODEPrim and ODECharacter GetHashCode() overrides since they were based on something that could change
...
* Tweaked a few other GetHashCode() overrides to bring them in line with MSDN recommendations
2009-10-20 10:56:15 -07:00
John Hurliman
9a5e7222ce
* Removing cruft left over from the conversion to the new texture sending and UDP code
...
* Changing the cache modules to only initialize the caches if they are actually enabled. Should save a bit of resources from unused cache systems
2009-10-20 10:33:23 -07:00
Melanie
9bc303d293
Add MainServer.GetHttpServer(port) method for using multiple listener
...
ports in region modules
2009-10-20 16:57:22 +01:00
Melanie
26863c04a5
Change "config save" to "config save <filename>", which is mandatory.
...
File name is enforced to NOT be OpenSim.ini
2009-10-20 14:02:11 +01:00
Snowcrash
182693628c
Fix for index error in llList2String
2009-10-20 02:09:24 -07:00
John Hurliman
0a6ea33ac8
* Optimized sending of terrain data
...
* Send terrain data in a spiral pattern instead of a typewriter pattern (placeholder until terrain data becomes part of the interest list management)
* Added a debug line when resent packets are being sent
2009-10-19 18:50:31 -07:00
John Hurliman
fdce1be3db
* Removed OpenSim.Data.NHibernate
...
* Replaced calls to ThreadPool.QueueUserWorkItem() with ThreadPool.UnsafeQueueUserWorkItem() since OpenSim does not use Code Access Security sandboxing
2009-10-19 16:52:27 -07:00
John Hurliman
72078195c2
Merge branch 'prioritization' of ssh://opensimulator.org/var/git/opensim into prioritization
2009-10-19 15:20:38 -07:00
John Hurliman
bd03cbd815
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim into prioritization
2009-10-19 15:19:37 -07:00
John Hurliman
142008121e
* Change Util.FireAndForget to use ThreadPool.UnsafeQueueUserWorkItem(). This avoids .NET remoting and a managed->unmanaged->managed jump. Overall, a night and day performance difference
...
* Initialize the LLClientView prim full update queue to the number of prims in the scene for a big performance boost
* Reordered some comparisons on hot code paths for a minor speed boost
* Removed an unnecessary call to the expensive DateTime.Now function (if you *have* to get the current time as opposed to Environment.TickCount, always use DateTime.UtcNow)
* Don't fire the queue empty callback for the Resend category
* Run the outgoing packet handler thread loop for each client synchronously. It seems like more time was being spent doing the execution asynchronously, and it made deadlocks very difficult to track down
* Rewrote some expensive math in LandObject.cs
* Optimized EntityManager to only lock on operations that need locking, and use TryGetValue() where possible
* Only update the attachment database when an object is attached or detached
* Other small misc. performance improvements
2009-10-19 15:19:09 -07:00
Diva Canto
590d91e572
Forgot {} on last commit.
2009-10-19 15:03:55 -07:00
Diva Canto
2dd8a6beac
More instrumentation in physics.
2009-10-19 14:48:17 -07:00
Melanie
ffd59868f5
Merge branch 'master' into vehicles
2009-10-19 21:58:51 +01:00
Jeff Ames
0a259caeef
Minor formatting cleanup.
2009-10-19 15:48:07 +09:00
John Hurliman
6d04a213d6
Merge branch 'prioritization' of ssh://opensimulator.org/var/git/opensim into prioritization
2009-10-18 20:25:16 -07:00
John Hurliman
233e16b99c
* Rewrote the methods that build ObjectUpdate and ImprovedTerseObjectUpdate packets to fill in the data more accurately and avoid allocating memory that is immediately thrown away
...
* Changed the Send*Data structs in IClientAPI to use public readonly members instead of private members and getters
* Made Parallel.ProcessorCount public
* Started switching over packet building methods in LLClientView to use Util.StringToBytes[256/1024]() instead of Utils.StringToBytes()
* More cleanup of the ScenePresences vs. ClientManager nightmare
* ScenePresence.HandleAgentUpdate() will now time out and drop incoming AgentUpdate packets after three seconds. This fixes a deadlock on m_AgentUpdates that was blocking up the LLUDP server
2009-10-18 20:24:20 -07:00
Jeff Ames
0d29614ca1
Formatting cleanup.
2009-10-19 08:58:03 +09:00
Diva Canto
baed19d068
A bit of instrumentation to figure out what's going on with physics actors.
2009-10-18 16:48:44 -07:00
John Hurliman
1dbbf6edb6
* Process the avatar terse update priority queue as soon as an update for our own avatar is ready to send
...
* Reduce the scope of the locks when processing the update queues
* Reuse the ImprovedTerseObjectUpdate.RegionData block
2009-10-18 03:15:36 -07:00
John Hurliman
2f2eeb6731
Zero out PrimitiveBaseShape.SculptData after the JPEG2000 data has been decoded to allow garbage collection on it
2009-10-18 02:53:36 -07:00
John Hurliman
b4526a5a6d
* Big performance increase in loading prims from the region database with MySQL
...
* Handle the AgentFOV packet
* Bypass queuing and throttles for ping checks to make ping times more closely match network latency
* Only track reliable bytes in LLUDPCLient.BytesSinceLastACK
2009-10-18 02:00:42 -07:00
John Hurliman
a3f93cffb4
* Committing Nini.dll with the patch from #3773 applied
...
* Fixing a log message typo
2009-10-17 22:06:36 -07:00
John Hurliman
fdb2a75ad3
Committing the second part of Jim Greensky @ Intel Lab's patch, re-prioritizing updates
2009-10-17 18:01:22 -07:00
John Hurliman
e28ac42486
Wrapped the contents of the IncomingPacketHandler loop in a try/catch statement
2009-10-17 17:19:18 -07:00
John Hurliman
3a63de8d02
Added a description for RegionType
2009-10-17 15:55:30 -07:00
Melanie
66923983a7
Add support for display of the script compilation errors in the script editor's
...
debug pane. This will still use DEBUG_CHANNEL currently, since it is not
fully implemented. This also removes the "Compiled successfully" message
that pops up in the viewer.
2009-10-17 22:36:44 +01:00
Melanie
cdcbd22ba8
Merge branch 'master' into prioritization
2009-10-17 14:51:17 +01:00