Commit Graph

1227 Commits (f7a29ad8b5e954fb82340b69a034639d14f60af9)

Author SHA1 Message Date
Mic Bowman c06100c31f Another technique inspired by some of the newer flow control algorithms... rather
than drop exponentially to 0 (and then adjust up for the minimum flow), drop on
the delta between current rate and the minimum rate. This should smooth the fallback
to minimum.
2014-12-30 10:39:14 -08:00
Mic Bowman 75df04f0b3 Fix the throttle tests. Remove the hardcoded constant multipliers and
compute the expected values without depending on the token bucket code.
2014-12-30 10:03:37 -08:00
Diva Canto 2506728e35 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2014-12-30 07:59:09 -08:00
Diva Canto 5cf6a6f830 WARNING: BREAKING CHANGES FOR REGION MODULE DEVELOPMENT.
This cleans up Opensim's use of mono addins. In particular, the extension points /OpenSim/RegionModules and /OpenSim/WindModule moved from OpenSim.exe to OpenSim.Region.Framework.dll. From here on, developers of region modules should declare their dlls to be dependent on OpenSim.Region.Framework, starting with version 0.8.1
Additional changes:
- Addins version uniformly updated to 0.8.1. These numbers should be compatible with the release numbers or else it becomes very confusing.
- Mono addins directives moved from files addins.xml to embedded directives in the class and assembly declarations, to make it all consistent
2014-12-30 07:58:42 -08:00
Mic Bowman bda8f2a2c1 Change the effect of successfully acknowledged packets to bump the
adaptive throttle by a full MTU. This is consistent with some implementations
of congestion control algorithms and certainly has the effect of opening
the throttle window more quickly after errors. This is especially important
after initial scene load when the number and size of packets is small.
2014-12-29 23:19:10 -08:00
Mic Bowman 041a09ecb9 Enable runtime configuration of the minimum rate for adaptive
throttles. Setting adaptive_throttle_min_bps will change the
minimum rate that the adapative throttles will drop to in case
of network packet loss. The current rate default rate is 256kbps.
The viewer can throttle rates under that amount, but the dynamic
adaptation will not.
2014-12-29 18:46:33 -08:00
Justin Clark-Casey (justincc) 5410e4f1f9 minor: correct sent -> set in TokenBucket.RequestedDripRate method doc 2014-12-30 00:53:17 +00:00
Diva Canto 89c1ac4cff Updated OpenSim-as-addin version from 0.5 to 0.8.1. The addin version number doesn't need to match the release version number, but I think it's a very good idea that they do. 2014-12-29 15:05:44 -08:00
Mic Bowman e71549a2cb Add debugging code for simulating packet loss in outgoing UDP packets. The
algorithm for dropping packets is a modified two state algorithm for creating
bursts of dropped packets. As configured there is about a 1.5% drop rate.

Invocation of the packet loss code is commented out by default.
2014-12-29 12:02:36 -08:00
Justin Clark-Casey (justincc) 265fe349e0 Somewhat improve avatar region crossings by properly preserving velocity when avatar enters the new region.
This commit addresses the following issues were causing velocity to be set to 0 on the new region, disrupting flight in particular
* Full avatar updates contained no velocity information, which does appear to have some effect in testing.
* BulletSim was always setting the velocity to 0 for the new BSCharacter.  Now, physics engines take a velocity parameter when setting up characters so we can avoid this.
This patch applies to both Bullet and ODE.
2014-11-29 00:12:11 +00:00
Justin Clark-Casey (justincc) 86367d7219 refactor: Move methods to start a monitored thread, start work in its own thread and run work in the jobengine from Watchdog to a WorkManager class.
This is to achieve a clean separation of concerns - the watchdog is an inappropriate place for work management.
Also adds a WorkManager.RunInThreadPool() class which feeds through to Util.FireAndForget.
Also switches around the name and obj arguments to the new RunInThread() and RunJob() methods so that the callback obj comes after the callback as seen in the SDK and elsewhere
2014-11-25 23:56:32 +00:00
Justin Clark-Casey (justincc) 20cede12a9 Fix ghosts copy of SimulatorFeatureModule to enable logging. 2014-11-25 23:28:38 +00:00
Justin Clark-Casey (justincc) d6c9705a3b Add incoming packet async handling engine to queue some inbound udp async requests.
This is to reduce the potential for overload of the threadpool if there are many simultaneous requets in high concurrency situations.
Currently only applied to AvatarProperties and GenericMessage requests.
2014-11-25 23:23:11 +00:00
Justin Clark-Casey (justincc) ec8d21c434 Label all threadpool calls being made in core OpenSimulator. This is to add problem diagnosis.
"show threadpool calls" now also returns named (labelled), anonymous (unlabelled) and total call stats.
2014-11-25 23:23:10 +00:00
Justin Clark-Casey (justincc) 5d5ea9234f Stop Mono 3.2.8 from binding a UDP socket to a port already in use.
At least on Mono 3.2.8 (but not under Windows), one can bind multiple UDP sockets to the same port by default.
Different simulators cannot demultiplex each other's messages, so a set of confusing non-obvious errors arise if this occurs.
This change prevents such multiple binding.
2014-11-25 23:23:09 +00:00
Justin Clark-Casey (justincc) 5ab5d7fe47 Fix recent regression where adaptive throttles stopped adjusting.
Extends regression tests to test response of adaptive throttles to ack'ed and expired packets.
2014-11-25 23:22:20 +00:00
Justin Clark-Casey (justincc) b2e377f168 Fix setting of max scene throttle so that setting it restricts the child client throttles properly.
In "show throttles", also renames 'total' column to 'actual' to reflect that it is not necessarily the throttles requested for/by the client.
Also fills out 'target' in non-adapative mode to the actual throttle requested for/by the client.
2014-11-25 23:22:20 +00:00
Justin Clark-Casey (justincc) b114f5626e Add request drip rate to assertions for token bucket regression tests 2014-11-25 23:22:20 +00:00
Justin Clark-Casey (justincc) 8a949f0ee1 Add regression tests for token buckets on their own 2014-11-25 23:22:20 +00:00
Justin Clark-Casey (justincc) ec3b43d28d Make regression throttle tests consistently test target and max throttle settings.
As part of this also refactors code to put all throttle asserts in a single regression test method
2014-11-25 23:22:20 +00:00
Justin Clark-Casey (justincc) e6af551007 For now, send all non-full terse updates for ones own avatar directly to the LLUDP client stack rather than queueing internally within LLClientView.
When an HG avatar enters a scene, it delays processing of entity updates.  Could be crowding out by other updates or something else.
This delay in ones own av mvmt updates results in mvmt lag experienced on the client.  Avoiding the internal LLClientView for these packets appears to resolve this issue.
Appears most noticeably for avatars with attachments, though has also been seen on those without sometimes.  Hasn't been observed for non-HG avatars in general.
Will be investigating exactly what the problem is, at which point there will be a more permanent solution.
2014-11-25 23:22:20 +00:00
Justin Clark-Casey (justincc) 10095c1a58 Add "debug lludp throttles get/set request" and get current
This allows one to set the requested throttle (which normally comes from the client) as opposed to the max.
2014-11-25 23:22:19 +00:00
Justin Clark-Casey (justincc) 61d6bd78b3 Change the word order of some debug lludp settings for readability
On server, scene-throttle-max becomes max-scene-throttle and likewise max-new-client-throttle
On clients, throttle-max becomes max
2014-11-25 23:22:19 +00:00
Justin Clark-Casey (justincc) 44dc58cc7f Add "debug lludp get/set new-client-throttle-max" to allow default new client throttle to be set separately from existing clients.
"debug lludp throttles get/set throttle-max" now only gets and sets current max client throttles
2014-11-25 23:22:19 +00:00
Justin Clark-Casey (justincc) 68d0c4d37b Add "debug lludp get" command which currently just shows scene-throttle-max to mirror "debug lludp set"
Information is also available in "show server throttles" but that's more for non-debug info rather than attempting to get and set parameters on the fly for debug purposes.
2014-11-25 23:22:19 +00:00
Justin Clark-Casey (justincc) 16a5e15443 Allow GetMesh capability to be served directly by a server like GetTexture
To do this required GetMesh to be converted to a BaseStreamHandler
Unlike GetTexture connector, no redirect URL functionality yet (this wasn't present in the first place).
2014-11-25 23:21:38 +00:00
Justin Clark-Casey (justincc) d33964222a Fix an issue where specifying both max client and server outgoing UDP throttles would cause client throttles to be lower than expected when total requests exceeded the scene limit.
This was because specifying a max client throttle would always request the max from the parent server throttle, no matter the actual total requests on the client throttle.
This would lead to a lower server multiplier than expected.
This change also adds a 'target' column to the "show throttles" output that shows the target rate (as set by client) if adaptive throttles is active.
This commit also re-adds the functionality lost in recent 5c1a1458 to set a max client throttle when adaptive is active.
This commit also adds TestClientThrottlePerClientAndRegionLimited and TestClientThrottleAdaptiveNoLimit regression tests
2014-11-25 23:21:38 +00:00
Justin Clark-Casey (justincc) ead32de790 Use automatic properties for Parent and TotalDripRequest in TokenBucket to make code analysis easier. No functional change. 2014-11-25 23:21:37 +00:00
Justin Clark-Casey (justincc) 40314b56f2 Remove the unnecessary intermediate total token bucket.
This only had one child, which is the 'adaptive' token bucket.
So from testing and currently analysis, we can use that bucket directly which simplifies the code.
2014-11-25 23:21:37 +00:00
Justin Clark-Casey (justincc) a98b514184 minor: remove compiler warning from unused field in SimulatorFeaturesModule 2014-11-25 23:21:37 +00:00
Justin Clark-Casey (justincc) df031fe8be extend TestClientThrottleRegionLimited for 2 clients after testing 1. Renames to TestSingleClientThrottleRegionLimited() 2014-11-25 23:21:37 +00:00
Justin Clark-Casey (justincc) dce98acb69 Add regression test TestClientThrottleRegionLimited() for testing simple behaviour of throttles where a region-wide total outbound limit is in place. 2014-11-25 23:21:37 +00:00
Justin Clark-Casey (justincc) 075f718f3f factor out common throttle setting byte[] array construction in ThrottleTests. 2014-11-25 23:21:37 +00:00
Justin Clark-Casey (justincc) 9cdd38d0cf Add regression test TestClientThrottleLimited() for throttle behaviour when a max client total limit is enforced server-side 2014-11-25 23:21:37 +00:00
Justin Clark-Casey (justincc) fc878a33ed refactor: consistently put all test classes in the OpenSim.Tests.Common package rather than some in OpenSim.Tests.Common.Mock
the separate mock package was not useful and was just another using line to always add
2014-11-25 23:21:37 +00:00
Justin Clark-Casey (justincc) af0a851eba minor: disable logging in regression test TestClientThrottleSetNoLimit 2014-11-25 23:18:40 +00:00
Justin Clark-Casey (justincc) 9934e2c545 minor: comment out unused method in regression BasicCircuitTests 2014-11-25 23:18:40 +00:00
Justin Clark-Casey (justincc) 746defa094 Add basic regression test ThrottleTests.TestClientThrottleSetNoLimit 2014-11-25 23:18:40 +00:00
Justin Clark-Casey (justincc) 52370ac94d refactor: Move test clientstack setup code out of BasicCircuitTests into OpenSim.Tests.Common.ClientStackHelpers 2014-11-25 23:18:40 +00:00
Justin Clark-Casey (justincc) 87d5da86a1 Fix recent regression in "debug lludp throttles get" command that stopped it printing any information. Also fix max throttle displayed to be properly kbps 2014-11-25 23:18:40 +00:00
Justin Clark-Casey (justincc) a13022c296 minor: in "show server throttles", display unset if new client throttle value is not set rather than 0 2014-11-25 23:18:40 +00:00
Justin Clark-Casey (justincc) 44e0a2f906 Add throttle-max option to "debug lludp throttles set" to allow runtime setting of default and existing client throttles.
Doesn't yet adjust until clients submit new throttle settings.
2014-11-25 23:18:40 +00:00
Justin Clark-Casey (justincc) 5c13980eb7 Change "debug lludp throttle *" commands to "debug lludp throttles" for consistency (and because I keep typing throttles).
This will still work with "debug lludp throttle" anyway.
2014-11-25 23:18:40 +00:00
Justin Clark-Casey (justincc) d20aeefef2 Fix console set and get of max scene rate. Was performing wrong calculation - throttle buckets are set in bytes, not bits 2014-11-25 23:18:40 +00:00
Justin Clark-Casey (justincc) 10d09e287c Eliminate 'max' throttle setting from server throttles report since this never applies. 2014-11-25 23:18:40 +00:00
Justin Clark-Casey (justincc) 679eaec22f Allow "debug lludp throttle *" commands to work without a user name, in which case they apply to all users in the lludp server 2014-11-25 23:18:39 +00:00
Justin Clark-Casey (justincc) a142edec03 minor: add apparant total to logging when client sets throttles 2014-11-25 23:18:39 +00:00
Justin Clark-Casey (justincc) c73e62ea3a minor: fix bug in throttle logging where arguments were mismatched 2014-11-25 23:18:39 +00:00
Justin Clark-Casey (justincc) 1d33a40f59 Add "debug lludp set scene-throttle-max <value>" console command to allow us to potentially set the scene max throttle on the fly. 2014-11-25 23:18:39 +00:00
Justin Clark-Casey (justincc) a5eabdade3 Move information about "server agent rate" throttles into "show server throttles" command rather than "show throttles"
THis allows us to see the rates when no client is connected to the region.
2014-11-25 23:18:39 +00:00
Justin Clark-Casey (justincc) c8f5add2fc Add "show server throttles" command for showing server specific information about throttles
This is separate from the user-oriented "show throttles" command since one will often only want to know about varying client throttle settings.
Currently displays max scene throttle and adaptive throttles config if set.
2014-11-25 23:18:39 +00:00
Justin Clark-Casey (justincc) 51eb8facd6 Add OutgoingPacketsQueuedCount clientstack stat.
This is the total of queued outgoing packets across all connections, as also seen in the "show queues" command.
Gives some early indication of whether the simulator can't send all outgoing packets fast enough.
Though then one would want to check that this isn't due to a few bad client connections.
2014-11-25 23:18:39 +00:00
Justin Clark-Casey (justincc) 4c5fbf8b0a minor: Remove compiler warnings from unused fields in TokenBucket 2014-11-25 23:18:39 +00:00
Justin Clark-Casey (justincc) 12daa3c3d9 refactor: Move LLUDPServer console commands into their own class. 2014-11-25 23:18:39 +00:00
Justin Clark-Casey (justincc) f0fd2fa325 refactor: rename "debug lludp throttle status" to "debug lludp throttle get" to match set command 2014-11-25 23:18:38 +00:00
Justin Clark-Casey (justincc) e144958e03 Add "debug lludp throttle set" command to allow setting of parameters at runtime
Can currently only set adaptive true|false, where adaptive = false
2014-11-25 23:18:38 +00:00
Justin Clark-Casey (justincc) cfc4055991 Make outboudn and packet inbox handling threads highest priority.
Will only have any affect under Windows or mono with a patch such as https://gist.github.com/justincc/31e52218d098529b4696 (not recommended) applied.
For assessment purposes.
2014-11-25 23:18:38 +00:00
Diva Canto 0997ce8629 Small improvements to SimulatorFeaturesModule: (1) don't overwrite extras if the grid response is invalid; (2) make the name of the config variable for destination guide consistent with the grid-wide name in LoginService; (3) account for the existence of a [USERID] in the destination guide URL 2014-11-22 20:14:09 -08:00
Melanie Thielker bec456c2a5 Remove the Invisible stuff and add more baked caching. Refactor selection of textures to save to Bakes module. 2014-11-11 07:09:30 +01:00
Melanie Thielker 64deb6ae6f Second part of invisible base avatar option 2014-11-10 19:49:58 +01:00
Melanie Thielker 785a2cc729 Remove JustinCCs UDP patch - it is harmful to Avination's grid management 2014-11-10 04:48:36 +01:00
Diva Canto ac051ef4ab Added grid information to SimFeatures response, so that the viewer can show it. 2014-11-06 17:49:04 -08:00
UbitUmarov caddabb5c4 scale ChildAgentThrottles with distance (internal to child server and not
root as was done before )
2014-11-06 22:25:16 +00:00
UbitUmarov ead78764ab allow drawdistance to change between 32 and MaxDrawDistance, configurable
value default to 256, so should have no effect. Next steps needed: reduce
 client udp Throttles with distance, update childreen connections with
 significat movement and view range changes, Make disconnect be delayed in time, make disconnects be receiving region action not sender on region changes. Allow distance less than 256 to only connect to visible regions, even none. Make this be relative to camera and not agent position or region centers as it is now.
2014-11-06 19:03:25 +00:00
UbitUmarov 5cca6e7d16 don't send updates for deleted agents 2014-11-01 00:01:11 +00:00
UbitUmarov ba8e1efb43 sadly revert to resend terseUpdates enqueuing them back into entityupdates
queue. Viewers fail to handle correctly out of order updates with ugly visible
effects. Make sure these packets don't include acks so they aren't lost.
2014-10-31 23:34:43 +00:00
UbitUmarov 54ab9e7d4d set udp SocketOptionName.ReuseAddress to false, to not allow two regions
to bind to same port, as seems to be possible at least with mono 3.2.8,
 same as patch just pushed to core by justin. This is not necessary on
 windows, possible a bug on some mono versions.
2014-10-30 21:57:20 +00:00
UbitUmarov 4571e5bc3e try to make SOG crossings full async. Simplify some borders checking.... 2014-10-24 18:10:28 +01:00
Melanie Thielker 12ebc92e55 Revert "*TEST* send udp sync. Stop uncontroled and hidden use of IO threads."
This reverts commit 8c41271b33.

Conflicts:

	OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
2014-10-13 23:52:19 +02:00
UbitUmarov 33ec073320 revert to async send, since past experience showed sync didn't work when
on mono
2014-10-13 22:46:58 +01:00
UbitUmarov 8c41271b33 *TEST* send udp sync. Stop uncontroled and hidden use of IO threads.
Testing this may require several people.
2014-10-13 13:17:48 +01:00
UbitUmarov 9a3df6445e move AnimationSet and AvatarSkeleton to OpenSimExtras 2014-10-12 12:52:12 +01:00
UbitUmarov 39cfd82303 add simulator features AvatarSkeleton and AnimationSet report 2014-10-11 22:53:47 +01:00
UbitUmarov c3e88b7b38 changed skeleton, do parse the mesh on upload to check skeleton. Sooner or
later this parsing needs to validate the model cost also.
2014-10-11 22:41:59 +01:00
UbitUmarov cc71dd9a27 dont let test mesh go to meshes inventory folder that is not displayed by
viewers
2014-10-11 11:12:43 +01:00
UbitUmarov dab2e778d6 bug fix 2014-10-11 10:22:57 +01:00
UbitUmarov 1a6ef2d60e check for avatar skeleton data on meshs headers on cost estimation. Dont
let a model have more than one mesh with skeleton, for testing create a
 mesh inventory item, for this meshs. Add also option to read a avatar
 collider replacement. This information still needs to be saved somewhere
 so it can be checked on attachment, etc, without parsing the mesh asset again.
2014-10-11 10:01:26 +01:00
Justin Clark-Casey (justincc) c496bd57b4 minor: Comment out received seed caps request logging for now 2014-10-02 22:33:58 +01:00
Justin Clark-Casey (justincc) 43520b3e8b Add "debug lludp throttle status" command to return status information about a client's throttle (currently just whether adaptive is enabled). 2014-10-02 22:30:44 +01:00
Justin Clark-Casey (justincc) 05508b5c56 Add "debug lludp throttle log <level> <avatar-first-name> <avatar-last-name>" to control extra throttle related debug logging. 2014-10-02 22:30:44 +01:00
UbitUmarov 49bf83ecb8 do global position X and Y with double precision in autopilot, so
corrected viewers do work
2014-09-30 23:31:55 +01:00
UbitUmarov 46caea6987 change it again... 2014-09-26 15:03:33 +01:00
UbitUmarov 90cad82405 remove unnecessary argument ref 2014-09-26 14:22:54 +01:00
UbitUmarov fcad64209c make c# more happy 2014-09-26 14:17:01 +01:00
UbitUmarov 5f57b55dc9 use central animationset permitions define 2014-09-26 14:08:21 +01:00
Melanie Thielker 3a42ea5279 Extend upload verification to all upload paths 2014-09-25 21:21:20 +02:00
UbitUmarov 57166878b5 fix animation asset name to "animatn", use "animset" for the new
animationSet
2014-09-25 16:37:43 +01:00
UbitUmarov f51779bb05 add also the name animset until its clear the name liru will use 2014-09-25 14:10:44 +01:00
UbitUmarov 18cc33e2c5 add animationset to upload assets, for now no cost 2014-09-25 13:35:30 +01:00
Justin Clark-Casey (justincc) d3578e2662 Add "debug lludp data out" console command for logging outgoing data just before it's put on the wire.
Unlike "debug lludp packet" which logs at the point where OpenSim first asks the clientstack to send a certain outgoing packet, this logs immediately before the actual send.
For low-level debugging purposes.
2014-09-24 23:44:55 +01:00
Melanie Thielker 8014ce7f1a Fix a nullref in a debug message. If we have no SceneAgent, we can't output data from it. 2014-09-15 23:15:27 +02:00
Melanie Thielker d43d3df724 Reinstate closing the client if CloseAgen returns false. This was part
of the last Ubit patch.
2014-09-14 20:46:22 +02:00
UbitUmarov 3d9f25a19d revert changes to m_pendingCache and remove client close if there is no
SP, as requested
2014-09-14 02:28:42 +01:00
UbitUmarov 908e0e1cef do not use a blind expire of m_pendingCache. Entries must be valid while
respective HandleUseCircuitCode, no matter how long it takes, so a viewer
 retry doesnt start a overlapping one. It HandleUseCircuitCode
 responsability to always remove entries, even on fails. Remove a client
 even if m_scene.CloseAgent fails.
2014-09-13 20:37:20 +01:00
Melanie Thielker 42b2248960 If a client's SceneAgent is null, that client is not fully logged in or
crashed while logging out. Don't reuse it, create a new one.
2014-09-13 00:49:32 +02:00
Justin Clark-Casey (justincc) e4d16e6795 Make LLUDP output queue refill thread active by default, since load tests have shown that this has better scalability.
For testing, previous behaviour can be restored with the console command "debug lludp oqre stop" at runtime.
2014-09-04 18:24:59 +01:00
UbitUmarov 0514679b15 reduce MIN_CALLBACK_MS guard time. A value too high introduces a extra
throttle and makes more packets to be sent in bursts and not in steady
 state flow.
2014-09-02 18:51:49 +01:00
UbitUmarov 6611e75a2b void time change between gettime calls 2014-09-02 16:11:46 +01:00
UbitUmarov 50433e089b *needs testing, not that good* change throttles math using floats and not
int64, etc. Limite brust bytes to the total rate client requested times a
look ahead estimation time, Avoid queues starvation with updates waiting...
2014-09-02 15:48:59 +01:00
UbitUmarov 18de5c8a2d make use of it in GetMeshModule, and meshs are Assets not Task itens,
reduce MeshModule impact on udp rate
2014-08-29 16:30:49 +01:00
UbitUmarov 7351d92a76 add method to get a category throttle rate 2014-08-29 16:19:30 +01:00
UbitUmarov fd0a635302 reduce burst 2014-08-29 15:13:46 +01:00
UbitUmarov 438798202f replace the tick() by a limit on the maximum number of tokens that can be
acumulated ( variable named BurtRate, not exactly a rate...)
2014-08-29 13:26:30 +01:00
UbitUmarov 6f590c2f79 disable first drip 2014-08-29 00:05:57 +01:00
UbitUmarov 986863a0cd try to reduce insane high data rate udp bursts. This needs testing on a
region with a lot of contents. Should not affect much average rates.
2014-08-28 22:26:03 +01:00
UbitUmarov 894b5c10c6 remove misplaced comment 2014-08-28 18:54:08 +01:00
UbitUmarov 9839904ebe try to make sense of throttle rate limits 2014-08-28 18:51:55 +01:00
UbitUmarov 5a2d4fd47f add some functions for estimation of number of bytes that can be send in a category in specified time 2014-08-28 16:49:32 +01:00
UbitUmarov ff4df688ba send all presences terseupdates in same batch 2014-08-28 12:55:31 +01:00
UbitUmarov ade4bf69b1 if we send wearables with ThrottleOutPacketType.HighPriority, then we
should send other avatarinformation with same priority on same Task category ( plus cleanup )
2014-08-28 10:38:31 +01:00
UbitUmarov 1e888d61ca enqueue also if m_nextPackets[category] is not null. This is really the
top element of a category queue, equivalente to using a queue.peek() if
 avaiable
2014-08-27 01:33:09 +01:00
Justin Clark-Casey (justincc) 64f640f901 Implement experimental non-default mechanism to update scene via a timer rather than a persistent thread with sleep.
This is to see if an inaccuracy in sleep times under load is responsible for increase in frame times even when there is spare time still available.
Can currently only be activated by setting "debug scene set update-on-timer true".
Can be switched between timer and thread with sleep updates whilst the scene is running.
2014-08-26 18:13:38 +01:00
UbitUmarov 92b0b27caf dont append acks to a resend packet 2014-08-26 17:42:44 +01:00
UbitUmarov 6857afe2a4 *test* back to no sog kills, little retouch on attachment updates,
NameValue AttachItemID is a root part thing only
2014-08-25 23:31:04 +01:00
UbitUmarov 75cbe620c0 *test* cleanup the bugs nest 2014-08-25 22:45:31 +01:00
UbitUmarov c24601bc6a change enconding of attachment updates NameValue and State fields 2014-08-25 21:49:39 +01:00
UbitUmarov f4a6be8654 clean sendKill a bit, remove a IsChild that is set too early in a calling
path
2014-08-24 00:44:14 +01:00
UbitUmarov d55041d934 on updates, send rotations using livomv Quaternion.toBytes() again 2014-08-23 21:13:30 +01:00
UbitUmarov 63d1916f51 Remove entities from updates queues on kill. Do it sync so enqueues after
the kill work
2014-08-23 20:59:11 +01:00
UbitUmarov 5bf145a397 add a direct sendpartfullUpdate to send a full object update to a part,
optionally overriding its parentID. check what it does to attachments
2014-08-21 00:49:10 +01:00
UbitUmarov ea1c232f92 revert droping udp packet resends after 6 retries, keep resending. 2014-08-21 00:08:43 +01:00
UbitUmarov 542118adf1 remove from use the UpdatesResend on resending udp packets. Just resend
the UDP packet. Also just loose packets we tried to send 6 times already
(ll says 3) A viewer may just beeing ignoring them, or then the link is just dead.
2014-08-20 18:55:06 +01:00
Justin Clark-Casey (justincc) 4e03d352c3 Extend drop command to "debug lludp drop <in|out>..." to allow drop of inbound packets.
For test/debug purposes.
2014-08-19 18:43:21 +01:00
Justin Clark-Casey (justincc) 298376d5c7 Add "debug lludp drop out <add|remove> <packet-name>" console command for debug/test purposes.
This drops all outbound packets that match a given packet name.
Can currently only be applied to all connections in a scene.
2014-08-19 18:34:17 +01:00
UbitUmarov 919aef1573 send zero velocity again on avatar full update or its ugly 2014-08-19 10:03:04 +01:00
UbitUmarov 8f0d35e59a fix the encoding of rotation in updates, not just using the next field to
override w bytes. ( specially having it commented )
2014-08-19 09:04:20 +01:00
UbitUmarov 505cbf9983 still another ... 2014-08-19 03:58:16 +01:00
UbitUmarov 4c46ebdbf5 fix a missed blocking of sending updates the the new attach points above
hud indexes
2014-08-19 03:47:26 +01:00
Justin Clark-Casey (justincc) 88b2fc61ff Add clientstack.<scene>.OQRERequestsWaiting stat
Only present if OQRE is enabled
2014-08-19 00:42:19 +01:00
Justin Clark-Casey (justincc) 84cea46c10 Add experimental OutgoingQueueRefillEngine to handle queue refill processing on a controlled number of threads rather than the threadpool.
Disabled by default.  Currently can only be enabled with console "debug lludp oqre start" command, though this can be started and stopped whilst simulator is running.
When a connection requires packet queue refill processing (used to populate queues with entity updates, entity prop updates and image queue updates), this is done via Threadpool requests.
However, with a very high number of connections (e.g. 100 root + 300 child) a very large number of simultaneous requests may be causing performance issues.
This commit adds an experimental engine for processing these requests from a queue with a persistent thread instead.
Unlike inbound processing, there are no network requests in this processing that might hold the thread up for a long time.
Early implementation - currently only one thread which may (or may not) get overloaded with requests.  Added for testing purposes.
2014-08-19 00:17:12 +01:00
Justin Clark-Casey (justincc) b375f86f11 Make LLUDPServer.Scene publicly gettable/privately settable instead of protected so that other logging code in the clientstack can record more useful information
Adds some commented out logging for use again in the future.
No functional change.
2014-08-19 00:17:12 +01:00
UbitUmarov 1edaf29149 NextAnimationSequenceNumber be a udpserver variable with random start 2014-08-16 13:43:26 +01:00
Justin Clark-Casey (justincc) e0c6bfa81e If a user moves back in sight of a child region before the agent has been closed on teleport, don't unnecessarily resend all avatar and object data about that region. 2014-08-15 21:47:34 +01:00
Justin Clark-Casey (justincc) 91e1aaa5d4 On teleport to a region that already has a child agent established (e.g. a neighbour) don't resend all the initial avatar and object data again.
This is unnecessary since it has been received (and data continues to be received) in the existing child connection.
2014-08-15 21:47:34 +01:00
UbitUmarov 0ae8fed4c2 reduce ping cliping lower limit 2014-08-14 21:18:58 +01:00
UbitUmarov a46d6004df reduce ping filter time constant 2014-08-14 21:04:30 +01:00
UbitUmarov 8c657e4837 add a estimator of client ping time, and painfully make it visible in show
connections console command
2014-08-14 20:41:36 +01:00
Justin Clark-Casey (justincc) 0db6f3a2bd Only set up the UnackedMethod for an outgoing message if that message is actually meant to get an ack (because it's reliable). 2014-08-13 22:57:14 +01:00
Melanie Thielker b96f951a6a Merge branch 'ubitworkmaster' 2014-08-13 03:05:54 +02:00
Melanie Thielker ecae45a21e Revert "make HandlerRegionHandshakeReply processing async and delay it a bit. This"
This reverts commit 30f00bfb14.

Conflicts:

	OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
2014-08-13 03:05:25 +02:00
UbitUmarov cf48b814eb remove HandleCompleteMovementIntoRegion delay hack from llUDPserver. If we
need a delay, we need to do it at end of HandleUseCircuitCode before
feeding pending packets (including that one) into processing queue.
2014-08-13 01:42:16 +01:00
UbitUmarov 0760fa3106 process AgentUpdates in order with rest of packets. Only give higher priority to chat 2014-08-13 00:17:03 +01:00
UbitUmarov 20b3cab5d1 take agentUpdate checks out of llUDPserver (disabling useless debug) and
do it only where its supposed to be done..
2014-08-12 23:57:41 +01:00
UbitUmarov f811efde85 do the significance test invalidation at MoveAgentToRegion 2014-08-12 22:36:17 +01:00
UbitUmarov b9224a70c4 no need to go from cos into squared sin when just abs of cos is as good 2014-08-12 22:27:50 +01:00
UbitUmarov dbbfaf3ac3 force AgentUpdate after CompleteAgentMovement to pass by significance test 2014-08-12 22:17:15 +01:00
UbitUmarov c0378d5430 actually let delay match throttles as original design 2014-08-10 16:36:20 +01:00
UbitUmarov ebc18a80bf OutgoingPacketHandler can not be paced by hits on SendPacket() 2014-08-10 14:49:58 +01:00
UbitUmarov c84a3c3630 also on other case 2014-08-09 16:22:46 +01:00
UbitUmarov 601c50dc1e return even zero costs ( prims on other regions ) 2014-08-09 16:19:07 +01:00