diff options
author | Justin Clark-Casey (justincc) | 2012-08-23 23:13:53 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-08-23 23:13:53 +0100 |
commit | aede42b87559aa1f8f3197b53b9bf5c2b547701a (patch) | |
tree | b8dfd4e493262bfaea8450d589dff3f02de5f4a6 /OpenSim/Region | |
parent | Add an [HGAssetService] section to SQLiteStandalone.ini with the same connect... (diff) | |
download | opensim-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 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 27 |
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(); |