Open rdebath opened 9 months ago
What did you do to trigger the Command failed
case to get reached?
Hammered the server.
It's running lots of sessions (40) each placing blocks at just under the spam limit (no actual /place, or other, commands though). Then the server saves the level, I think. Which causes all commands on all sessions to error in this way. It also doesn't seem to recover unless every session logs out.
Unfortunately I haven't been able to repeat it on a server I own, despite clobbering them both less and so much the the kernel kills them off.
Well, I've found something that kinda looks the same, except the server usually dies completely rather soon after.
Type: ExecutionEngineException
Source:
Message: Couldn't create thread. Error 0x2733
Trace: at (wrapper managed-to-native) System.Threading.Thread.Thread_internal(System.Threading.Thread,System.MulticastDelegate)
at System.Threading.Thread.StartInternal (System.Object principal, System.Threading.StackCrawlMarkstackMark) [0x0001a] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
at System.Threading.Thread.Start (System.Threading.StackCrawlMarkstackMark) [0x0002d] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
at System.Threading.Thread.Start () [0x00002] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
at MCGalaxy.Server.StartThread (System.Threading.Threadthread, System.String name, System.Threading.ThreadStart threadFunc) [0x00023] in /opt/mcgalaxy/MCGalaxy/MCGalaxy/Server/Server.cs:343
at MCGalaxy.Player.HandleCommand (System.String cmd, System.String args, MCGalaxy.CommandData data) [0x000eb] in /opt/mcgalaxy/MCGalaxy/MCGalaxy/Player/Player.Handlers.cs:528
Type: ExecutionEngineException
Source:
Message: Couldn't create thread. Error 0x0
Trace: at (wrapper managed-to-native) System.Threading.Thread.Thread_internal(System.Threading.Thread,System.MulticastDelegate)
at System.Threading.Thread.StartInternal (System.Object principal, System.Threading.StackCrawlMarkstackMark) [0x0001a] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
at System.Threading.Thread.Start (System.Threading.StackCrawlMarkstackMark) [0x0002d] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
at System.Threading.Thread.Start () [0x00002] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
at MCGalaxy.Server.StartThread (System.Threading.Threadthread, System.String name, System.Threading.ThreadStart threadFunc) [0x00023] in /opt/mcgalaxy/MCGalaxy/MCGalaxy/Server/Server.cs:343
at MCGalaxy.Player.HandleCommand (System.String cmd, System.String args, MCGalaxy.CommandData data) [0x000eb] in /opt/mcgalaxy/MCGalaxy/MCGalaxy/Player/Player.Handlers.cs:528
Type: ExecutionEngineException
Source:
Message: MonoError reused after mono_error_cleanup
Trace: at (wrapper managed-to-native) System.Threading.Thread.Thread_internal(System.Threading.Thread,System.MulticastDelegate)
at System.Threading.Thread.StartInternal (System.Security.Principal.IPrincipal principal, System.Threading.StackCrawlMarkstackMark) [0x0001a] in <d0e12f672b88444ab4b6d9b2ecf20142>:0
at System.Threading.Thread.Start (System.Threading.StackCrawlMarkstackMark) [0x0002d] in <d0e12f672b88444ab4b6d9b2ecf20142>:0
at System.Threading.Thread.Start () [0x00002] in <d0e12f672b88444ab4b6d9b2ecf20142>:0
at MCGalaxy.Server.StartThread (System.Threading.Threadthread, System.String name, System.Threading.ThreadStart threadFunc) [0x00023] in /opt/mcgalaxy/MCGalaxy/MCGalaxy/Server/Server.cs:343
at MCGalaxy.Player.HandleCommand (System.String cmd, System.String args, MCGalaxy.CommandData data) [0x000eb] in /opt/mcgalaxy/MCGalaxy/MCGalaxy/Player/Player.Handlers.cs:528
If a command fails with the
Command Failed
message ... https://github.com/UnknownShadow200/MCGalaxy/blob/7bd2ad38ea3269c36f9e00d648cb2ef4476cde91/MCGalaxy/Player/Player.Handlers.cs#L528 And this command went through theExecuteSerialCommands
function ... https://github.com/UnknownShadow200/MCGalaxy/blob/7bd2ad38ea3269c36f9e00d648cb2ef4476cde91/MCGalaxy/Player/Player.Handlers.cs#L701 The command will not getDequeue
'd ... https://github.com/UnknownShadow200/MCGalaxy/blob/7bd2ad38ea3269c36f9e00d648cb2ef4476cde91/MCGalaxy/Player/Player.Handlers.cs#L715 Because that is skipped and not run by the exception handler. It will remain in on the queue and may get rerun when it's not wanted.