| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
2009 and was superseded by ISimulationService
|
|
|
|
|
|
| |
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()
|
| |
|
|
|
|
| |
verb-noun is consistent with other similar methods
|
|
|
|
| |
section may not exist at all.
|
|
|
|
|
|
|
|
| |
manually forced in a new [SimulationService] config setting.
This is for testing and debugging purposes to help determine whether a particular issue may be teleport related or not
"SIMULATION/0.2" (the newer teleport protocol) remains the default. If the source simulator only implements "SIMULATION/0.1" this will correctly allow fallback to the older protocol.
Specifying "SIMULATION/0.1" will force the older, less efficient protocol to always be used.
|
|
|
|
| |
copy of the LocalSimulationConnector but never initializes it (hence ServiceVersion was never set)
|
|
|
|
| |
week's SIMULATOR/0.1 protocol for now.
|
|
|
|
|
|
|
|
| |
the destination is being checked)
In this new protocol, and as committed before, the viewer is not sent EnableSimulator/EstablishChildCommunication for the destination. Instead, it is sent TeleportFinish directly. TeleportFinish, in turn, makes the viewer send a UserCircuitCode packet followed by CompleteMovementIntoRegion packet. These 2 packets tend to occur one after the other almost immediately to the point that when CMIR arrives the client is not even connected yet and that packet is ignored (there might have been some race conditions here before); then the viewer sends CMIR again within 5-8 secs. But the delay between them may be higher in busier regions, which may lead to race conditions.
This commit improves the process so there are are no race conditions at the destination. CompleteMovement (triggered by the viewer) waits until Update has been sent from the origin. Update, in turn, waits until there is a *root* scene presence -- so making sure CompleteMovement has run MakeRoot. In other words, there are two threadlets at the destination, one from the viewer and one from the origin region, waiting for each other to do the right thing. That makes it safe to close the agent at the origin upon return of the Update call without having to wait for callback, because we are absolutely sure that the viewer knows it is in th new region.
Note also that in the V1 protocol, the destination was getting UseCircuitCode from the viewer twice -- once on EstablishAgentCommunication and then again on TeleportFinish. The second UCC was being ignored, but it shows how we were not following the expected steps...
|
| |
|
| |
|
|
|
|
| |
affecting UpdateAgent and CloseAgent in cases where the foreign region is on the same coordinates as *some* local region.
|
|
|
|
|
|
|
| |
CloseChildAgent() above the LocalSimulationConnector level.
This is so that other callers (such as SceneCommunicationService.SendCloseChildAgentConnections() can perform all closes asynchronously without pointlessly firing another thread for local closes).
No functional change apart from elimination of unnecessary chaining of new threads.
|
|
|
|
| |
This is currently disabled pending an improvement in the test code to properly add avatars when an event queue module is present.
|
| |
|
|
|
|
| |
grepping for remaining uses
|
|
|
|
|
|
|
|
|
| |
race condition checks.
This is to allow a second attempt to remove an avatar even if "show connections" shows them as already inactive (i.e. close has already been attempted once).
You should only attempt --force if a normal kick fails.
This is partly for diagnostics as we have seen some connections occasionally remain on lbsa plaza even if they are registered as inactive.
This is not a permanent solution and may not work anyway - the ultimate solution is to stop this problem from happening in the first place.
|
|
|
|
|
| |
It appears this was never actually used since attachments were rezzed in other code.
This was never available on remote simulator comms, only local.
|
|
|
|
| |
reason "Communications failure" no matter what the destination region actually returned
|
|
|
|
| |
lookup rather than the region handle.
|
|
|
|
|
|
|
|
|
|
|
|
| |
allow an immediate teleport back.
This is to help relieve a race condition when an agent teleports then immediately attempts to teleport back before the source region has properly cleaned up/demoted the old ScenePresence.
This is rare in viewers but much more possible via scripting or region module.
However, more needs to be done since virtually all clean up happens after the transit flag is cleared .
Possibly need to add a 'cleaning up' state to in transit.
This change required making the EntityTransferModule and HGEntityTransferModule per-region rather than shared, in order to allow separate transit lists.
Changes were also required in LocalSimulationConnector.
Tested in standalone, grid and with local and remote region crossings with attachments.
|
|
|
|
| |
problem resolution.
|
|
|
|
|
|
| |
potential bad update that places an object at the opposite side of the
origin sim for a moment before actually crossing it. Especially important in
grids like OSG where lag between sims is high.
|
|
|
|
|
|
|
| |
SendCreateChildAgent" message
This is misleading since a simulator will call this method before successfully trying remote regions.
Also comments out spammy "[SIMULATION]: Stream handler called" AgentHandlers messages for now.
|
| |
|
|
|
|
| |
the agent and all attachments. Preserves backwards compatibility -- older sims get passed attachments one by one. Meaning that I finally introduced versioning in the simulation service.
|
|
|
|
|
| |
AgentUpdate messages. Should improve throttles and reprioritization
when an avatar is moving.
|
| |
|
|
|
|
|
|
| |
once to each simulator rather than once to each region. This
should help with some of the delays caused by multiple outstanding
requests to a single service point.
|
| |
|
|
|
|
| |
take too long, and we don't need to keep the caller waiting.
|
|
|
|
| |
whether or not an agent is allowed there as a root agent.
|
|
|
|
| |
neighbours.
|
|
|
|
| |
is no possibility of cascading requests when failures happen.
|
|
|
|
| |
* Performance improvement in the expensive GenerateClientFlags()
|
|
|
|
| |
* Moved a few key inventory access methods from Scene.Inventory to an IInventoryAccessModule module
|
| |
|
|
|
|
| |
objects too.
|
|
|
|
|
|
|
| |
the new AgentTransferModule, in line with what MW started implementing back in May -- ITeleportModule. This has been renamed IAgentTransferModule, to be more generic.
* HGSceneCommunicationService has been deleted
* SceneCommunicationService will likely be deleted soon too
|
|
|
|
| |
m_SimulationService, because it may be null...
|
| |
|
|
|
|
| |
Appearance is now being passed with AgentCircuitData, as it should be.
|
| |
|
|
|
|
| |
deleted, including old LoginService.
|
|
|
|
|
| |
* Started rerouting calls to UserService.
* Compiles. May run.
|
| |
|
|
|
|
|
|
|
| |
a regionHandle.
* Added the RemoteSimulationConnectorModule, which is the replacement for RESTComms. Scenes is not using this yet, only (standalone) Login uses these region modules for now.
* Completed SimulationServiceConnector and corresponding handlers.
|
|
because the data migration is missing. Will fix it next year...
* HAPPY NEW YEAR!
|