| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
| |
them in the code for later use rather than just reverting them.
Fixed the throttle tests for the new algorithm used when packets
are marked as expired.
|
|
|
|
| |
compute the expected values without depending on the token bucket code.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Extends regression tests to test response of adaptive throttles to ack'ed and expired packets.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
| |
settings.
As part of this also refactors code to put all throttle asserts in a single regression test method
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Renames to TestSingleClientThrottleRegionLimited()
|
|
|
|
| |
behaviour of throttles where a region-wide total outbound limit is in place.
|
| |
|
|
|
|
| |
a max client total limit is enforced server-side
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
|
|
|
| |
OpenSim.Tests.Common.ClientStackHelpers
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
thanks Ai Austin for pointing this out.
|
|
|
|
| |
the code that this is symmetric with CloseAgent()
|
|
|
|
|
|
| |
it clear that all non-clientstack callers should be using this rather than RemoveClient() in order to step through the ScenePresence state machine properly.
Adds IScene.CloseAgent() to replace RemoveClient()
|
|
|
|
|
|
|
|
|
|
| |
an line from A->B->C would not close region A when reaching C
The root cause was that v2 was only closing neighbour agents if the root connection also needed a close.
However, fixing this requires the neighbour regions also detect when they should not close due to re-teleports re-establishing the child connection.
This involves restructuring the code to introduce a scene presence state machine that can serialize the different add and remove client calls that are now possible with the late close of the
This commit appears to fix these issues and improve teleport, but still has holes on at least quick reteleporting (and possibly occasionally on ordinary teleports).
Also, has not been completely tested yet in scenarios where regions are running on different simulators
|
|
|
|
|
|
| |
forget conditions.
I generally prefer this approach for regression tests because of the complexity of accounting for different threading conditions.
|
| |
|
| |
|
| |
|
|
|
|
| |
to OpenSimTestCase.SetUp()
|
|
|
|
| |
automatically turns off any logging enabled between tests
|
|
|
|
| |
ignoring it.
|
|
|
|
| |
viewers.
|
|
|
|
| |
in many, many log messages.
|
|
|
|
|
|
|
| |
than synchronously on the outgoing packet loop.
This is the same async behaviour as normal logouts.
This is necessary because the event queue will sleep the thread for 5 seconds on an ack timeout logout as the client isn't around to pick up the final event queue messages.
|
| |
|
|
|
|
|
|
|
| |
simulator
This adds a non-advertised wait_for_callback option in [EntityTransfer]. Default is always true.
Teleport tests disable the wait for callback from the destination region in order to run within a single thread.
|
|
|
|
|
|
|
|
| |
the same simulator.
This involves a large amount of change in test scene setup code to allow test scenes to share shared modules
SetupScene is now an instance method that requires an instantiation of SceneHelpers, though other SceneHelpers methods are still static
May split these out into separate classes in the future.
|
|
|
|
|
|
|
|
| |
analysis and stat accuracy.
Update() now accepts a frames parameter which can control the number of frames updated.
-1 will update until shutdown.
The watchdog updating moves above the maintc recalculation for any required sleep since it should be accounted for within the frame.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This checks that the initial UseCircuitCode packet is handled correctly for a normal client login.
|
|
|
|
|
|
|
|
|
| |
it's live before sending other data.
This means that avatar/appearance data of other avatars and scene objects for a client will be sent after the ack rather than possibly before.
This may stop some avatars appearing grey on login.
This introduces a new OpenSim.Framework.ISceneAgent to accompany the existing OpenSim.Framework.ISceneObject and ISceneEntity
This allows IClientAPI to handle this as it can't reference OpenSim.Region.Framework.Interfaces
|
| |
|
|
|
|
| |
Code drift means that most of this stuff doesn't compile but the structure is still useful.
|