Server Crash - Multiplayer - Laws


  • Hey yall, so I think we encountered a bug that crashes the server. Here's the steps we took to "achieve" it:

    1. Define a district
    2. Start a law vote for a law specific to the district
    3. Start a definition for new districts
    4. Pass the law first proposed.
    5. Pass the law to redefine districts.

    Error we're getting on the server logs:
    nhandled Exception: System.AggregateException: One or more errors occurred. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
    at Eco.Gameplay.LegislationSystem.LawLogic.LawLogicNode.GetDistricts()
    at Eco.Gameplay.LegislationSystem.LawLogic.Fields.DistrictDropDown.IdToSelectedData(String id)
    at Eco.Gameplay.LegislationSystem.LawLogic.Fields.DropDown1.RefreshSelectedData() at Eco.Gameplay.LegislationSystem.LawLogic.Fields.DropDown1.GetSelectedData()
    at System.Linq.Enumerable.WhereSelectListIterator2.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__172.MoveNext()
    at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() at System.Linq.Enumerable.<DistinctIterator>d__641.MoveNext()
    at System.Linq.Enumerable.<IntersectIterator>d__701.MoveNext() at System.Linq.Enumerable.Any[TSource](IEnumerable1 source)
    at Eco.Gameplay.LegislationSystem.LawLogic.PassedActions.DistrictEditor.IsValidSelf()
    at Eco.Gameplay.LegislationSystem.LawLogic.LawLogicNode.IsValid()
    at System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext() at System.Collections.Generic.List1.InsertRange(Int32 index, IEnumerable1 collection) at Eco.Gameplay.LegislationSystem.LawLogic.LawLogicNode.IsValid() at System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext()
    at System.Collections.Generic.List1.InsertRange(Int32 index, IEnumerable1 collection)
    at Eco.Gameplay.LegislationSystem.LawLogic.LawLogicNode.IsValid()
    at System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext() at System.Collections.Generic.List1.InsertRange(Int32 index, IEnumerable1 collection) at Eco.Gameplay.LegislationSystem.LawLogic.LawLogicNode.IsValid() at System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext()
    at System.Collections.Generic.List1.InsertRange(Int32 index, IEnumerable1 collection)
    at Eco.Gameplay.LegislationSystem.LawLogic.LawLogicNode.IsValid()
    at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() at System.Collections.Generic.List1.InsertRange(Int32 index, IEnumerable1 collection) at Eco.Gameplay.LegislationSystem.LawLogic.LawLogicNode.IsValid() at System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext()
    at System.Collections.Generic.List1.InsertRange(Int32 index, IEnumerable1 collection)
    at Eco.Gameplay.LegislationSystem.LawLogic.LawLogicNode.IsValid()
    at Eco.Gameplay.Items.Law.OnLegislationDeserialized()
    at Eco.Gameplay.Legislation..ctor()
    --- End of inner exception stack trace ---
    at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
    at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
    at System.Activator.CreateInstance(Type type, Boolean nonPublic)
    at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
    at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
    at System.Activator.CreateInstance(Type type, Object[] args)
    at Eco.Server.PluginManager.AddPlugin(Type pluginType, Object[] p)
    at Eco.Server.PluginManager.<.ctor>b__10_3()
    at System.Threading.Tasks.Task.Execute()
    --- End of inner exception stack trace ---
    at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
    at Eco.Server.PluginManager..ctor()
    at Eco.Server.Startup.Start(String[] args)
    at Eco.Server.MainClass.Main(String[] args)

    Have fun with that. I'm going to attempt surgery on the laws file.


  • bug 38 laws 6 districts 1
    3
    Posts
    424
    Views
    Log in to reply




  • Please report bugs at EcoIssues. That's where it's done nowadays.

    • ­ Ecoylent is people! Do not replace any meal with Ecoylent!

    EcoIssues at GitHub
    Eco Discord
    SLG support@strangeloopgames.com


bug 38 laws 6 districts 1
3
Posts
424
Views
Log in to reply

Internal error.

Oops! Looks like something went wrong!