More exception checks and crash hints

If no scriptengine is specified then don't try to load any.
ThreadPoolClientBranch
Tedd Hansen 2008-02-18 14:21:51 +00:00
parent f47bcb0f98
commit c62328950a
6 changed files with 38 additions and 17 deletions

View File

@ -56,7 +56,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
{ {
try try
{ {
if (openSim.ConfigSource.Configs["RemoteAdmin"].GetBoolean("enabled", false)) if (openSim.ConfigSource.Configs["RemoteAdmin"] != null && openSim.ConfigSource.Configs["RemoteAdmin"].GetBoolean("enabled", false))
{ {
m_log.Info("[RADMIN]: Remote Admin Plugin Enabled"); m_log.Info("[RADMIN]: Remote Admin Plugin Enabled");
requiredPassword = openSim.ConfigSource.Configs["RemoteAdmin"].GetString("access_password", String.Empty); requiredPassword = openSim.ConfigSource.Configs["RemoteAdmin"].GetString("access_password", String.Empty);

View File

@ -421,8 +421,8 @@ namespace OpenSim.Framework.Data.MySQL
public void StoreLandObject(Land parcel, LLUUID regionUUID) public void StoreLandObject(Land parcel, LLUUID regionUUID)
{ {
// Does the new locking fix it? // Does the new locking fix it?
m_log.Info("[DATASTORE]: Tedds temp fix: Waiting 3 seconds for stuff to catch up. (Someone please fix! :))"); m_log.Info("[DATASTORE]: Tedds temp fix: Waiting 3 seconds to avoid others writing to table while we hold a dataset of it. (Someone please fix! :))");
System.Threading.Thread.Sleep(2500 + rnd.Next(300, 900)); System.Threading.Thread.Sleep(2500 + rnd.Next(0, 1000));
lock (m_dataSet) lock (m_dataSet)
{ {

View File

@ -559,6 +559,7 @@ namespace OpenSim.Framework.Servers
catch (Exception e) catch (Exception e)
{ {
m_log.Warn("[HTTPD]: Error - " + e.Message); m_log.Warn("[HTTPD]: Error - " + e.Message);
m_log.Warn("Tip: Do you have permission to listen on port " + m_port + "?");
} }
} }

View File

@ -50,8 +50,12 @@ namespace OpenSim.Framework.Statistics
public void AddTexture(AssetBase image) public void AddTexture(AssetBase image)
{ {
texturesInCache++; // Tedd: I added null check to avoid exception. Don't know if texturesInCache should ++ anyway?
textureCacheMemoryUsage += image.Data.Length; if (image.Data != null)
{
texturesInCache++;
textureCacheMemoryUsage += image.Data.Length;
}
} }
/// <summary> /// <summary>

View File

@ -181,7 +181,7 @@ namespace OpenSim
config.Set("storage_prim_inventories", true); config.Set("storage_prim_inventories", true);
config.Set("startup_console_commands_file", String.Empty); config.Set("startup_console_commands_file", String.Empty);
config.Set("shutdown_console_commands_file", String.Empty); config.Set("shutdown_console_commands_file", String.Empty);
config.Set("script_engine", "OpenSim.Region.ScriptEngine.DotNetEngine.dll"); config.Set("script_engine", "");
config.Set("asset_database", "sqlite"); config.Set("asset_database", "sqlite");
} }
@ -264,7 +264,7 @@ namespace OpenSim
m_startupCommandsFile = startupConfig.GetString("startup_console_commands_file", String.Empty); m_startupCommandsFile = startupConfig.GetString("startup_console_commands_file", String.Empty);
m_shutdownCommandsFile = startupConfig.GetString("shutdown_console_commands_file", String.Empty); m_shutdownCommandsFile = startupConfig.GetString("shutdown_console_commands_file", String.Empty);
m_scriptEngine = startupConfig.GetString("script_engine", "OpenSim.Region.ScriptEngine.DotNetEngine.dll"); m_scriptEngine = startupConfig.GetString("script_engine", "");
m_assetStorage = startupConfig.GetString("asset_database", "sqlite"); m_assetStorage = startupConfig.GetString("asset_database", "sqlite");
@ -449,18 +449,26 @@ namespace OpenSim
m_moduleLoader.PickupModules(scene, "."); m_moduleLoader.PickupModules(scene, ".");
//m_moduleLoader.PickupModules(scene, "ScriptEngines"); //m_moduleLoader.PickupModules(scene, "ScriptEngines");
//m_moduleLoader.LoadRegionModules(Path.Combine("ScriptEngines", m_scriptEngine), scene); //m_moduleLoader.LoadRegionModules(Path.Combine("ScriptEngines", m_scriptEngine), scene);
m_log.Info("[MODULES]: Loading scripting engine modules");
foreach (string module in m_scriptEngine.Split(',')) if (string.IsNullOrEmpty(m_scriptEngine))
{ {
string mod = module.Trim(" \t".ToCharArray()); // Clean up name m_log.Info("[MODULES]: No script engien module specified");
m_log.Info("[MODULES]: Loading scripting engine: " + mod); }
try else
{
m_log.Info("[MODULES]: Loading scripting engine modules");
foreach (string module in m_scriptEngine.Split(','))
{ {
m_moduleLoader.LoadRegionModules(Path.Combine("ScriptEngines", mod), scene); string mod = module.Trim(" \t".ToCharArray()); // Clean up name
} m_log.Info("[MODULES]: Loading scripting engine: " + mod);
catch (Exception ex) try
{ {
m_log.Error("[MODULES]: Failed to load script engine: " + ex.ToString()); m_moduleLoader.LoadRegionModules(Path.Combine("ScriptEngines", mod), scene);
}
catch (Exception ex)
{
m_log.Error("[MODULES]: Failed to load script engine: " + ex.ToString());
}
} }
} }

View File

@ -106,6 +106,14 @@ namespace OpenSim.Region.Physics.Manager
private void AddPlugin(string FileName) private void AddPlugin(string FileName)
{ {
// TODO / NOTE
// The assembly named 'OpenSim.Region.Physics.BasicPhysicsPlugin' was loaded from
// 'file:///C:/OpenSim/trunk2/bin/Physics/OpenSim.Region.Physics.BasicPhysicsPlugin.dll'
// using the LoadFrom context. The use of this context can result in unexpected behavior
// for serialization, casting and dependency resolution. In almost all cases, it is recommended
// that the LoadFrom context be avoided. This can be done by installing assemblies in the
// Global Assembly Cache or in the ApplicationBase directory and using Assembly.
// Load when explicitly loading assemblies.
Assembly pluginAssembly = Assembly.LoadFrom(FileName); Assembly pluginAssembly = Assembly.LoadFrom(FileName);
foreach (Type pluginType in pluginAssembly.GetTypes()) foreach (Type pluginType in pluginAssembly.GetTypes())