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
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
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
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
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
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
c71b3e730d
Changed the locking mechanism, because the existing one is causing deadlocks to occur.
2009-10-07 18:54:08 -07: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
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
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
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
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
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
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
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
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
Diva Canto
5b19d5a7b7
Reduced locking.
2009-10-04 14:05:58 -07:00
Diva Canto
d93e0a0503
Guarding a line that is sometimes throwing a null pointer exception.
2009-10-04 10:30:21 -07:00
Diva Canto
366bfe17ae
Trying to avoid the null pointer exception in J2KImage, RunUpdate.
2009-10-04 07:41:10 -07:00
Melanie
6878b26b0d
Merge branch 'diva-textures-osgrid'
2009-10-04 05:49:16 +01:00
John Hurliman
387e9f7a7f
* Creates Util.UTF8 and switches some references of Encoding.UTF8 to Util.UTF8 (not all references were switched since not all OpenSim libraries reference OpenSim.Framework)
...
* Shrinks the largest in-memory object, the LLRAW.HeightmapLookupValue struct (only used for exporting to LLRAW terrain files), to the minimum possible size. This seems to have the odd side effect of cutting the size of the two double[256,256] terrain objects in half. Possibly an alignment optimization?
2009-10-02 18:31:08 -07:00
John Hurliman
332d3eb1bb
* Removed code that is no longer used with Melanie's queue callback optimization
...
* Moved all priority queue access to helper functions to improve reliability and readability
* New version of CSJ2K.dll (from libomv source tree) that fixes a JPEG2000 comment decoding bug
2009-10-02 16:53:35 -07:00
Melanie
36c8d55827
Merge branch 'diva-textures-osgrid'
2009-10-03 00:03:09 +01:00
Melanie
73fa409318
Merge branch 'diva-textures-osgrid'
2009-10-02 23:25:17 +01:00
John Hurliman
bdc1345501
* Removed even more unnecessary state variables from J2KImage
...
* Fixed the incorrect "out of memory?" exception messages and replaced them with useful information
* Cleaned up J2KImage and LLImageManager to conform to coding conventions
2009-10-02 13:08:15 -07:00
John Hurliman
9b342d3e0d
* Changed the flush logic to drop packets in non-transactional streams, and to not fire any "put more data in the queues" callbacks
...
* Minor tweaks to code formatting to make the callback chain for packet queuing easier to follow
2009-10-02 12:00:42 -07:00
Melanie
6def897556
Merge branch 'diva-textures-osgrid' into diva-textures
2009-10-02 19:02:38 +01:00
Melanie
31d8cec0f8
Merge branch 'master' into diva-textures
2009-10-02 08:23:38 +01:00
Melanie
3ba36bb4d8
Restore the missing image handling to the image manager. The missing
...
image packet crashes Hippo without a message.
2009-10-02 05:49:27 +01:00
Melanie
9a429610e2
Merge branch 'diva-textures-osgrid' into texturetest
2009-10-02 04:19:22 +01:00
Diva Canto
746dad7b74
Locking the priority queue to see if it gets pass that exception.
2009-10-01 20:32:22 -07:00
Melanie
18a744cac1
Change texture sending to be driven by the queue empty event from the
...
packet queue, rather than a timer
2009-10-02 04:04:14 +01:00
John Hurliman
54ff84050f
Removing console debug spew
2009-10-01 18:12:13 -07:00
John Hurliman
aaf8fbcef9
Merge branch 'diva-textures-osgrid' of ssh://opensimulator.org/var/git/opensim into diva-textures-osgrid
2009-10-01 17:53:28 -07:00
John Hurliman
6e0c79b8fe
* Rewrote LLImageManager to use a real priority queue and hold minimal state
...
* Rewrote the logic in J2KImage.RunUpdate()
* Added a default avatar texture (I made it myself)
2009-10-01 17:42:13 -07:00