From 8ea92c0669de17f4967540ecc1350860aa346f06 Mon Sep 17 00:00:00 2001 From: Mike Mazur Date: Tue, 12 Aug 2008 06:21:02 +0000 Subject: Thanks, lulurun, for a patch that addresses inventory problems that occur occasionally, but are fixed on restart (issue 1919). This patch introduces the following changes: 1. when a user teleports out of Region A, remove that user's profile from the Region A user profile cache 2. when a user crosses between regions out of Region A, remove that user's profile from the Region A user profile cache 3. the user profile cache's session ID member can now be set (written), and is updated each time a connection with a new avatar is established (ie: a new avatar enters the region) 4. when a region server looks up a user profile and a cache miss occurs, fetch the user profile from the user server first instead of immediately returning null --- OpenSim/Region/Environment/Scenes/ScenePresence.cs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'OpenSim/Region/Environment/Scenes/ScenePresence.cs') diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 1721acb..5c90bf3 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs @@ -1989,6 +1989,10 @@ namespace OpenSim.Region.Environment.Scenes m_scene.SendKillObject(m_localId); m_scene.NotifyMyCoarseLocationChange(); + // the user may change thier profile information in other region, + // so the userinfo in UserProfileCache is not reliable any more, delete it + m_scene.CommsManager.UserProfileCacheService.RemoveUser(UUID); + m_log.InfoFormat("User {0} is going to another region, profile cache removed", UUID); } else { -- cgit v1.1