aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.cs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* If restating a region, clean up the physics scene after the main scene has ↵Justin Clark-Casey (justincc)2012-05-261-4/+4
| | | | | | | | been closed not before. If this is done before then on ODE agent update calls still incoming can fail as they try to use a raycastmanager that has been disposed. Bullet plugin does nothing on Dispose() However, I wouldn't be at all surprised if individual region restarting was buggy in lots of other areas.
* Stop it being possible for an agent to teleport back to its source region ↵Justin Clark-Casey (justincc)2012-05-251-3/+3
| | | | | | | | | 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.
* If an agent is still registered as 'in transit' by the source region, don't ↵Justin Clark-Casey (justincc)2012-05-241-21/+46
| | | | | | | | | | | | 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.
* Add "show scene" command which lists stats for the currently selected ↵Justin Clark-Casey (justincc)2012-05-231-1/+6
| | | | | | | | | | console scene(s) This includes prim count, script count, avatar count, etc. Information is currently the same as "show stats", though show stats can only show one scene at a time because it listens for the latest outgoing stats packet (a bad approach that needs to change). Might be better to tie this module into the other stats module to display arbitrary stats rather than fetching directly from scene.SimStatsReporter. Console command is "show scene" because "show region" already exists for the grid service, which is unfortunate. Might need to make a distinction between "scene" relating to a live scene and "region" relating to more static region data (url, coords, etc.)
* Further refinement on propertiesBlueWall2012-05-181-7/+4
|
* Cleanup + change properties to set fields with private set : Thanks Justin ↵BlueWall2012-05-181-2/+4
| | | | for the tip.
* Provide Telehub setting to allow use of landmarksBlueWall2012-05-181-0/+7
| | | | Setting to allow use of landmarks to override telehub routing. Default is off.
* Check agent limit against root agent count rather than both root and child ↵Justin Clark-Casey (justincc)2012-05-171-15/+32
| | | | | | | | | | | agents From sl docs such as http://community.secondlife.com/t5/English-Knowledge-Base/Managing-Private-Regions/ta-p/700115 agent should apply to avatars only. This makes sense from a user perspective, and also from a code perspective since child agents with no physics or actions take up a fraction of root agent resources. As such, the check is now only performed in Scene.QueryAccess() - cross and teleport check this before allowing an agent to translocate. This also removes an off-by-one error that could occur in certain circumstances on teleport when a new child agent was double counted when a pre-teleport agent update was performed. This does not affect an existing bug where limits or other QueryAccess() checks are not applied to avatars logging directly into a region.
* minor: comment out individual attachment transfer log messages for nowJustin Clark-Casey (justincc)2012-05-141-4/+4
|
* Add configurable SpawnPointRoutingBlueWall2012-05-131-19/+62
| | | | | | | | | | | | | | | | | | Will use one of three selected methods to route avatar landing points when using Telehubs. The setting is in [Startup] using SpawnPointRouting = closest/random/sequence closest: The default setting. Routes avatar to the nearest SpawnPoint to the location. random: Picks random SpawnPoints to land the avatar. sequence: Follows a sequence to place the avatar on the next available SpawnPoint location Conflicts: OpenSim/Region/Framework/Scenes/Scene.cs
* Add even for terrain tainting and synchronize terrain module with physics ↵Dan Lake2012-05-101-7/+8
| | | | scene before physics simulation step rather than after
* Add regression test for teleporting an agent between separated regions on ↵Justin Clark-Casey (justincc)2012-04-271-2/+6
| | | | | | | | 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.
* Comment out old Scene.HandleLogOffUserFromGrid() to reduce client closing ↵Justin Clark-Casey (justincc)2012-04-261-35/+35
| | | | analysis complexity
* minor: Add avatar name to removing agent log messageJustin Clark-Casey (justincc)2012-04-261-2/+2
|
* Add a configuration switch to turn on/off the use of the trashMic Bowman2012-04-251-0/+2
| | | | | | | | | folder when deleting objects from a scene. The use of the trash folder causes assets to be created and stored everytime you delete an object from the scene (slows down the delete and adds mostly useless assets to your database). Default is on (use the trash folder) which is the standard behavior.
* Fix bug where setting phantom on a prim would result in a server log message ↵Justin Clark-Casey (justincc)2012-04-221-9/+5
| | | | | | | | rather than setting phantom. This was an oversight when removing some race conditions from PhysicsActor setting recently. Regression tests extended to probe this code path. Extending regression tests required implementation of a BasicPhysicsPrim (there was none before). However, BasicPhysics plugin is still of no current practical use other than to fill in as a component for other parts of regression testing.
* 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.
* remove possible PhysActor unexpectedly null race conditions when changing ↵Justin Clark-Casey (justincc)2012-04-031-6/+0
| | | | | | prim collision status factor out common SOP physics scene adding code into a common SOP.AddToPhysics() that is the counterpart to the existing RemoveFromPhysics()
* Eliminate race condition where many callers would check SOP.PhysicsActor != ↵Justin Clark-Casey (justincc)2012-04-031-4/+0
| | | | | | | | 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.
* refactor: Rename SOG.GetChildPart() to GetPart() since it can also return ↵Justin Clark-Casey (justincc)2012-03-311-2/+2
| | | | the 'root' part.
* 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-1/+7
|
* Add back parts of reverted changes that were not concerned with child agent ↵Justin Clark-Casey (justincc)2012-03-291-0/+4
| | | | | | | caching. This adds ScenePresence to IClientAPI.SceneAgent earlier on in the add client process so that its information is available to EventManager.OnNewClient() and OnClientLogin() Also add a code comment as to why we're caching friend information for child agents.
* Revert "Simplify friends caching by only doing this for root agents - no ↵Justin Clark-Casey (justincc)2012-03-291-1/+0
| | | | | | | | functions require caching for child agents." We need to cache child agents so that friends object edit/delete permissions will work across boarders on regions hosted by different simulators. This reverts commit d9f7b8549b3cb9699eb8bd54242d31aac0f8241a.
* Revert "Add comment about setting client.SceneAgent in AddNewClient()"Justin Clark-Casey (justincc)2012-03-291-3/+0
| | | | This reverts commit 964cae4f37120db34d0d3e2f08ab998215237dfd.
* Add comment about setting client.SceneAgent in AddNewClient()Justin Clark-Casey (justincc)2012-03-291-0/+3
|
* Simplify friends caching by only doing this for root agents - no functions ↵Justin Clark-Casey (justincc)2012-03-281-0/+1
| | | | | | | | require caching for child agents. This allows us to avoid unnecessary multiple calls to the friends service. All friends functions originate from the root agent and only go to other root agents in existing code. This also allows us to eliminate complex ref counting.
* More on switching the root folder from under the viewer. More experiments.Diva Canto2012-03-271-15/+0
|
* HG: Switch root folders from under the viewer. Towards HG 2.0. This is ↵Diva Canto2012-03-271-4/+11
| | | | guarded by an obscure config that no one but me should be using at this point.
* Merge branch 'master' of ssh://opensimulator.org/var/git/opensimDan Lake2012-03-271-285/+425
|\
| * HG: beginning of a more restrictive inventory access procedure (optional). ↵Diva Canto2012-03-271-0/+8
| | | | | | | | Experimental: we'll try switching the root folder from under the viewer.
| * Comment out log message about sending periodic appearance updates.Justin Clark-Casey (justincc)2012-03-231-2/+2
| |
| * Add experimental SendPeriodicAppearanceUpdates = true/false setting to ↵Justin Clark-Casey (justincc)2012-03-231-0/+17
| | | | | | | | | | | | | | | | | | | | [Startup] in OpenSim.ini On osgrid and other places, I have observed that manually sending appearance updates from the console often relieves grey avatar syndrome. Despite hunting high and low, I haven't been able to find where this packet is sometimes being lost - it might be a persistent viewer bug for all I know. Therefore, this experimental setting resends appearance data for everybody in the scene every 60 seconds. These packets are small and the viewer only fetches texture data if it doesn't already have it. Default is false.
| * Add a scene maintenance thread in parallel to the heartbeat thread. The ↵Justin Clark-Casey (justincc)2012-03-231-14/+77
| | | | | | | | | | | | | | | | | | maintenance thread will end up running regular jobs that don't need to be in the main scene loop. The idea is to make the critical main scene loop as skinny as possible - it doesn't need to run things that aren't time critical and don't depend on update ordering. This will be done gradually over time to try and uncover any issues. Many non-criticial scene loop activities are being launched on separate threadpool threads anyway. This may also allow modules to register their own maintenance jobs without having to maintain their own timers and threads. Currently the maintenance loop runs once a second, as opposed to the 89ms scene loop.
| * Remove unnecessary shutting down check in Scene.Heartbeat(). Add some ↵Justin Clark-Casey (justincc)2012-03-231-17/+20
| | | | | | | | method doc. Rename HeartbeatThread, shuttingdown to conform to code standards.
| * Rename Scene.StartTimer() to Start() - this method no longer uses a timer. ↵Justin Clark-Casey (justincc)2012-03-231-24/+25
| | | | | | | | Comment out more effectively unused old heartbeat code.
| * Fix build breakJustin Clark-Casey (justincc)2012-03-231-1/+1
| |
| * Fix bug in ScenePresenceAnimator.RemoveAnimation() introduced in commit 1a8769eJustin Clark-Casey (justincc)2012-03-231-2/+2
| | | | | | | | Forgot to uppercase the animation name for default animations, since for some reason we store and use them in upper rather than lowercase.
| * Comment out unused scene loop restart code.Justin Clark-Casey (justincc)2012-03-231-19/+22
| | | | | | | | This has actually been unused since at least 0.7.2 due to earlier changes.
| * Use m_lastFrameTick instead of m_lastUpdate in Scene.GetHealth(). ↵Justin Clark-Casey (justincc)2012-03-231-2/+2
| | | | | | | | m_lastUpdate is no longer properly updated and is redundant anyway.
| * Add commented out section on collisions switch in Scene.SetSceneCoreDebug().Justin Clark-Casey (justincc)2012-03-231-0/+6
| | | | | | | | This was not implemented before the recent changes but should be at some point.
| * If "debug scene updates true" then print out to log when a garbage ↵Justin Clark-Casey (justincc)2012-03-211-0/+3
| | | | | | | | collection occurs.
| * Add Scene.DebugUpdates switch which, if turned on, will print out a warning ↵Justin Clark-Casey (justincc)2012-03-211-10/+32
| | | | | | | | | | | | | | when a frame updates takes longer than twice the desired time This is controlled via "debug scene updates true|false" on the region console. Also fix an oversight with "debug scene teleport true|false"
| * Incorporate scene teleporting debugging into "debug scene teleport ↵Justin Clark-Casey (justincc)2012-03-211-1/+4
| | | | | | | | true|false" command
| * Replace "scene debug true false true" console command with "scene debug ↵Justin Clark-Casey (justincc)2012-03-211-25/+30
| | | | | | | | | | | | scripting true" or other parameters as appropriate. This is to allow individual switching of scene debug settings and to provide flexibiltiy for additional settings.
| * Add ability to log warn if a frame takes longer than twice the expected ↵Justin Clark-Casey (justincc)2012-03-211-7/+14
| | | | | | | | time. Currently commented out.
| * remove unnecessary tmpFrameMS, use maintc instead for frame time calculationJustin Clark-Casey (justincc)2012-03-201-3/+2
| |
| * Move frame loop entirely within Scene.Update() for better future performance ↵Justin Clark-Casey (justincc)2012-03-201-158/+179
| | | | | | | | | | | | | | | | 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.
| * Remove some pointless catching/throwing in the scene loop.Justin Clark-Casey (justincc)2012-03-201-7/+0
| |
| * Moved HandleAvatarPickerRequest from the generic Scene.PacketHandlers to the ↵Diva Canto2012-03-171-2/+0
| | | | | | | | UserManagementModule where it belongs. No functional changes.