Commit Graph

9391 Commits (eaa424778b7902281084bcc36c05d201395b99b3)

Author SHA1 Message Date
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
Melanie c7da13eb23 Adds SendAvatarInterestsUpdate to IClientAPI
Thank you, Fly-Man
2009-10-17 14:50:21 +01:00
Melanie e5ccd3f793 Merge branch 'master' into prioritization 2009-10-17 14:34:48 +01:00
Melanie a95741cdd6 Re-rename ProductName back to it's original RegionType 2009-10-17 14:33:46 +01:00
Melanie 077f473167 Merge branch 'master' into prioritization 2009-10-17 13:41:32 +01:00
Melanie 72b96bcd84 Add ProductName to RegionInfo (for search) 2009-10-17 13:36:45 +01:00
John Hurliman 9c21d672d4 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim into prioritization 2009-10-16 18:32:12 -07:00
Teravus Ovares (Dan Olivares) 01051daaab * One more tweak to inform the user that they may not be able to move until relogging. 2009-10-16 21:24:08 -04:00
Teravus Ovares (Dan Olivares) d49424c421 * After seeing it repeat over and over again.. again, We won't inform the scenepresence that there was an issue so it doesn't try to make the capsule again. I have a feeling that this is some kind of object leak. We'll know for sure.. soon. 2009-10-16 21:20:55 -04:00
John Hurliman c81378dc22 Changing avatar movement updates to the Task throttle category until we get finer grained prioritization of avatars vs. prims 2009-10-16 17:33:41 -07:00
John Hurliman 7d6d94a7b5 More debugging of RegionCombinerModule.RegionLoaded() by making RegionLoaded() a two line function 2009-10-16 16:49:13 -07:00
John Hurliman f3f93228e0 Changing the region module loading foreach loops to typecast things to the IRegionModuleBase interface where AddRegion(), RegionLoaded(), etc. actually exist. Shot in the dark at fixing the Mono issue 2009-10-16 15:50:22 -07:00
John Hurliman c04ffe5c94 Reverting the previous ugly hack and replacing it with try/catch statements for each RegionLoaded() call. This probably won't fix nebadon's crash, but it seems like a good idea 2009-10-16 15:44:20 -07:00
John Hurliman c3712a56f5 A very ugly and temporary hack to disable the RegionCombinerModule RegionLoaded from firing for testing 2009-10-16 15:34:27 -07:00
John Hurliman c21f19741d Adding noisy debug for nebadon 2009-10-16 15:17:37 -07:00
John Hurliman 80a8a9c4a7 Converted FireAndForget methods to use a singleton pattern to attempt to work around a Mono bug with nested delegates 2009-10-16 14:34:42 -07:00
John Hurliman 31dfe87570 Prevent oversized packets from crashing the LLUDP server. It will now print a friendly error message and drop the packet 2009-10-16 14:26:58 -07:00
John Hurliman 1bd9202f24 * Simplified the prioritization packet creation code to reduce CPU usage and increase throughput. Apologies to Jim for hacking on your code while it's only halfway done, I'll take responsibility for the manual merge
* Changed LLUDP to use its own MTU value of 1400 instead of the 1200 value pulled from the currently shipped libomv
2009-10-16 14:17:13 -07:00
John Hurliman b813058635 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim into prioritization 2009-10-16 13:29:12 -07:00
Teravus Ovares (Dan Olivares) f5964347bd * fix previous commit 2009-10-16 16:25:48 -04:00
John Hurliman e776dfb1d7 * Changing the "clean dropped attachments" MySQL command to a using statement inside a try/catch. This statement times out for me very frequently
* More verbose logging when zerocoding fails on an outbound packet
2009-10-16 13:22:45 -07:00
Teravus Ovares (Dan Olivares) ac31cb89d5 * Ensure that at least 20 frames run before letting avatar in. 2009-10-16 16:22:10 -04:00
John Hurliman eee1318597 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim into prioritization 2009-10-16 12:42:53 -07:00
John Hurliman a18489dc9b * Change appearance packets from State to Task. This will hopefully fix the cloud issues
* Changed the throttling logic to obey the requested client bandwidth limit but also share bandwidth between some of the categories to improve throughput on high prim or heavily trafficked regions
2009-10-16 12:20:01 -07:00
Teravus Ovares (Dan Olivares) 0079d0a7c4 * One more attempt at the NullRef In The OdePlugin. This might fix it, but it will definitely get us closer to the root cause. 2009-10-16 14:30:55 -04:00
John Hurliman 5a4fda9dc3 Updating OpenSim.ini.example with the section required to enable a useful prioritization scheme 2009-10-16 11:09:18 -07:00
John Hurliman 06354a093d Merge branch 'master' of ssh://opensimulator.org/var/git/opensim into prioritization 2009-10-16 10:09:19 -07:00
Melanie 5de657cf5d Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim 2009-10-16 13:29:07 +01:00
Melanie 0487092d15 Thank you, Fly man, for plumbing the AvatarInterestsUpdate packet 2009-10-16 13:28:40 +01:00
Teravus Ovares (Dan Olivares) 67afa9e633 * Make sure to unregister the OutOfBounds Physics event in RemoveFromPhysicalScene or we'll be leaking 2009-10-16 03:52:57 -04:00
Teravus Ovares (Dan Olivares) 1f28c6208b * Added a message for when the null reference exception occurs to make debugging easier. Without this, from the user's perspective.. they cannot move, fly or otherwise do anything physical and without a message on the console, it would be hard to tell that this is what is occurring. 2009-10-16 03:40:44 -04:00
Teravus Ovares (Dan Olivares) ac2f98b846 * A hacky attempt at resolving mantis #4260. I think ODE was unable to allocate memory, and therefore the unmanaged wrapper call fails or worse.. there's some unmanaged resource accounting in the ODEPlugin for ODECharacter that isn't being done properly now.
* The broken avatar may not be able to move, but it won't stop simulate from pressing on now.   And, the simulator will try to destroy the avatar's physics proxy and recreate it again...    but if this is what I think it is, it may not help.
2009-10-16 03:32:30 -04:00
John Hurliman 4b75353cbf Object update prioritization by Jim Greensky of Intel Labs, part one. This implements a simple distance prioritizer based on initial agent positions. Re-prioritizing and more advanced priority algorithms will follow soon 2009-10-15 16:35:27 -07:00
jjgreens df2d5a460f Replaced the update lists with a priority queue implementation in LLClientView
Replaced the update lists with a priority queue implementation in LLClientView.
The priority queues are based on the MinHeap implementation also included in
this commit within the OpneSim.Framework namespace.  Initially setup to exactly
mimic the behavior beofre the change which was a first come first serve queue.
2009-10-15 15:52:53 -07:00
John Hurliman d44b50ee46 * Removed some of the redundant broadcast functions in Scene and SceneGraph so it is clear who/what the broadcast is going to each time
* Removed two redundant parameters from SceneObjectPart
* Changed some code in terse update sending that was meant to work with references to work with value types (since Vector3 and Quaternion are structs)
* Committing a preview of a new method for sending object updates efficiently (all commented out for now)
2009-10-15 15:25:02 -07:00
Melanie 642084c2a9 Merge branch 'master' into vehicles 2009-10-15 21:16:05 +01:00
Melanie 6deef7d0f3 Merge branch 'master' into vehicles 2009-10-15 21:14:13 +01:00
Teravus Ovares (Dan Olivares) 6d3d985511 * Request from lkalif to have the Sim send a coarselocationupdate for each avatar in the sim, including yourself.
* Apparently the LLClientView should have been doing this previously..      Also fixed the 'You' on the index block..   so the client doesn't display an extra green dot.
* Thanks lkalif for bringing it to our attention.
2009-10-15 02:01:29 -04:00
John Hurliman b1c93cd3b1 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2009-10-14 19:24:09 -07:00
John Hurliman 4790f8576c * Replaced (possibly broken?) math for calculating the unix timestamp in MySQLAssetData with Utils.DateTimeToUnixTime()
* Disabled UpdateAccessTime() function since it was only writing zeros anyways. This gave me a significant performance improvement for startup times and avatar logins in standalone mode
* Load attachments asynchronously so avatars with lots of attachments don't have to race the timeout clock to login
2009-10-14 19:23:44 -07:00
Diva Canto cd321ec4d2 Moved some code up to AddRegion, so that other modules that depend on it don't crash. This code needs to be removed as soon as user services is refactored. 2009-10-14 19:15:11 -07:00
John Hurliman fe4109a5b0 Merge branch 'htb-throttle' of ssh://opensimulator.org/var/git/opensim into htb-throttle 2009-10-14 16:48:42 -07:00
John Hurliman 06990b074c Allow the LLUDP server to run in either synchronous or asynchronous mode with a config setting, defaulting to synchronous mode 2009-10-14 16:48:27 -07:00
John Hurliman 82012ec4e3 * Clean up the SetThrottle() code and add a maxBurstRate parameter to allow more tweaking in the future 2009-10-14 16:21:48 -07:00
Melanie 6bdd6ae0a0 Merge branch 'master' into htb-throttle 2009-10-14 23:31:38 +01:00
John Hurliman 1e9e9df0b3 * Switched to a plain lock for the ClientManager collections and protected the TryGetValues with try/catch instead of a lock
* Added ClientManager.ForEachSync() for operations that need to run synchronously, such as "show connections"
2009-10-14 14:25:58 -07:00
John Hurliman 25878d6828 * Added the "show connections" command to print out all of the currently tracked IClientAPIs 2009-10-14 13:00:42 -07:00
John Hurliman c033477d2f * Read scene_throttle_bps from the config file and use it
* Minor formatting cleanup
2009-10-14 11:52:48 -07:00
Justin Clark-Casey (justincc) c58713a3a5 Merge branch 'master' of ssh://justincc@opensimulator.org/var/git/opensim 2009-10-14 19:44:19 +01:00
John Hurliman 4b5a2f8c02 Merge branch 'htb-throttle' of ssh://opensimulator.org/var/git/opensim into htb-throttle 2009-10-14 11:44:17 -07:00
Justin Clark-Casey (justincc) 0cb0a28fde * minor: remove some mono compiler warnings 2009-10-14 19:43:56 +01:00
John Hurliman 0d2e6463d7 * Minimized the number of times textures are pulled off the priority queue
* OnQueueEmpty is still called async, but will not be called for a given category if the previous callback for that category is still running. This is the most balanced behavior I could find, and seems to work well
* Added support for the old [ClientStack.LindenUDP] settings (including setting the receive buffer size) and added the new token bucket and global throttle settings
* Added the AssetLoaderEnabled config variable to optionally disable loading assets from XML every startup. This gives a dramatic improvement in startup times for those who don't need the functionality every startup
2009-10-14 11:43:31 -07:00
Diva Canto bea13e3709 Setting changeY in border crossing. 2009-10-14 11:01:46 -07:00
Melanie 3795cface2 Enable LSL dialogs to display group names properly 2009-10-14 17:39:38 +01:00
Melanie d83ace0d3b Merge branch 'master' into htb-throttle 2009-10-14 05:10:43 +01:00
Melanie db4cdc0961 Set the estate owner to be the master avatar if it's not set. 2009-10-14 04:18:59 +01:00
John Hurliman 4135b0c4dc * Split Task category into Task and State
* Crude prioritization hack
2009-10-13 19:45:38 -07:00
Dan Lake 5976ac16b0 Optimized heartbeat by calling Update() only on updated objects.
During the heartbeat loop, Update() is called on every SceneObjectGroup which in turn checks if any SceneObjectPart has changed. For large regions (> 100k prims) this work consumes 20-30% of a CPU even though there are only a few objects updating each frame.

There is only one other reason to check every object on every frame, and that is the case where a script has registered the object with an "at target" listener. We can easily track when an object is registered or unregistered with an AtTarget, so this is not a reason to check every object every heartbeat.

In the attached patch, I have added a dictionary to the scene which tracks the objects which have At Targets. Each heartbeat, the AtTarget() function will be called on every object registered with a listener for that event. Also, I added a dictionary to SceneGraph which stores references to objects which have been queued for updates during the heartbeat. At each heartbeat, Update() is called only on the objects which have generated updates during that beat.
2009-10-13 19:32:59 -07:00
Teravus Ovares (Dan Olivares) 31a61bbeec * Fixes some prim crossings on megaregions with regions beyond the 512m mark
* There's a slight chance that this could cause a problem with regular prim crossings..   but hopefully not.     Revert if it does.
2009-10-13 22:03:53 -04:00
John Hurliman e8c1e69a0d * Copied LocklessQueue.cs into OpenSim.Framework and added the .Count property and .Clear() method
* Changed the way the QueueEmpty callback is fired. It will be fired asynchronously as soon as an empty queue is detected (this can happen immediately following a dequeue), and will not be fired again until at least one packet is dequeued from that queue. This will give callbacks advanced notice of an empty queue and prevent callbacks from stacking up while the queue is empty
* Added LLUDPClient.IsConnected checks in several places to prevent unwanted network activity after a client disconnects
* Prevent LLClientView.Close() from being called twice every disconnect
* Removed the packet resend limit and improved the client timeout check
2009-10-13 18:56:54 -07:00
John Hurliman dc11643c00 * Consolidated adding / removing ClientManager IClientAPIs to two places in Scene
* Added some missing implementations of IClientAPI.RemoteEndPoint
* Added a ClientManager.Remove(UUID) overload
* Removed a reference to a missing project from prebuild.xml
2009-10-13 17:33:45 -07:00
John Hurliman 395a8680c3 * Fixed a bug where clients were being added to ClientManager twice
* Changed the ClientManager interface to reduce potential errors with duplicate or mismatched keys
* Added IClientAPI.RemoteEndPoint, which can (hopefully) eventually replace IClientAPI.CircuitCode
* Changed the order of operations during client shutdown
2009-10-13 16:53:19 -07:00
John Hurliman 23a334b9f5 * Rewrote ClientManager to remove Lindenisms from OpenSim core, improve performance by removing locks, and replace LLUDPClientCollection
* Removed the confusing (and LL-specific) shutdowncircuit parameter from IClientAPI.Close()
* Updated the LLUDP code to only use ClientManager instead of trying to synchronize ClientManager and m_clients
* Remove clients asynchronously since it is a very slow operation (including a 2000ms sleep)
2009-10-13 14:50:03 -07:00
John Hurliman c893761319 * Unregister event handlers in LLUDPServer when a client logs out and disconnects
* Move ViewerEffect handling to Scene.PacketHandlers
* Removing the unused CloseAllAgents function
* Trimming ClientManager down. This class needs to be reworked to keep LLUDP circuit codes from intruding into the abstract OpenSim core code
2009-10-13 12:50:59 -07:00
John Hurliman f55b282078 Avoid checking m_clients collection twice when a UseCircuitCode packet is received 2009-10-13 11:28:08 -07:00
John Hurliman 82ace481c9 * Broke the circular reference between LLClientView and LLUDPClient. This should speed up garbage collection on the large LLClientView objects, and also prevents handling packets for disconnected clients
* Renamed local LLUDPClient variables to udpClient to avoid naming confusion between LLUDPClient and LLClientView
2009-10-13 11:14:45 -07:00
John Hurliman 3828b3c0e8 * Eliminated unnecessary parameters from LLUDPServer.SendPacketData()
* Changed PrimMesher's Quat.Identity to return <0,0,0,1> instead of <0,0,0,1.1>
2009-10-13 10:38:35 -07:00
Diva Canto e3d5beebfb Better handling of missing assets. 2009-10-13 06:39:11 -07:00
Diva Canto f3d2192cd4 Better handling of missing assets. 2009-10-12 18:30:06 -07:00
Diva Canto 63ed605eba Stop the recurring texture requests for textures that truly don't exist. 2009-10-12 17:36:13 -07:00
Diva Canto 0cfbdf3894 Added this one file for the previous commit to work. 2009-10-12 17:01:03 -07:00
Diva Canto c0beeb929e * Fixes http://opensimulator.org/mantis/view.php?id=4225
* Fixes http://opensimulator.org/mantis/view.php?id=3959
* Allows for viewing inventory textures outside home grid
2009-10-12 17:00:01 -07:00
Melanie bf68dad643 0004246: [Patch] FlotsamAssetCache deep scan & cache
Thank you, mcortez.
2009-10-12 23:21:32 +01:00
Melanie 09cd2ac443 Stop null values from being returned on database queries 2009-10-12 20:46:19 +01:00
Melanie 170d2c4660 Merge branch 'master' into htb-throttle 2009-10-12 15:25:42 +01:00
Melanie 70553a979e Merge branch 'master' into vehicles 2009-10-12 15:12:15 +01:00
Melanie 50f509d600 Merge branch 'master' into vehicles 2009-10-12 15:11:01 +01:00
unknown fe0940a22f Optimize ODE mesh by removing sleep. On a region with 100,000 prims and ODE enabled, the first Heartbeat loop call to UpdatePhysics takes 20 minutes. 75% of that time is spent in this sleep. (100k prims * 10ms) 2009-10-12 01:53:57 -07:00
Diva Canto ef6aa444bf Fixed tree crossing. This will alleviate
http://opensimulator.org/mantis/view.php?id=4163
2009-10-11 13:46:19 -07:00
Diva Canto 36dcfd2b80 * Changed logic of enabling LLProxyLoginModule to follow the new style -- true/false on the name, rather than gridmode=true.
* Better error messages on Add/Remove clients.
2009-10-11 10:23:16 -07:00
dahlia 7b4183d7a0 sync PrimMesher with r46 2009-10-11 02:12:17 -07:00
dahlia 41b27ef064 disambiguate System.Path (preparation for new PrimMesher) 2009-10-11 01:30:24 -07:00
Diva Canto 01783877ec Merge branch 'master' of ssh://diva@opensimulator.org/var/git/opensim 2009-10-10 06:36:10 -07:00
Diva Canto 8030ed89b0 Use Util.UTF8 instead of creating a new heap object every time. 2009-10-10 06:35:31 -07:00
Melanie 5e6e31591c Merge branch 'master' into htb-throttle
This is hand-edited to not let master changes creep into here and may cause a
somewhat rocky merge to master later.
2009-10-10 10:26:47 +01:00
Melanie ef03b2d936 Fix selling objects 2009-10-10 10:18:16 +01:00
Teravus Ovares (Dan Olivares) 8271528b1f * comment out the velocity test, using updates every 500 ms as set in ScenePresence.AddToPhysicalScene.
* This causes time to be counted in ODECharacter and, when a collision occurs, the physics scene will report the collisions only if the the difference of last time it reported the collisions from now was more then the set ms.
* This is cool because the time accrues while collisions are not taking place and when they do take place again, you get an immediate update.
2009-10-10 04:01:36 -04:00
Teravus Ovares (Dan Olivares) 3f0dc88c46 Merge branch 'master' of ssh://MyConnection/var/git/opensim 2009-10-10 03:54:10 -04:00
Teravus Ovares (Dan Olivares) 4ffe936ba8 * Make ODECharacter respect the scene's requested collision update time
* Set the Scene collision update time to 500 ms
2009-10-10 03:53:53 -04:00
dahlia d7654c3bda Adjust velocity threshold for triggering flailing. Thanks to KittoFlora for researching this. 2009-10-10 00:26:43 -07:00
Teravus Ovares (Dan Olivares) 5f94889044 * Fix incorrect math on the Velocity check in PhysicsCollisionUpdate. This may reduce avatar flailing. 2009-10-10 01:49:06 -04:00
Teravus Ovares (Dan Olivares) 798bce592f * Move the 'On Collision Update Movement Animation' routine to above the 'm_invulnerable' test. It doesn't fix anything but it should really be there anyway. 2009-10-10 01:16:34 -04:00
Diva Canto 3f78ff6ee0 Slight variation on the locking scheme: now locking always, except the ForEach, which gets a copy of the Array. I think the ForEach was the big gorilla. 2009-10-09 19:16:03 -07:00
John Hurliman 29543514e6 * Changed the "Packet exceeded buffer size" log line to debug and include the packet type. This message is normal, but could be evidence of a message marked for zerocoding that probably shouldn't be
* Changing OpenSimUDPBase back to high concurrency. High concurrency mode seems to make other problems happen faster, so it's helpful for working out other bugs and will probably
2009-10-09 16:33:50 -07:00
Diva Canto f29bd8036d A slight improvement on name fetching -- using the local name cache, since it exists. 2009-10-09 14:36:08 -07:00
Diva Canto c8cc14a98b This is to *try* to avoid the exception we are seeing repeatedly:
#13:53:03 - [LLUDPSERVER]: Packet exceeded buffer size during zerocoding. Removing MSG_ZEROCODED flag
#13:53:03 - [Scene]: Failed with exception System.ArgumentException: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.
#  at System.Buffer.BlockCopy (System.Array src, Int32 srcOffset, System.Array dst, Int32 dstOffset, Int32 count) [0x000b7] in /home/grid/install/mono24/mono-2.4.2.3/mcs/class/corlib/System/Buffer.cs:116
#  at OpenSim.Region.ClientStack.LindenUDP.LLUDPServer.SendPacketData (OpenSim.Region.ClientStack.LindenUDP.LLUDPClient client, System.Byte[] data, Int32 dataLength, PacketType type, Boolean doZerocode, ThrottleOutPacketType category) [0x00060] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs:290
#  at OpenSim.Region.ClientStack.LindenUDP.LLUDPServer.SendPacket (OpenSim.Region.ClientStack.LindenUDP.LLUDPClient client, OpenMetaverse.Packets.Packet packet, ThrottleOutPacketType category, Boolean allowSplitting) [0x00077] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs:265
#  at OpenSim.Region.ClientStack.LindenUDP.LLClientView.OutPacket (OpenMetaverse.Packets.Packet packet, ThrottleOutPacketType throttlePacketType) [0x00000] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs:5244
#  at OpenSim.Region.ClientStack.LindenUDP.LLClientView.SendCoarseLocationUpdate (System.Collections.Generic.List`1 users, System.Collections.Generic.List`1 CoarseLocations) [0x0012a] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs:3424
#  at OpenSim.Region.Framework.Scenes.ScenePresence.SendCoarseLocationsDefault (UUID sceneId, OpenSim.Region.Framework.Scenes.ScenePresence p) [0x000fa] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/ScenePresence.cs:2536
#  at OpenSim.Region.Framework.Scenes.ScenePresence.SendCoarseLocations () [0x0000d] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/ScenePresence.cs:2491
#  at OpenSim.Region.Framework.Scenes.ScenePresence.Update () [0x00011] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/ScenePresence.cs:2404
#  at OpenSim.Region.Framework.Scenes.SceneGraph.UpdateEntities () [0x0001b] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/SceneGraph.cs:164
#  at OpenSim.Region.Framework.Scenes.Scene.Update () [0x000dc] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/Scene.cs:1031  On Region: Wright Plaza
2009-10-09 14:25:01 -07:00
Diva Canto c146f2c8c4 Use the cache, Luke! 2009-10-09 13:49:55 -07:00
Diva Canto 8231cb2231 Putting this to exactly what it was yesterday around this time, so we can do the 100-ppl load test in WP. We need to carefully play with this code in order to understand all the problems. 2009-10-09 11:32:53 -07:00
Melanie 527c94825b Merge branch 'master' into htb-throttle 2009-10-09 17:23:18 +01:00
Melanie 78f57283f4 Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim 2009-10-09 17:22:39 +01:00
Justin Clark-Casey (justincc) f1f239758f Apply http://opensimulator.org/mantis/view.php?id=4066
If XEngine compile fails, show script name in error message in-world as well as the exception itself
Thanks Luca Peck
2009-10-09 17:43:25 +01:00
Justin Clark-Casey (justincc) b6678faf34 * Apply http://opensimulator.org/mantis/view.php?id=3933
* Remove client servers when regions are closed or removed
* Thanks randomhuman!
2009-10-09 17:28:16 +01:00
Rob Smart 1c220e173c Adding a hair item to the default wearables, fixes newly created avatars appearing as a cloud 2009-10-09 17:22:02 +01:00
Melanie 23586b69a1 Slow down the packet receiving code again after new reports of thread storms. 2009-10-09 12:17:55 +01:00
John Hurliman 77e48a6725 Change the backup thread to run on a BackgroundWorker instead of a Thread. I don't have an explanation, but this seems to stop a slow but steady memory leak I was experiencing 2009-10-09 02:49:55 -07:00
John Hurliman 76a5cae0b4 Forgot to initialize m_writeLock 2009-10-09 02:18:25 -07:00
John Hurliman a3e31cdeaf Added more debugging output to the "unrecognized source" warning 2009-10-09 02:13:21 -07:00
John Hurliman 494a1e922d Calling .Close() on AutoResetEvent and ManualResetEvent (those classes contain an unmanaged resource that will not automatically be disposed when they are GCed), and commenting out some ManualResetEvents that are not in use yet 2009-10-09 02:10:53 -07:00
John Hurliman a5b9971fd7 * Added a lock object for the write functions in LLUDPClientCollection (immutable != concurrent write safety)
* Allow the UDP server to bind to a user-specified port again
* Updated to a newer version of OpenSimUDPBase that streamlines the code even more. This also reintroduces the highly concurrent packet handling which needs more testing
2009-10-09 01:53:06 -07:00
John Hurliman 56a27c37d3 Simplified LLUDPClientCollection from three collections down to one. This will prevent any potential problems from inconsistency between the internal collections 2009-10-08 21:51:53 -07:00
John Hurliman 3a04d706c9 Fear the lockless LLUDP implementation! 2009-10-08 17:34:51 -07:00
Diva Canto 51ea39199b Putting the lock back in TryGetValue. 2009-10-08 15:42:08 -07:00
Melanie a0dd9f4bb4 Fork UDPBase from libOMV into opensim 2009-10-08 22:25:14 +01:00
Diva Canto fc41f2e461 Added guards against the exception reported:
#2009-10-08 12:58:34,462 ERROR - OpenSim.Application [APPLICATION]:
#APPLICATION EXCEPTION DETECTED: System.UnhandledExceptionEventArgs
#
#Exception: System.Exception: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object.
#   at OpenSim.Region.ClientStack.LindenUDP.J2KImage.SendFirstPacket(LLClientView client) in c:\Opensim\OpenSim\Region\ClientStack\LindenUDP\J2KImage.cs:line 230
#   at OpenSim.Region.ClientStack.LindenUDP.J2KImage.SendPackets(LLClientView client, Int32 maxpack) in c:\Opensim\OpenSim\Region\ClientStack\LindenUDP\J2KImage.cs:line 84
2009-10-08 07:55:06 -07:00
Melanie f6b8bac0fa Merge branch 'master' into vehicles 2009-10-08 10:32:15 +01:00
Melanie 1eb390beda Remove ThreadTrackerTest. It's no longer relevant because the thread
tracker now uses the system thread list
2009-10-08 08:32:34 +01:00
Melanie fe679be9e7 Merge branch 'htb-throttle' 2009-10-08 08:07:38 +01:00
Diva Canto 68961ec092 One last attempt at tunning the locking/no locking behaviour. The previous one was too lax and made the important login packets fail. 2009-10-07 20:36:24 -07:00
Diva Canto dd80380df5 Another go at the deadlock: not locking TryGetValue, and just catch/ignore exceptions. 2009-10-07 19:45:57 -07:00
Diva Canto 29f03d95f3 Bug fix. 2009-10-07 19:20:34 -07:00
Diva Canto c71b3e730d Changed the locking mechanism, because the existing one is causing deadlocks to occur. 2009-10-07 18:54:08 -07:00
Diva Canto ab3bfca546 Printout one more field in show threads, but this won't buy us much. 2009-10-07 17:29:21 -07:00
Melanie d9f15fbf40 store owner_uuid in the region table 2009-10-07 19:37:18 +01:00
Melanie 48826fcdf7 Remove debug again 2009-10-07 19:22:27 +01:00
Melanie a0b6cc3861 Enable debugging of the region connector's query string 2009-10-07 19:10:18 +01:00
Melanie 6fdec1f7c9 Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim 2009-10-07 18:35:33 +01:00
Melanie 596f2307bf Add owner_uuid. Not sure this works. Worth a test 2009-10-07 18:34:59 +01:00
Diva Canto 78e4501bef Improved fault handling in HelloNeighbour. 2009-10-07 08:42:33 -07:00
Melanie d06c7d90a1 Correct a build break caused by an optimization in trunk 2009-10-07 06:56:00 +01:00
Diva Canto d344ca932d A small change in FetchInventoryDescendantsCAPS. 2009-10-06 22:19:20 -07:00
Diva Canto 8c255b374a Uncommented log message on CAPs FetchInventoryDescendants 2009-10-06 21:32:15 -07:00
Melanie a52f6c56b1 Merge branch 'master' into htb-throttle 2009-10-07 05:19:20 +01:00
Melanie d33b6fef2b replace LLClientView with proper version 2009-10-07 04:37:12 +01:00
Melanie adc208e568 Replace LLClientView on the branch with master. UNCOMPILABLE! 2009-10-07 04:36:36 +01:00
Diva Canto 58c33fbc89 Uncommented log message on CAPs FetchInventoryDescendants 2009-10-07 04:32:35 +01:00
Diva Canto b5b53dd3eb * One more debug message on FetchInventoryDescendants
* More streams close on finally
2009-10-06 19:55:35 -07:00
Melanie 6f2d183107 Merge branch 'master' into htb-throttle 2009-10-07 03:01:11 +01:00
Melanie 89d23a1fa2 Revert "Rewrote parts of the code that were double-locking different objects. This is about half of the code base reviewed."
This reverts commit e992ca0255.
2009-10-07 01:45:49 +01:00
Melanie 9618c196c2 Revert "Merging in diva's locking fixes"
This reverts commit 832cc68513.
2009-10-07 01:44:36 +01:00
John Hurliman 312438f145 Commented noisy debugging about packet splitting 2009-10-06 15:55:39 -07:00
John Hurliman 832cc68513 Merging in diva's locking fixes 2009-10-06 15:54:00 -07:00
John Hurliman 7199976d48 Checks the number of ThreadPool and IOCP threads on startup and bumps up the numbers to .NET defaults of 500/1000 if need be 2009-10-06 15:51:56 -07:00
Diva Canto e992ca0255 Rewrote parts of the code that were double-locking different objects. This is about half of the code base reviewed. 2009-10-06 15:39:53 -07:00
John Hurliman 9cb5db3621 Applying the real fix (thank you for tracking that MSDN doc down Melanie) 2009-10-06 15:08:09 -07:00
John Hurliman 74fe284a20 Trying Melanie's fix 2009-10-06 14:50:46 -07:00
John Hurliman c855806548 Reverting MySQLLegacyRegionData spam 2009-10-06 14:26:00 -07:00
John Hurliman a3a8691ebe MySQLLegacyRegionData: Extreme Spam Edition(tm) 2009-10-06 14:18:37 -07:00
John Hurliman eb205ef4f0 Added a debug line for nebadon 2009-10-06 14:07:04 -07:00
John Hurliman 25676ac5cf * Added a sanity check for Mono before trying to enumerate over an empty SortedDictionary
* Changed the order of a log line from DotNetEngine so you can tell whether or not it is actually loading
2009-10-06 13:39:10 -07:00
Justin Clark-Casey (justincc) 99c85b5ef5 * Change some more default ports to the robust default of 8003
* Make these use existing constants rather than hardcoding
* These will probably go away soon anyway once all services are under ROBUST
2009-10-06 20:32:33 +01:00
John Hurliman fa6027aa09 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim into htb-throttle 2009-10-06 12:15:24 -07:00
John Hurliman 61b5372153 * Added missing references to prebuild.xml and commented out the LindenUDP tests until a new test harness is written
* Clients are no longer disconnected when a packet handler crashes. We'll see how this works out in practice
* Added documentation and cleanup, getting ready for the first public push
* Deleted an old LLUDP file
2009-10-06 12:13:16 -07:00
Diva Canto 77b4abaa25 * Removed verbose debug message
* Restored HG inventory access which had been lost upon adding a 3rd argument to inventory and asset server handlers
* Fixed a stupid bug in the InventoryConnector which was making move items do things twice
2009-10-06 11:08:11 -07:00
John Hurliman fb19d1ca0a * Try/catch around EndInvoke() when Util.FireAndForget() returns to catch exceptions thrown in the async method
* Added packet stats handling to the new LLUDP implementation
* Attempting to avoid a race condition when creating a new LLUDPClient
2009-10-06 10:12:59 -07:00
Diva Canto 3db4d38645 Removing dependencies on System.Runtime.Remoting. 2009-10-06 09:54:15 -07:00
Melanie 0374f1b144 Merge branch 'master' into vehicles 2009-10-06 17:44:59 +01:00
Diva Canto e474fc2fdb Corrected words in error message. 2009-10-06 08:50:25 -07:00
Melanie 40d0018d66 Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim 2009-10-06 15:29:46 +01:00
Diva Canto d4d060b57d Commenting the DEBUG code that I added yesterday, because it's causing mono to fail with
https://bugzilla.novell.com/show_bug.cgi?id=538854
2009-10-06 07:49:05 -07:00
Melanie 2a060136bd Lock the heartbeat against multiple invocations. May prevent deadlocks and/or
runaway thread use
2009-10-06 15:28:38 +01:00
Melanie 8a7a947faa Remove the using() constructs from the new style database modules; they caused
the underlying connection of a reader or command to be closed before the
reader or command itself. Added the proper logic to Close and dispose items
in CloseDBConnection. Readers and Connections need Close(), Commands need
Dispose(), in the order Reader, Command, Connection.
Also reinstated 80-column-friendly formatting
2009-10-06 14:30:25 +01:00
John Hurliman 2519f071f2 Fixing a few compile errors in the previous commit 2009-10-06 02:50:59 -07:00
John Hurliman e7c877407f * Continued work on the new LLUDP implementation. Appears to be functioning, although not everything is reimplemented yet
* Replaced logic in ThreadTracker with a call to System.Diagnostics that does the same thing
* Added Util.StringToBytes256() and Util.StringToBytes1024() to clamp output at byte[256] and byte[1024], respectively
* Fixed formatting for a MySQLAssetData error logging line
2009-10-06 02:38:00 -07:00
Diva Canto 0c46df973a Correction on the DEBUG code. 2009-10-05 21:02:10 -07:00
Diva Canto e36a54ee2a #if DEBBUG code for monitoring the ThreadPool. 2009-10-05 20:39:23 -07:00
John Hurliman 7ddb6fbced Merge branch 'master' of ssh://opensimulator.org/var/git/opensim into htb-throttle 2009-10-05 17:38:27 -07:00
John Hurliman 429a84f390 Beginning work on the new LLUDP implementation 2009-10-05 17:38:14 -07:00
John Hurliman a76a1afda8 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2009-10-05 16:41:19 -07:00
John Hurliman 6720369376 Added CloseDBConnection() to replace the old CloseReaderCommand(). This will close the MySQLConnection attached to a MySQLCommand. I'm not sure if this accounts for every time a database connection needs to be closed, but it matches up 1:1 with the places where the database connection was previously being closed 2009-10-05 16:39:40 -07:00
Diva Canto 2753f4d62c * GridServerPostHandler.cs: Try/catch in Handle
* BaseOpenSimServer.cs: Added thread pool numbers in show threads
2009-10-05 16:06:21 -07:00
Michael Cortez f4726f4bcc Make sure that keys exist in arrays before trying to access them. 2009-10-05 20:52:07 +01:00
Michael Cortez 90d1ef9e4a Ensure the specified imSessionID exists in the DroppedSession collection before attempting to access it. 2009-10-05 20:52:01 +01:00
Michael Cortez d4a6d9191a Make sure that keys exist in arrays before trying to access them. 2009-10-05 20:47:00 +01:00
Michael Cortez 544675d0f0 Ensure the specified imSessionID exists in the DroppedSession collection before attempting to access it. 2009-10-05 20:47:00 +01:00
Diva Canto 282b752035 Minor change. 2009-10-05 13:14:14 -07:00
Diva Canto 9bd1353875 Fixed bug introduced in one of the last commits. 2009-10-05 12:13:38 -07:00
Diva Canto 05b80185b9 More debug to try to diagnose a problem with region registration. 2009-10-05 11:49:21 -07:00
Diva Canto 5f18a088a8 More error catching/outputting. 2009-10-05 11:14:46 -07:00
Diva Canto 05c1ec7faf Changed the lock object, to see if this helps at all. Also switched the order of lock and try/catch in RemoveImageFromQueue. 2009-10-05 11:01:45 -07:00
Justin Clark-Casey (justincc) 2a19187e01 * minor: tweak asset cache logging levels downwards 2009-10-05 18:32:19 +01:00
Diva Canto 62ea6b6383 Merge branch 'master' of ssh://diva@opensimulator.org/var/git/opensim 2009-10-05 10:31:41 -07:00
Diva Canto a2d5da7129 More debug messages if things go wrong. 2009-10-05 10:31:09 -07:00
Justin Clark-Casey (justincc) 10c4b88ccf minor: remove mono compile warning 2009-10-05 18:20:37 +01:00
Diva Canto 81c08ec74a Merge branch 'master' of ssh://diva@opensimulator.org/var/git/opensim 2009-10-05 09:19:16 -07:00
Diva Canto 75b35ddf4a More error messages to warn when/if things go wrong. 2009-10-05 09:18:51 -07:00
Diva Canto ad81b453b3 GetRegionByPosition: use the cache, Luke. 2009-10-05 09:02:52 -07:00
Melanie 8d7075c5c6 Adapt to renamed members in landObject 2009-10-05 16:33:25 +01:00
Melanie 0cb974bc76 Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim 2009-10-05 16:32:31 +01:00
Melanie 5702c8f910 Adapt to renamed members in landObject 2009-10-05 16:31:54 +01:00
Melanie a7023ed81c Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim 2009-10-05 16:08:57 +01:00
unknown 7c3e5afc0c MSSQL changes for Grid server in ROBUST plus some code tweaks 'n tidy up 2009-10-05 16:08:35 +01:00
unknown 82df3d8fd6 MSSQL changes for Grid server in ROBUST plus some code tweaks 'n tidy up 2009-10-05 16:07:33 +01:00
Melanie 8d5a40aad0 Merge branch 'master' into vehicles 2009-10-05 12:58:52 +01:00
Dan Lake 6d52974c5f Eliminate pinned Mesh data on managed heap by using IntPtrs to memory allocated on the unmanaged heap. This prevents fragmentation of the managed heap and the resulting stress on GC. A region with ~150,000 prims using ODE and Meshmerizer saw memory remain flat around 1.2GB as opposed to 1.5GB and continually growing due to pinned memory. This patch complements the unique mesh dictionary patch applied to Meshmerizer but is independent. The net effect is a 60-75% reduction in memory for our largest regions. 2009-10-05 12:45:41 +01:00
Melanie dcdcbb314e Fix build break 2009-10-05 11:08:02 +01:00
Melanie 0744292b47 Merge branch 'master' into vehicles 2009-10-05 10:17:23 +01:00
dahlia 5c593f3892 only cache mesh if meshing was successful
re-enable sculpt mesh caching
2009-10-04 20:01:44 -07:00
Melanie a208f33c5d Make the asset connector async Get overload return false if the asset
retrieval was not synchronous.
2009-10-05 00:23:47 +01:00
Diva Canto 362e94a022 * KeepAlive set to false in expect_user and log_off.
* Check for null SP in PermissionsModule.
2009-10-04 16:30:12 -07:00
Diva Canto 08d3650138 Merge branch 'master' of ssh://diva@opensimulator.org/var/git/opensim 2009-10-04 14:06:28 -07:00
Diva Canto 5b19d5a7b7 Reduced locking. 2009-10-04 14:05:58 -07:00