ServerMod / MultiAdmin

SCP: Secret Labratory Server modification to support different configs per instance plus a whole lot of other features

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

YAML should capture duplicates as a warning, NOT fatal error and crash all servers

PatPeter opened this issue · comments

I had a duplicate key in my last SCP server, but based on the output I thought it was my third SCP server. After a lot of searching, I found the duplicate key and removed it. However, this shouldn't have caused a fatal error and shouldn't have caused a crash loop on my server for the past 8 hours.

Unhandled Exception:
YamlDotNet.Core.YamlException: (Line: 45, Col: 1, Idx: 1436) - (Line: 45, Col: 16, Idx: 1451): Duplicate key ---> System.ArgumentException: An item with the same key has already been added.
  at System.ThrowHelper.ThrowArgumentException (ExceptionResource resource) <0x7f9b4ecaeec0 + 0x00021> in <filename unknown>:0
  at System.Collections.Generic.Dictionary`2[TKey,TValue].Insert (System.Collections.Generic.TKey key, System.Collections.Generic.TValue value, Boolean add) <0x7f9b4eb36700 + 0x00168> in <filename unknown>:0
  at System.Collections.Generic.Dictionary`2[TKey,TValue].Add (System.Collections.Generic.TKey key, System.Collections.Generic.TValue value) <0x7f9b4eb358b0 + 0x0001b> in <filename unknown>:0
  at YamlDotNet.RepresentationModel.YamlMappingNode.Load (IParser parser, YamlDotNet.RepresentationModel.DocumentLoadingState state) <0x40145ee0 + 0x000d0> in <filename unknown>:0
  --- End of inner exception stack trace ---
  at YamlDotNet.RepresentationModel.YamlMappingNode.Load (IParser parser, YamlDotNet.RepresentationModel.DocumentLoadingState state) <0x40145ee0 + 0x0018f> in <filename unknown>:0
  at YamlDotNet.RepresentationModel.YamlMappingNode..ctor (IParser parser, YamlDotNet.RepresentationModel.DocumentLoadingState state) <0x40145ba0 + 0x00093> in <filename unknown>:0
  at YamlDotNet.RepresentationModel.YamlNode.ParseNode (IParser parser, YamlDotNet.RepresentationModel.DocumentLoadingState state) <0x401458c0 + 0x00113> in <filename unknown>:0
  at YamlDotNet.RepresentationModel.YamlDocument..ctor (IParser parser) <0x401442c0 + 0x0007b> in <filename unknown>:0
  at YamlDotNet.RepresentationModel.YamlStream.Load (IParser parser) <0x401356a0 + 0x0006f> in <filename unknown>:0
  at YamlDotNet.RepresentationModel.YamlStream.Load (System.IO.TextReader input) <0x40133840 + 0x00047> in <filename unknown>:0
  at MultiAdmin.Config.Reload () <0x40133110 + 0x0015b> in <filename unknown>:0
  at MultiAdmin.Config..ctor (System.String config_file) <0x40133090 + 0x0004b> in <filename unknown>:0
  at MutliAdmin.Program.LoadserverFolders () <0x40132740 + 0x00607> in <filename unknown>:0
  at MutliAdmin.Program.StartHandleConfigs (System.String[] args) <0x401322b0 + 0x00213> in <filename unknown>:0
  at MutliAdmin.Program.Main (System.String[] args) <0x4010ce50 + 0x0015f> in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: YamlDotNet.Core.YamlException: (Line: 45, Col: 1, Idx: 1436) - (Line: 45, Col: 16, Idx: 1451): Duplicate key ---> System.ArgumentException: An item with the same key has already been added.
  at System.ThrowHelper.ThrowArgumentException (ExceptionResource resource) <0x7f9b4ecaeec0 + 0x00021> in <filename unknown>:0
  at System.Collections.Generic.Dictionary`2[TKey,TValue].Insert (System.Collections.Generic.TKey key, System.Collections.Generic.TValue value, Boolean add) <0x7f9b4eb36700 + 0x00168> in <filename unknown>:0
  at System.Collections.Generic.Dictionary`2[TKey,TValue].Add (System.Collections.Generic.TKey key, System.Collections.Generic.TValue value) <0x7f9b4eb358b0 + 0x0001b> in <filename unknown>:0
  at YamlDotNet.RepresentationModel.YamlMappingNode.Load (IParser parser, YamlDotNet.RepresentationModel.DocumentLoadingState state) <0x40145ee0 + 0x000d0> in <filename unknown>:0
  --- End of inner exception stack trace ---
  at YamlDotNet.RepresentationModel.YamlMappingNode.Load (IParser parser, YamlDotNet.RepresentationModel.DocumentLoadingState state) <0x40145ee0 + 0x0018f> in <filename unknown>:0
  at YamlDotNet.RepresentationModel.YamlMappingNode..ctor (IParser parser, YamlDotNet.RepresentationModel.DocumentLoadingState state) <0x40145ba0 + 0x00093> in <filename unknown>:0
  at YamlDotNet.RepresentationModel.YamlNode.ParseNode (IParser parser, YamlDotNet.RepresentationModel.DocumentLoadingState state) <0x401458c0 + 0x00113> in <filename unknown>:0
  at YamlDotNet.RepresentationModel.YamlDocument..ctor (IParser parser) <0x401442c0 + 0x0007b> in <filename unknown>:0
  at YamlDotNet.RepresentationModel.YamlStream.Load (IParser parser) <0x401356a0 + 0x0006f> in <filename unknown>:0
  at YamlDotNet.RepresentationModel.YamlStream.Load (System.IO.TextReader input) <0x40133840 + 0x00047> in <filename unknown>:0
  at MultiAdmin.Config.Reload () <0x40133110 + 0x0015b> in <filename unknown>:0
  at MultiAdmin.Config..ctor (System.String config_file) <0x40133090 + 0x0004b> in <filename unknown>:0
  at MutliAdmin.Program.LoadserverFolders () <0x40132740 + 0x00607> in <filename unknown>:0
  at MutliAdmin.Program.StartHandleConfigs (System.String[] args) <0x401322b0 + 0x00213> in <filename unknown>:0
  at MutliAdmin.Program.Main (System.String[] args) <0x4010ce50 + 0x0015f> in <filename unknown>:0

MultiAdmin 2.0.1 fixes that

Thanks!