* From inspecting OSGrid WP logs, it appears one particular client is failing because they are giving an illegal initial position to ScenePresence.MakeRootAgent()
* If we detected an illegal position (x, y outside region bounds or z < 0), then print out the illegal position and substitute an emergency <128, 128, 128> instead0.6.0-stable
parent
ce9d0799ae
commit
42e54537aa
|
@ -588,8 +588,19 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
public void MakeRootAgent(LLVector3 pos, bool isFlying)
|
public void MakeRootAgent(LLVector3 pos, bool isFlying)
|
||||||
{
|
{
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
// "[SCENEPRESENCE]: Upgrading child agent {0}, {1} to a root agent in {2}",
|
// "[SCENE PRESENCE]: Upgrading child agent {0}, {1} to a root agent in {2} at pos {3}",
|
||||||
// Name, UUID, m_scene.RegionInfo.RegionName);
|
// Name, UUID, m_scene.RegionInfo.RegionName, pos);
|
||||||
|
|
||||||
|
if (pos.X < 0 || pos.X > Constants.RegionSize || pos.Y < 0 || pos.Y > Constants.RegionSize || pos.Z < 0)
|
||||||
|
{
|
||||||
|
LLVector3 emergencyPos = new LLVector3(128, 128, 128);
|
||||||
|
|
||||||
|
m_log.WarnFormat(
|
||||||
|
"[SCENE PRESENCE]: MakeRootAgent() was given an illegal position of {0} for avatar {2}, {3}. Substituting {4}",
|
||||||
|
pos, Name, UUID, emergencyPos);
|
||||||
|
|
||||||
|
pos = emergencyPos;
|
||||||
|
}
|
||||||
|
|
||||||
m_isChildAgent = false;
|
m_isChildAgent = false;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue