StrangeLoopGames / EcoIssues

131 stars 21 forks source link

Reputation randomly crashes server on start (master) #1826

Closed SeanAtr0n closed 7 years ago

SeanAtr0n commented 7 years ago

Load the 5.6 game save and see random crashes

SeanAtr0n commented 7 years ago

I have some code commented out locally to avoid exceptions, here is one of the more rare exceptions at System.ThrowHelper.ThrowKeyNotFoundException() at System.Collections.Generic.Dictionary2.get_Item(TKey key) at Eco.Gameplay.Systems.TextLinks.UserFinder.FindObjects(String text) at Eco.Gameplay.Systems.TextLinks.TextLinkManager.<>c__DisplayClass7_0.<MarkUpText>b__0(IObjectFinder f) at System.Linq.Enumerable.<SelectManyIterator>d__162.MoveNext() at System.Linq.Buffer1..ctor(IEnumerable1 source) at System.Linq.OrderedEnumerable1.<GetEnumerator>d__1.MoveNext() at Eco.Shared.Utils.EnumerableExtensions.ForEach[T](IEnumerable1 enumeration, Action1 action) at Eco.Gameplay.Systems.TextLinks.TextLinkManager.MarkUpText(String text) at Eco.Gameplay.Players.PlayerObjective.Set(User user, String newRawObjective) at Eco.Gameplay.Players.WorldPopulation.Initialize(IEnumerable1 users) at Eco.Gameplay.Players.UserManager.<.ctor>b17_0(User user, IPersistent handle) at Eco.Core.Serialization.DataStore.<>c__DisplayClass36_1`1.b1() at System.Threading.Tasks.Task.Execute()

SeanAtr0n commented 7 years ago

Random infinite 'loading users' stack trace (had to pause and copy): mscorlib.dll!System.Collections.Generic.Dictionary<string, Eco.Gameplay.Systems.TextLinks.ItemFinder.ItemData>.Insert(string key, Eco.Gameplay.Systems.TextLinks.ItemFinder.ItemData value, bool add) Unknown

Eco.Gameplay!Eco.Gameplay.Systems.TextLinks.ItemFinder.BuildDictionary.AnonymousMethod3_1(Eco.Gameplay.Items.Item item) Line 65 C# Eco.Shared!Eco.Shared.Utils.EnumerableExtensions.ForEach(System.Collections.Generic.IEnumerable enumeration, System.Action action) Line 298 C# Eco.Gameplay!Eco.Gameplay.Systems.TextLinks.ItemFinder.BuildDictionary() Line 60 C# Eco.Gameplay!Eco.Gameplay.Systems.TextLinks.ItemFinder.FindObjects(string text) Line 45 C# Eco.Gameplay!Eco.Gameplay.Systems.TextLinks.TextLinkManager.MarkUpText.AnonymousMethod0(Eco.Gameplay.Systems.TextLinks.IObjectFinder f) Line 93 C# System.Core.dll!System.Linq.Enumerable.SelectManyIterator<Eco.Gameplay.Systems.TextLinks.IObjectFinder, Eco.Gameplay.Systems.TextLinks.LinkData>(System.Collections.Generic.IEnumerable source, System.Func<Eco.Gameplay.Systems.TextLinks.IObjectFinder, System.Collections.Generic.IEnumerable> selector) Unknown System.Core.dll!System.Linq.Buffer.Buffer(System.Collections.Generic.IEnumerable source) Unknown System.Core.dll!System.Linq.OrderedEnumerable.GetEnumerator() Unknown Eco.Shared!Eco.Shared.Utils.EnumerableExtensions.ForEach(System.Collections.Generic.IEnumerable enumeration, System.Action action) Line 297 C# Eco.Gameplay!Eco.Gameplay.Systems.TextLinks.TextLinkManager.MarkUpText(string text) Line 93 C# Eco.Gameplay!Eco.Gameplay.Players.PlayerObjective.Set(Eco.Gameplay.Players.User user, string newRawObjective) Line 35 C# Eco.Gameplay!Eco.Gameplay.Players.WorldPopulation.Initialize(System.Collections.Generic.IEnumerable users) Line 64 C# Eco.Gameplay!Eco.Gameplay.Players.UserManager..ctor.AnonymousMethod17_0(Eco.Gameplay.Players.User user, Eco.Core.Serialization.IPersistent handle) Line 93 C# Eco.Core!Eco.Core.Serialization.DataStore.LoadAsync.AnonymousMethod1() Line 341 C# mscorlib.dll!System.Threading.Tasks.Task.Execute() Unknown mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal(ref System.Threading.Tasks.Task currentTaskSlot) Unknown mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry(bool bPreventDoubleExecution) Unknown mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch() Unknown

johnkslg commented 7 years ago

fixed