Full Version : Server Crash
xmlspawner >>Troubleshooting >>Server Crash


<< Prev | Next >>

koluch- 11-26-2006
Was wondering if you culd help me correct this crash we had today sad.gif....
CODE

Server Crash Report
===================

RunUO Version 2.0, Build 2518.13284
Operating System: Microsoft Windows NT 5.1.2600 Service Pack 2
.NET Framework: 2.0.50727.42
Time: 11/26/2006 5:44:47 PM
Mobiles: 38212
Items: 250724
Exception:
System.OverflowException: TimeSpan overflowed because the duration is too long.
  at System.TimeSpan.Interval(Double value, Int32 scale)
  at System.TimeSpan.FromHours(Double value)
  at Server.Items.XmlQuestHolder.get_ExpiresIn() in c:\RUNUO OURS\Scripts\XML Spawner 3.16\XmlSpawner2_20_v316_2of3\XmlQuest\XmlQuestHolder.cs:line 1002
  at Server.Items.XmlQuestHolder.get_IsExpired() in c:\RUNUO OURS\Scripts\XML Spawner 3.16\XmlSpawner2_20_v316_2of3\XmlQuest\XmlQuestHolder.cs:line 1016
  at Server.Items.XmlQuestHolder.get_IsValid() in c:\RUNUO OURS\Scripts\XML Spawner 3.16\XmlSpawner2_20_v316_2of3\XmlQuest\XmlQuestHolder.cs:line 1115
  at Server.Items.XmlQuest.ApplyKilled(Mobile m_killed, Mobile m_killer, IXmlQuest quest) in c:\RUNUO OURS\Scripts\XML Spawner 3.16\XmlSpawner2_20_v316_2of3\XmlQuest\XmlQuest.cs:line 962
  at Server.Items.XmlQuest.CheckKilled(Mobile m_killed, Mobile m_killer, Mobile member) in c:\RUNUO OURS\Scripts\XML Spawner 3.16\XmlSpawner2_20_v316_2of3\XmlQuest\XmlQuest.cs:line 1020
  at Server.Items.XmlQuest.RegisterKill(Mobile m_killed, Mobile m_killer) in c:\RUNUO OURS\Scripts\XML Spawner 3.16\XmlSpawner2_20_v316_2of3\XmlQuest\XmlQuest.cs:line 1063
  at Server.Mobiles.BaseCreature.OnDeath(Container c) in c:\RUNUO OURS\Scripts\Engines\AI\Creature\BaseCreature.cs:line 4228
  at Server.Mobiles.EliteNinja.OnDeath(Container c) in c:\RUNUO OURS\Scripts\Mobiles\Monsters\SE\EliteNinja.cs:line 73
  at Server.Mobile.Kill()
  at Server.Mobile.Damage(Int32 amount, Mobile from, Boolean informMount)
  at Server.Mobile.Damage(Int32 amount, Mobile from)
  at Server.Mobiles.BaseCreature.Damage(Int32 amount, Mobile from) in c:\RUNUO OURS\Scripts\Engines\AI\Creature\BaseCreature.cs:line 901
  at Server.AOS.Damage(Mobile m, Mobile from, Int32 damage, Boolean ignoreArmor, Int32 phys, Int32 fire, Int32 cold, Int32 pois, Int32 nrgy, Boolean keepAlive) in c:\RUNUO OURS\Scripts\Misc\AOS.cs:line 148
  at Server.AOS.Damage(Mobile m, Mobile from, Int32 damage, Boolean ignoreArmor, Int32 phys, Int32 fire, Int32 cold, Int32 pois, Int32 nrgy) in c:\RUNUO OURS\Scripts\Misc\AOS.cs:line 43
  at Server.Items.BaseWeapon.OnHit(Mobile attacker, Mobile defender, Double damageBonus) in c:\RUNUO OURS\Scripts\Customs\Custom Resources\BaseWeapon.cs:line 1484
  at Server.Items.BaseWeapon.OnSwing(Mobile attacker, Mobile defender, Double damageBonus) in c:\RUNUO OURS\Scripts\Customs\Custom Resources\BaseWeapon.cs:line 986
  at Server.Items.BaseWeapon.OnSwing(Mobile attacker, Mobile defender) in c:\RUNUO OURS\Scripts\Customs\Custom Resources\BaseWeapon.cs:line 945
  at Server.Items.Fists.OnSwing(Mobile attacker, Mobile defender) in c:\RUNUO OURS\Scripts\Items\Weapons\Fists.cs:line 164
  at Server.Mobile.CombatTimer.OnTick()
  at Server.Timer.Slice()
  at Server.Core.Main(String[] args)


Sorry, been a long day and my brain is just not working sad.gif

Thanks.

koluch- 11-26-2006
Well found the issue with the crash.
The player used a PQ book and wrote incorrectly the objective.
He had:
CODE

Collect 100 pyretic leather

when it should have been
CODE

COLLECT,PyreticLeather,100


I got the PQ book from him and when I dropped it on the ground and it asks if you want to delete the quest the server crashed again, same report as above.

Wondering if there is a way to put a guard on that part incase someone does an incorrect entry?
If not I guess we will just use them to have only staff make the little quests :/
By the by, has anyone else ever had this happen??

Thanks for any help and suggestions :]

koluch

ArteGordon- 11-26-2006
I will check it out and post a fix in the 3.17 beta.

(edit)

The objective string is not the problem. While it probably doesnt do what they wanted (since it doesnt use the actual COLLECT keyword and so wont automatically register collected items), you can put any string as an objective and it is still valid and will not cause any server problems.

They must have entered in some extremely large value for the expiration time which is what caused the crash. I will add some additional range checking to keep that from happening.

(edit)

Fix to XmlQuestHolder.cs posted in the latest 3.17 beta release package. The expiration time is now capped at 100 years.
The fix will apply retroactively to any existing questholders with invalid expiration times as well.
You can just update the xmlquestholder.cs from the beta 3.17 package if you like.

koluch- 11-28-2006
Many thanks as always Arti!
It figures it would be one of our silly players to do something stupid and cause an issue, hehe.
( I slapped his hand, gave him a major guilt trip and made him stand in the corner )
Look forward to the 3.17 beta :]

Koluch

ArteGordon- 11-28-2006
you can grab it here.
http://xmlspawner.15.forumer.com/index.php?showtopic=53

It is essentially what will be in the final 3.17 release. I just havent gotten around to packaging it up and posting it.