StrangeLoopGames / EcoIssues

131 stars 21 forks source link

[0.9.0.3release-78] [Server] Server crash on claiming land with zoning laws #18641

Open TheForeignHunter opened 4 years ago

TheForeignHunter commented 4 years ago

When someone tried to claim land, the server crashes. I think it has something to do with zoning laws.

Dump Time
10/07/2020 23:43:34

Exception
Exception: SynchronizationLockException
Message:Object synchronization method was called from an unsynchronized block of code.
Source:System.Private.CoreLib

System.Threading.SynchronizationLockException: Object synchronization method was called from an unsynchronized block of code.
   at System.Threading.Monitor.Exit(Object obj)
   at Eco.Gameplay.Items.InventoryLock.Dispose()
   at Eco.Gameplay.Items.InventoryChangeSet.Dispose()
   at Eco.Gameplay.Items.InventoryChangeSet.Finalize()

--END DUMP--

I got another crash log while testing too.

--BEGIN DUMP--
Dump Time
10/07/2020 23:43:34

Exception
Exception: NullReferenceException
Message:Object reference not set to an instance of an object.
Source:Eco.Gameplay

System.NullReferenceException: Object reference not set to an instance of an object.
   at Eco.Gameplay.Civics.GameValues.Values.MembershipRequirements.Value(IContextObject action)
   at Eco.Gameplay.Civics.GameValues.SetOfConditions.Value(IContextObject action)
   at Eco.Gameplay.Civics.GameValues.SetOfConditions.Value(IContextObject action)
   at Eco.Gameplay.Civics.IfThenBlock.TryPerform(Law law, GameAction action, LawSection section, Int32 index, StringBuilder sbDebug)
   at Eco.Gameplay.Civics.Laws.LawSection.CheckConditionsAndApplyEffects(Law law, GameAction action)
   at Eco.Gameplay.Civics.Laws.LawSection.Perform(Law law, GameAction action)
   at Eco.Gameplay.Civics.Laws.Law.Perform(GameAction action)
   at Eco.Gameplay.Civics.Laws.LawManager.Perform(GameAction action)
   at Eco.Gameplay.GameActions.GameActionManager.TryPerformActions(User user, List`1 actions, IEnumerable`1 preTests, IEnumerable`1 postEffects)
   at Eco.Gameplay.GameActions.GameActionManager.TryPerformActions(User user, GameActionPack actionPack, Boolean notify)
   at Eco.Gameplay.GameActions.GameActionManager.TryPerform(GameActionPack pack, Boolean notify)
   at Eco.Gameplay.GameActions.AtomicActions.DoNow(Action`1 func, Boolean notify)
   at Eco.Gameplay.GameActions.AtomicActions.ClaimNow(Deed deed, User actor, Inventory propertyClaimInv, Vector2i position, Boolean notify)
   at Eco.Gameplay.Property.PropertyManager.TryClaimOrUnclaim(User user, List`1 unclaimPos, List`1 claimPos, Deed deed)

--END DUMP--

Here is the full law that I believe is causing the issues. Pqlt7tIxaj-C I can also supply the .eco file if that would be helpful, I just don't want to post it publically.

SlayksWood commented 4 years ago

@TheForeignHunter This will be very helpful. You can provide your save file to me in discord Kirill (Slayks)#6251 or to mail kirill@strangeloopgames.com

TheForeignHunter commented 4 years ago

Just sent it via email!

SlayksWood commented 4 years ago

Save file(use slg mail to have access): https://drive.google.com/file/d/1qB5I2AAGsDwAF3Sdaw7b_fQ-SZC2Gs_B/view?usp=sharing