aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Framework (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Add last frame time monitor to MonitorModule now that this value is usefulJustin Clark-Casey (justincc)2012-06-111-0/+8
|
* Don't make duplicate call to ScenePresence.Close() separately in ↵Justin Clark-Casey (justincc)2012-06-081-1/+0
| | | | | | | ETM.DoTeleport() if an agent needs closing. This is always done as part of Scene.RemoveClient() Also refactors try/catching in Scene.RemoveClient() to log NREs instead of silently discarding, since these are useful symptoms of problems.
* Record the fact that child agents can have asset transactions.Justin Clark-Casey (justincc)2012-06-071-1/+1
| | | | Also change code to grab the agent asset transaction module once.
* Add an optional mechanism for physics modules to collect and return ↵Justin Clark-Casey (justincc)2012-05-311-44/+64
| | | | | | | | | | | arbitrary stats. If active, the physics module can return arbitrary stat counters that can be seen via the MonitoringModule (http://opensimulator.org/wiki/Monitoring_Module) This is only active in OdeScene if collect_stats = true in [ODEPhysicsSettings]. This patch allows OdeScene to collect elapsed time information for calls to the ODE native collision methods to assess what proportion of time this takes compared to total physics processing. This data is returned as ODENativeCollisionFrameMS in the monitoring module, updated every 3 seconds. The performance effect of collecting stats is probably extremely minor, dwarfed by the rest of the physics code.
* refactor: factor out entity transfer state machine into a separate class to ↵Justin Clark-Casey (justincc)2012-05-283-239/+330
| | | | make code more analyzable
* If handling the failure of teleport, move agent state to CleaningUp when we ↵Justin Clark-Casey (justincc)2012-05-281-3/+6
| | | | | | start the handling. Also fixes the log warning from ResetInTransit() if the state is cleared direct from Transferring or ReceiveAtDestination, as pointed out in mantis 5426
* Resolve some mono compiler warnings.Justin Clark-Casey (justincc)2012-05-253-5/+4
|
* on agent cross, remove from physics scene after its been placed in transit, ↵Justin Clark-Casey (justincc)2012-05-251-3/+7
| | | | not before.
* refactor: make ETM.CrossAgentToNewRegionAsync neighbourRegion == null check ↵Justin Clark-Casey (justincc)2012-05-251-90/+92
| | | | return earlier to simplify method
* Stop it being possible for an agent to teleport back to its source region ↵Justin Clark-Casey (justincc)2012-05-251-24/+165
| | | | | | | | | before the source region has finished cleaning up old agent data and structures. If this is allowed, then the client usually gets forcibly logged out and data structures might be put into bad states. To prevent this, the binary state machine of EMT.m_agentsInTransit is replaced with a 4 state machine (Preparing, Transferring, ReceivedAtDestination, CleaningUp). This is necessary because the source region needs to know when the destination region has received the user but a teleport back cannot happen until the source region has cleaned up. Tested on standalone, grid and with v1 and v3 clients.
* Don't actually proceed on a within-region teleport if another is already ↵Justin Clark-Casey (justincc)2012-05-241-0/+2
| | | | | | taking place, rather than just (falsely) logging that we're not going to proceed. An oversight from recent commit 9ab0c81
* On inter-region teleport, only stand the avatar up if the QueryAccess call ↵Justin Clark-Casey (justincc)2012-05-241-7/+7
| | | | to the destination scene actually succeeds.
* Now that the EntityTransferModule is per-region, fetch the event queue ↵Justin Clark-Casey (justincc)2012-05-241-18/+22
| | | | module once rather than repeatedly via scene presences
* Fix issue where a dns resolution failure on the final destination might ↵Justin Clark-Casey (justincc)2012-05-241-192/+200
| | | | | | leave the user unable to teleport since the transit flag was not being reset. This moves the 'already in transit' check further up and resets the flag if dns resolution fails and in the new required places.
* If an agent is still registered as 'in transit' by the source region, don't ↵Justin Clark-Casey (justincc)2012-05-242-66/+58
| | | | | | | | | | | | 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.
* minor: Make log class names in InventoryAccessModule uniformJustin Clark-Casey (justincc)2012-05-231-10/+10
|
* Fix bug where an avatar that had an object they owned attached through ↵Justin Clark-Casey (justincc)2012-05-231-23/+36
| | | | | | | llAttachToAvatar() or osForceAttachToAvatar() would wrongly have next permissions come into play when they detached that object and rezzed it in scene. This is because the attachments module code was setting the 'object slam' bit by using PermissionMask.All Solution here is to route the attachment item creation call through the existing inventory code in BasicInventoryAccessModule rather than copy/pasted code in AttachmentsModule itself.
* Setting 'in transit' on a local teleport as well as inter-region teleports.Justin Clark-Casey (justincc)2012-05-211-0/+9
| | | | | This is to eliminate possible race conditions if two teleport calls are made concurrently, where at least one is a local teleport. This is pretty much impossible on a manual user teleport but can happen on script-invoked teleports.
* Remove redundant "Teleport failed:" from reason when QueryAccess fails for ↵Justin Clark-Casey (justincc)2012-05-171-4/+12
| | | | | | the destination simulator. This part of the string is already provided by the viewer. Also adds more reason logging for diagnostics when teleports are refused/fail.
* Set the agent in transit teleport flag at the first available opportunity ↵Justin Clark-Casey (justincc)2012-05-141-11/+37
| | | | | | | | | | (i.e. when IsInTransit() was being checked) to close down a race condition. On EntityTransferModule.DoTeleport() there was an IsInTransit() check to prevent multiple simultaneous teleport attempts. However, the SetInTransit() was only performed later on, which left a window in which multiple threads could pass the IsInTransit() check. This has been seen in the field and the results aren't pretty. This commit effectively combines the IsInTransit() and SetInTransit() checks so there is no such window. More failure cases are made to to call ResetInTransit() to adjust to this move.
* Add more region information to some teleport related loggingJustin Clark-Casey (justincc)2012-05-141-7/+8
|
* Reinsert a 2000ms delay before closing a no longer required agent on the ↵Justin Clark-Casey (justincc)2012-05-031-2/+7
| | | | | | | | | source region after teleport to resolve Imprudence teleport problems. Viewers 1 and 3 are fine with doing this immediately. However, Imprudence has a small delay (<200ms, >500ms) after receiving the AgentCompleteMovement reply packet on the destination region before regarding that region as the currnet region. If Imprudence receives a DisableSimulator in this period, it quits. We are not restoring the full 5000ms delay since this brings back a bug where teleports permanently fail if an avatar tries to teleport back too quickly. This commit also sends the AgentCompleteMovement packet to the client before telling the source region to release its old agent, in order to further cut down any possibility of the DisableSimulator being recieved before the AgentMovementComplete.
* minor: resolve some mono compiler warningsJustin Clark-Casey (justincc)2012-05-031-6/+1
|
* Comment out the five second sleep in etm.DoTeleport() if the old agent needs ↵Justin Clark-Casey (justincc)2012-05-011-1/+1
| | | | | | | | | | | to be closed because it is no longer in the child's view distance. This sleep appears unnecessary since a sleep has already occurred in WaitForCallback() whilst waiting for the destination region to notify of teleport success. There are no async operations between this sleep and the WaitForCallback() If this sleep is present, then teleporting back to the source region within 5 seconds results in a disconnection. If this sleep is commented out then teleporting quickly back and forth between two simulators appears to work without issue. Tested on standalone, local grid and distributed grid. Please revert if there's something that I've missed.
* Remove some test code that accidentally crept in with 9d2e1c67Justin Clark-Casey (justincc)2012-05-011-3/+0
|
* Add regression test for teleporting between neighbouring regions on the same ↵Justin Clark-Casey (justincc)2012-05-012-7/+30
| | | | | | | 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.
* Move max teleport distance check down into etm.DoTeleport() since this ↵Justin Clark-Casey (justincc)2012-05-011-40/+41
| | | | should apply to all teleport calls, not just those through Teleport()
* refactor: Split most of EntityTransferModule.Teleport() into its same region ↵Justin Clark-Casey (justincc)2012-05-012-122/+159
| | | | | | and different region teleport components. DoTeleport() now retrives IEventQueue itself rather than requiring it to be passed in.
* If a Grid God teleports then include the Godlike teleport flag. This can ↵Oren Hurvitz2012-04-271-0/+6
| | | | affect the starting position in the destination region.
* Merge branch 'master' of ssh://opensimulator.org/var/git/opensimDiva Canto2012-04-273-20/+39
|\
| * Add regression test for teleporting an agent between separated regions on ↵Justin Clark-Casey (justincc)2012-04-272-2/+3
| | | | | | | | | | | | | | | | 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.
| * Tweak log messages on local region to region teleport path to help with ↵Justin Clark-Casey (justincc)2012-04-262-18/+36
| | | | | | | | problem resolution.
* | Minor change in error message (HG teleport failures)Diva Canto2012-04-271-1/+1
|/
* Slight rewording of output messages.Diva Canto2012-04-241-1/+1
|
* Merge branch 'master' of ssh://opensimulator.org/var/git/opensimDiva Canto2012-04-241-0/+1
|\
| * zero out SP velocity before calling SP.Teleport(), as the client expects ↵Justin Clark-Casey (justincc)2012-04-251-0/+1
| | | | | | | | (though this is also effectively done by physics at the moment)
* | HG: Moved User-level code down to the HGEntityTransferModule where it belongs.Diva Canto2012-04-242-14/+14
|/
* Add regression test TestSameRegionTeleport()Justin Clark-Casey (justincc)2012-04-251-1/+1
|
* Improve teleport log debug and error messages to tell us who is teleporting.Justin Clark-Casey (justincc)2012-04-251-3/+14
|
* Merge branch 'master' of ssh://opensimulator.org/var/git/opensimDiva Canto2012-04-061-4/+4
|\
| * Rather than having a FromFolderID property on every single prim and only ↵Justin Clark-Casey (justincc)2012-04-071-3/+3
| | | | | | | | | | | | ever using the root prim one, store on SOG instead. This reduces pointless memory usage.
| * Store FromItemID for attachments once on SOG instead of on every SOP and ↵Justin Clark-Casey (justincc)2012-04-071-1/+1
| | | | | | | | | | | | only ever using the root part entry. This eliminates some pointless memory use.
* | Moved the inventory manipulation from HGEntityTransferModule to ↵Diva Canto2012-04-063-150/+159
|/ | | | HGInventoryAccessModule where it belongs. They need to exchange some events, so added those to EventManager. Those events (TeleportStart and TeleportFail) are nice to have anyway.
* Deleted the unused and commented code from 2 commits ago.Diva Canto2012-04-061-241/+1
|
* WARNING: LOTS OF COMMENTED AND UNUSED CODE IN THIS COMMIT. This is on ↵Diva Canto2012-04-061-21/+295
| | | | purpose; it's an historical record of what works and what doesn't wrt manipulating inventory at the viewer. I'll remove the unused code in a subsequent commit, but wanted to place it in history. The uncommented code works.
* Eliminate race condition where many callers would check SOP.PhysicsActor != ↵Justin Clark-Casey (justincc)2012-04-031-4/+4
| | | | | | | | null then assume it was still not null in later code. Another thread could come and turn off physics for a part (null PhysicsActor) at any point. Had to turn off localCopy on warp3D CoreModules section in prebuild.xml since on current nant this copies all DLLs in bin/ which can be a very large number with compiled DLLs No obvious reason for doing that copy - nothing else does it.
* minor: small message adjustment and unnecessary code elimination when ↵Justin Clark-Casey (justincc)2012-03-311-1/+1
| | | | notifying client of no build permission
* fix Infinite loading on No Rez http://opensimulator.org/mantis/view.php?id=5932PixelTomsen2012-03-311-0/+5
|
* HG 2.0 Suitcase inventory: proof of concept now working properly with the ↵Diva Canto2012-03-281-10/+11
| | | | heavy SendBulkInventoryUpdate message. Waiting for Melanie to finish the light-weight version of that message.
* HG 2.0: added the beginning of HGSuitcaseInventoryService. Plus moved the ↵Diva Canto2012-03-281-7/+61
| | | | hack away from ScenePresence. This is better but it still doesn't restore the inventory upon arrival.