aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-08-23 23:13:53 +0100
committerJustin Clark-Casey (justincc)2012-08-23 23:13:53 +0100
commitaede42b87559aa1f8f3197b53b9bf5c2b547701a (patch)
treeb8dfd4e493262bfaea8450d589dff3f02de5f4a6
parentAdd an [HGAssetService] section to SQLiteStandalone.ini with the same connect... (diff)
downloadopensim-SC-aede42b87559aa1f8f3197b53b9bf5c2b547701a.zip
opensim-SC-aede42b87559aa1f8f3197b53b9bf5c2b547701a.tar.gz
opensim-SC-aede42b87559aa1f8f3197b53b9bf5c2b547701a.tar.bz2
opensim-SC-aede42b87559aa1f8f3197b53b9bf5c2b547701a.tar.xz
If a script state save fails for some reason on shutdown/region removal, get xengine to spit out some useful information and continue to save other script states
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs27
1 files changed, 25 insertions, 2 deletions
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index 53f899a..5a3f002 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -589,7 +589,19 @@ namespace OpenSim.Region.ScriptEngine.XEngine
589 if (m_Assemblies.ContainsKey(instance.AssetID)) 589 if (m_Assemblies.ContainsKey(instance.AssetID))
590 { 590 {
591 string assembly = m_Assemblies[instance.AssetID]; 591 string assembly = m_Assemblies[instance.AssetID];
592 instance.SaveState(assembly); 592
593 try
594 {
595 instance.SaveState(assembly);
596 }
597 catch (Exception e)
598 {
599 m_log.Error(
600 string.Format(
601 "[XEngine]: Failed final state save for script {0}.{1}, item UUID {2}, prim UUID {3} in {4}. Exception ",
602 instance.PrimName, instance.ScriptName, instance.ItemID, instance.ObjectID, World.Name)
603 , e);
604 }
593 } 605 }
594 606
595 // Clear the event queue and abort the instance thread 607 // Clear the event queue and abort the instance thread
@@ -707,7 +719,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine
707 assembly = m_Assemblies[i.AssetID]; 719 assembly = m_Assemblies[i.AssetID];
708 } 720 }
709 721
710 i.SaveState(assembly); 722 try
723 {
724 i.SaveState(assembly);
725 }
726 catch (Exception e)
727 {
728 m_log.Error(
729 string.Format(
730 "[XEngine]: Failed to save state of script {0}.{1}, item UUID {2}, prim UUID {3} in {4}. Exception ",
731 i.PrimName, i.ScriptName, i.ItemID, i.ObjectID, World.Name)
732 , e);
733 }
711 } 734 }
712 735
713 instances.Clear(); 736 instances.Clear();