* If a region running in grid mode fails to login to the grid service, startup will now terminate instead of carrying on (and thus burying the error message)
parent
690294c578
commit
d3fb6039ca
OpenSim
Framework/Communications
Grid/GridServer
Region
Application
ClientStack
Communications/OGS1
Environment/Scenes
|
@ -38,6 +38,7 @@ namespace OpenSim.Framework.Communications
|
|||
/// </summary>
|
||||
/// <param name="regionInfos"> </param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="System.Exception">Thrown if region registration failed</exception>
|
||||
RegionCommsListener RegisterRegion(RegionInfo regionInfos);
|
||||
|
||||
bool DeregisterRegion(RegionInfo regionInfo);
|
||||
|
|
|
@ -388,7 +388,7 @@ namespace OpenSim.Grid.GridServer
|
|||
" " + sim.regionLocY + " currently occupied by " + existingSim.regionName);
|
||||
}
|
||||
|
||||
return ErrorResponse("The key required to login your region did not match. Please check your send and receive keys.");
|
||||
return ErrorResponse("The key required to login your region did not match. Please check your grid send and receive keys.");
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -569,7 +569,18 @@ namespace OpenSim
|
|||
//moved these here as the terrain texture has to be created after the modules are initialized
|
||||
// and has to happen before the region is registered with the grid.
|
||||
scene.CreateTerrainTexture(true);
|
||||
scene.RegisterRegionWithGrid();
|
||||
|
||||
try
|
||||
{
|
||||
scene.RegisterRegionWithGrid();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat("[STARTUP]: Registration of region with grid failed, aborting startup - {0}", e);
|
||||
|
||||
// Carrying on now causes a lot of confusion down the line - we need to get the user's attention
|
||||
System.Environment.Exit(1);
|
||||
}
|
||||
|
||||
// We need to do this after we've initialized the scripting engines.
|
||||
scene.StartScripts();
|
||||
|
|
|
@ -129,10 +129,6 @@ namespace OpenSim.Region.ClientStack
|
|||
|
||||
scene.LoadWorldMap();
|
||||
|
||||
//moved to opensimMain as these have to happen after modules are initialised
|
||||
// scene.CreateTerrainTexture(true);
|
||||
// scene.RegisterRegionWithGrid();
|
||||
|
||||
scene.PhysicsScene = GetPhysicsScene();
|
||||
scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised());
|
||||
scene.PhysicsScene.SetWaterLevel(regionInfo.EstateSettings.waterHeight);
|
||||
|
@ -171,4 +167,4 @@ namespace OpenSim.Region.ClientStack
|
|||
protected abstract Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager,
|
||||
AgentCircuitManager circuitManager);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -94,7 +94,7 @@ namespace OpenSim.Region.Communications.OGS1
|
|||
// see IGridServices
|
||||
public RegionCommsListener RegisterRegion(RegionInfo regionInfo)
|
||||
{
|
||||
m_log.DebugFormat(
|
||||
m_log.InfoFormat(
|
||||
"[OGS1 GRID SERVICES]: Attempting to register region {0} with grid at {1}",
|
||||
regionInfo.RegionName, serversInfo.GridURL);
|
||||
|
||||
|
@ -137,14 +137,16 @@ namespace OpenSim.Region.Communications.OGS1
|
|||
XmlRpcRequest GridReq = new XmlRpcRequest("simulator_login", SendParams);
|
||||
GridResp = GridReq.Send(serversInfo.GridURL, 30000);
|
||||
}
|
||||
catch (Exception ex)
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat(
|
||||
"[OGS1 GRID SERVICES]: Unable to connect to grid at {0}. Grid server not running? Exception {1}",
|
||||
serversInfo.GridURL, ex);
|
||||
Exception e2
|
||||
= new Exception(
|
||||
String.Format("Unable to connect to grid at {0}. Grid service not running?", serversInfo.GridURL),
|
||||
e);
|
||||
|
||||
throw(ex);
|
||||
throw(e2);
|
||||
}
|
||||
|
||||
Hashtable GridRespData = (Hashtable)GridResp.Value;
|
||||
Hashtable griddatahash = GridRespData;
|
||||
|
||||
|
@ -152,11 +154,10 @@ namespace OpenSim.Region.Communications.OGS1
|
|||
if (GridRespData.ContainsKey("error"))
|
||||
{
|
||||
string errorstring = (string) GridRespData["error"];
|
||||
m_log.ErrorFormat(
|
||||
"[OGS1 GRID SERVICES]: Unable to connect to grid at {0}: {1}",
|
||||
serversInfo.GridURL, errorstring);
|
||||
|
||||
return null;
|
||||
Exception e = new Exception(String.Format("Unable to connect to grid at {0}: {1}", serversInfo.GridURL, errorstring));
|
||||
|
||||
throw e;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -292,7 +293,7 @@ namespace OpenSim.Region.Communications.OGS1
|
|||
|
||||
if (responseData.ContainsKey("error"))
|
||||
{
|
||||
Console.WriteLine("error received from grid server" + responseData["error"]);
|
||||
m_log.WarnFormat("[OGS1 GRID SERVICES]: Error received from grid server: {0}", responseData["error"]);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -355,7 +356,7 @@ namespace OpenSim.Region.Communications.OGS1
|
|||
|
||||
if (responseData.ContainsKey("error"))
|
||||
{
|
||||
m_log.Error("[OGS1 GRID SERVICES]: Error received from grid server" + responseData["error"]);
|
||||
m_log.Error("[OGS1 GRID SERVICES]: Error received from grid server: " + responseData["error"]);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -924,13 +924,20 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Register this region with a grid service
|
||||
/// </summary>
|
||||
/// <exception cref="System.Exception">Thrown if registration of the region itself fails.</exception>
|
||||
public void RegisterRegionWithGrid()
|
||||
{
|
||||
RegisterCommsEvents();
|
||||
|
||||
// These two 'commands' *must be* next to each other or sim rebooting fails.
|
||||
m_sceneGridService.RegisterRegion(RegionInfo);
|
||||
m_sceneGridService.InformNeighborsThatRegionisUp(RegionInfo);
|
||||
|
||||
Dictionary<string, string> dGridSettings = m_sceneGridService.GetGridSettings();
|
||||
|
||||
if (dGridSettings.ContainsKey("allow_forceful_banlines"))
|
||||
{
|
||||
if (dGridSettings["allow_forceful_banlines"] != "TRUE")
|
||||
|
|
|
@ -84,6 +84,11 @@ namespace OpenSim.Region.Environment.Scenes
|
|||
m_commsProvider.InterRegion.rdebugRegionName = _debugRegionName;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Register a region with the grid
|
||||
/// </summary>
|
||||
/// <param name="regionInfos"></param>
|
||||
/// <exception cref="System.Exception">Thrown if region registration fails.</exception>
|
||||
public void RegisterRegion(RegionInfo regionInfos)
|
||||
{
|
||||
m_regionInfo = regionInfos;
|
||||
|
|
Loading…
Reference in New Issue