#101 Random flee pathfinding crash

Open
opened 1 month ago by wishy · 4 comments
wishy commented 1 month ago

Build Info

  • Intersect Version : 0.6.0.145
  • Operating System: Windows 10

Issue Description

    2020-01-03 15:26:55.486 [Error] 
Message: Object reference not set to an instance of an object
Stack:   at Intersect.Server.Misc.Pathfinding.Pathfinder.Update (System.Int64 timeMs) [0x004b9] in <b17c4caee4f44a509488dfb3a6964064>:0 
at Intersect.Server.Entities.Npc.Update (System.Int64 timeMs) [0x00498] in <b17c4caee4f44a509488dfb3a6964064>:0 
at Intersect.Server.Maps.MapInstance.Update (System.Int64 timeMs) [0x0024f] in <b17c4caee4f44a509488dfb3a6964064>:0 
at Intersect.Server.ServerLoop.RunServerLoop () [0x00071] in <b17c4caee4f44a509488dfb3a6964064>:0 
at Intersect.Server.Core.ServerLogic.ThreadStart () [0x00001] in <b17c4caee4f44a509488dfb3a6964064>:0 
at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00017] in <8f2c484307284b51944a1a13a14c0266>:0 
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x0008d] in <8f2c484307284b51944a1a13a14c0266>:0 
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00031] in <8f2c484307284b51944a1a13a14c0266>:0 
at System.Threading.ThreadHelper.ThreadStart () [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 

Reproduction Steps

Random crash with an enemy that has ‘flee’ enabled, happened during the flee

<!-- NOTE: If your issue is a security concern, please send an email to admin@ascensiongamedev.com instead of opening a public issue --> <!-- 1. Please speak English, this is the language all maintainers can speak and write. 2. Please ask questions or configuration/deploy problems on our forum.(https://ascensiongamedev.com) 3. Please take a moment to check that your issue doesn't already exist. 4. Please give all relevant information below for bug reports, because incomplete details will be handled as an invalid report. --> <!-- Check here() for info on how to determine which version you're on! --> ## Build Info - Intersect Version <!-- (Use X.X.X.XXX Format!) --> : 0.6.0.145 - Operating System: Windows 10 ## Issue Description 2020-01-03 15:26:55.486 [Error] Message: Object reference not set to an instance of an object Stack: at Intersect.Server.Misc.Pathfinding.Pathfinder.Update (System.Int64 timeMs) [0x004b9] in <b17c4caee4f44a509488dfb3a6964064>:0 at Intersect.Server.Entities.Npc.Update (System.Int64 timeMs) [0x00498] in <b17c4caee4f44a509488dfb3a6964064>:0 at Intersect.Server.Maps.MapInstance.Update (System.Int64 timeMs) [0x0024f] in <b17c4caee4f44a509488dfb3a6964064>:0 at Intersect.Server.ServerLoop.RunServerLoop () [0x00071] in <b17c4caee4f44a509488dfb3a6964064>:0 at Intersect.Server.Core.ServerLogic.ThreadStart () [0x00001] in <b17c4caee4f44a509488dfb3a6964064>:0 at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00017] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x0008d] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00031] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.ThreadHelper.ThreadStart () [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 ## Reproduction Steps Random crash with an enemy that has 'flee' enabled, happened during the flee <!-- **If this issue involves anything visual please include a screenshot or video!** --> <!-- **Attach log files found in your Server/Logs, Client/Logs, and Editor/Logs folders!** -->
panda commented 1 month ago
Collaborator

@jcsnider Pathfinder.Update() needs to be refactored into less pieces of code or this isn’t really going to be fixable without a log line.

Way too many places where something could be null (the method is over 200 lines long).

@jcsnider Pathfinder.Update() needs to be refactored into less pieces of code or this isn't really going to be fixable without a log line. Way too many places where something could be null (the method is over 200 lines long).
jcsnider added this to the Beta 6.1 milestone 1 week ago
jcsnider commented 1 week ago
Owner

@wishy: Panda is right.. that function is crazy huge.

Are you by chance running your server on Mac/Linux with mono?

If that’s the case can you change your startup command from

mono “Intersect.Server.exe”

To the following commands

pdb2mdb “Intersect Server.exe”

mono --debug “Intersect Server.exe”

While developing your game you shouldn’t see much difference in performance, but if errors do occur on the server the error logs should contain line numbers.

@wishy: Panda is right.. that function is crazy huge. Are you by chance running your server on Mac/Linux with mono? If that's the case can you change your startup command from mono "Intersect.Server.exe" To the following commands pdb2mdb "Intersect Server.exe" mono --debug "Intersect Server.exe" While developing your game you shouldn't see much difference in performance, but if errors do occur on the server the error logs should contain line numbers.
jcsnider added the
blocked
label 1 week ago
jcsnider removed this from the Beta 6.1 milestone 1 week ago
wishy commented 1 week ago
Poster

@jcsnider yep server runs on Linux, will change my startup command to the debug one during development :)

@jcsnider yep server runs on Linux, will change my startup command to the debug one during development :)
jcsnider commented 1 week ago
Owner

The tracker broke the formatting but the pdb2mdb and the mono commands should be separate (just FYI)

The tracker broke the formatting but the pdb2mdb and the mono commands should be separate (just FYI)
Sign in to join this conversation.
Loading…
Cancel
Save
There is no content yet.