Author Topic: MP: Another fatal...  (Read 1530 times)

Offline Wanderer

  • Master Member Mark II
  • *****
  • Posts: 1,579
  • If you're not drunk you're doing it wrong.
MP: Another fatal...
« on: April 24, 2012, 05:19:07 am »
... I think.

Why: I think?  If you look at the attached screenshot you'll understand the problem.

I was playing yesterday this wasn't there, so it occurred at some point after 7:00 PM local yesterday.  There's nothing in the debug log since the 22nd, so it's got to be one of the following items from the unhandled errors log.  However, as a point of interest, there were plenty of previous unhandleds that DIDN'T cause an issue.  I don't know what's going on.

I logged in before I took the gamestate down, and it's the whole "The server has had a fatal error.  It will keep running and you can keep playing...." message.

I'm going to reset the server and reset the logs as well, so they're clean for this iteration.

I've attached the entire logs for convenience, but the excerpt is within this post.
Code: [Select]
4/23/2012 8:38:37 PM (1.000)
-----------------------------------
UnhandledErrors-----------------------------------
4/23/2012 8:38:37 PM (1.000)
-----------------------------------Error-----------------------------------Log String: FixedUpdate: System.NullReferenceException: Object reference not set to an instance of an object
  at Mission.GetIsPlayerInMissionRegion (.PlayerAccount PlayerAccount, Int32 MissionID, Boolean RequireIsConnected) [0x00000] in <filename unknown>:0
  at Mission.GetAreAnyConnectedPlayersInMissionRegionForMissionID (Int32 MissionID) [0x00000] in <filename unknown>:0
  at Mission.CheckForExpiration () [0x00000] in <filename unknown>:0
  at Game.ProcessSimStep () [0x00000] in <filename unknown>:0
  at Game.RunNextCycle (Boolean DoRendering) [0x00000] in <filename unknown>:0
  at Game.RunFrame () [0x00000] in <filename unknown>:0
  at MainCameraLogic.MainUpdateLogic () [0x00000] in <filename unknown>:0
Stack Trace:   at Mission.GetIsPlayerInMissionRegion (.PlayerAccount PlayerAccount, Int32 MissionID, Boolean RequireIsConnected) [0x00000] in <filename unknown>:0
  at Mission.GetAreAnyConnectedPlayersInMissionRegionForMissionID (Int32 MissionID) [0x00000] in <filename unknown>:0
  at Mission.CheckForExpiration () [0x00000] in <filename unknown>:0
  at Game.ProcessSimStep () [0x00000] in <filename unknown>:0
  at Game.RunNextCycle (Boolean DoRendering) [0x00000] in <filename unknown>:0
  at Game.RunFrame () [0x00000] in <filename unknown>:0
  at MainCameraLogic.MainUpdateLogic () [0x00000] in <filename unknown>:0


4/23/2012 8:38:38 PM (1.000)
-----------------------------------
UnhandledErrors-----------------------------------
4/23/2012 8:38:38 PM (1.000)
-----------------------------------Error-----------------------------------Log String: FixedUpdate: System.NullReferenceException: Object reference not set to an instance of an object
  at Mission.GetIsPlayerInMissionRegion (.PlayerAccount PlayerAccount, Int32 MissionID, Boolean RequireIsConnected) [0x00000] in <filename unknown>:0
  at Mission.GetAreAnyConnectedPlayersInMissionRegionForMissionID (Int32 MissionID) [0x00000] in <filename unknown>:0
  at Mission.CheckForExpiration () [0x00000] in <filename unknown>:0
  at Game.ProcessSimStep () [0x00000] in <filename unknown>:0
  at Game.RunNextCycle (Boolean DoRendering) [0x00000] in <filename unknown>:0
  at Game.RunFrame () [0x00000] in <filename unknown>:0
  at MainCameraLogic.MainUpdateLogic () [0x00000] in <filename unknown>:0
Stack Trace:   at Mission.GetIsPlayerInMissionRegion (.PlayerAccount PlayerAccount, Int32 MissionID, Boolean RequireIsConnected) [0x00000] in <filename unknown>:0
  at Mission.GetAreAnyConnectedPlayersInMissionRegionForMissionID (Int32 MissionID) [0x00000] in <filename unknown>:0
  at Mission.CheckForExpiration () [0x00000] in <filename unknown>:0
  at Game.ProcessSimStep () [0x00000] in <filename unknown>:0
  at Game.RunNextCycle (Boolean DoRendering) [0x00000] in <filename unknown>:0
  at Game.RunFrame () [0x00000] in <filename unknown>:0
  at MainCameraLogic.MainUpdateLogic () [0x00000] in <filename unknown>:0


4/23/2012 8:38:39 PM (1.000)
-----------------------------------
UnhandledErrors-----------------------------------
4/23/2012 8:38:39 PM (1.000)
-----------------------------------Error-----------------------------------Log String: FixedUpdate: System.NullReferenceException: Object reference not set to an instance of an object
  at Mission.GetIsPlayerInMissionRegion (.PlayerAccount PlayerAccount, Int32 MissionID, Boolean RequireIsConnected) [0x00000] in <filename unknown>:0
  at Mission.GetAreAnyConnectedPlayersInMissionRegionForMissionID (Int32 MissionID) [0x00000] in <filename unknown>:0
  at Mission.CheckForExpiration () [0x00000] in <filename unknown>:0
  at Game.ProcessSimStep () [0x00000] in <filename unknown>:0
  at Game.RunNextCycle (Boolean DoRendering) [0x00000] in <filename unknown>:0
  at Game.RunFrame () [0x00000] in <filename unknown>:0
  at MainCameraLogic.MainUpdateLogic () [0x00000] in <filename unknown>:0
Stack Trace:   at Mission.GetIsPlayerInMissionRegion (.PlayerAccount PlayerAccount, Int32 MissionID, Boolean RequireIsConnected) [0x00000] in <filename unknown>:0
  at Mission.GetAreAnyConnectedPlayersInMissionRegionForMissionID (Int32 MissionID) [0x00000] in <filename unknown>:0
  at Mission.CheckForExpiration () [0x00000] in <filename unknown>:0
  at Game.ProcessSimStep () [0x00000] in <filename unknown>:0
  at Game.RunNextCycle (Boolean DoRendering) [0x00000] in <filename unknown>:0
  at Game.RunFrame () [0x00000] in <filename unknown>:0
  at MainCameraLogic.MainUpdateLogic () [0x00000] in <filename unknown>:0

... and then we'll have cake.

Offline Toll

  • Sr. Member Mark III
  • ****
  • Posts: 452
Re: MP: Another fatal...
« Reply #1 on: April 24, 2012, 05:53:47 am »
Would you happen to be Pruppet or GruntingCod on my server? Because just ten minutes ago my server had the exact same situation. Appending my UnhandledErrors and ArcenDebugLog too (and devs, you can ignore the 4/12 incident, that was me messing around).

Offline Wanderer

  • Master Member Mark II
  • *****
  • Posts: 1,579
  • If you're not drunk you're doing it wrong.
Re: MP: Another fatal...
« Reply #2 on: April 24, 2012, 06:38:54 am »
Nope, sorry Toll.  I'm just Wanderer (default on your server the brief time I connected to it, though... ;) ).  Lag was horrible at the time thus hosted one myself.

I'm not sure what's causing these.  I don't usually get them until I've had a few days uptime.  Memory leak of some kind, maybe.
... and then we'll have cake.

Offline Toll

  • Sr. Member Mark III
  • ****
  • Posts: 452
Re: MP: Another fatal...
« Reply #3 on: April 24, 2012, 06:47:56 am »
I think memory leaks would've shown themselves in some other fashion, and not through a null-pointer exception. It's all in the hands of Chris and Keith now though, I think.

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: MP: Another fatal...
« Reply #4 on: April 24, 2012, 10:19:18 am »
Code: [Select]
4/23/2012 8:38:37 PM (1.000)
-----------------------------------
UnhandledErrors-----------------------------------
4/23/2012 8:38:37 PM (1.000)
-----------------------------------Error-----------------------------------Log String: FixedUpdate: System.NullReferenceException: Object reference not set to an instance of an object
  at Mission.GetIsPlayerInMissionRegion (.PlayerAccount PlayerAccount, Int32 MissionID, Boolean RequireIsConnected) [0x00000] in <filename unknown>:0
  at Mission.GetAreAnyConnectedPlayersInMissionRegionForMissionID (Int32 MissionID) [0x00000] in <filename unknown>:0
  at Mission.CheckForExpiration () [0x00000] in <filename unknown>:0
  at Game.ProcessSimStep () [0x00000] in <filename unknown>:0
  at Game.RunNextCycle (Boolean DoRendering) [0x00000] in <filename unknown>:0
  at Game.RunFrame () [0x00000] in <filename unknown>:0
  at MainCameraLogic.MainUpdateLogic () [0x00000] in <filename unknown>:0
Ding ding ding, we have a winner!  For 1.001:

Quote
* MP: fixed a null exception that could occur on the server if a mission's time-to-expire had elapsed and one of the connected players was in the deep-sea between continents at the time.

Whew, good to have that one caught :)  Basically when a mission's timer is up (hence the "this doesn't happen often" part of this bug) it checks all players to see if any of them are in the region so it knows whether to not actually expire the mission.  If any of those players are connected and don't _have_ a continent... well, let's just say it now checks to see whether they have a continent before trying to call a method on said continent ;)

I'm sure I had a very good reason for not checking for that null.  Yea, that's the ticket...
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline tigersfan

  • Arcen Games Contractor
  • Arcen Staff
  • Master Member Mark II
  • *****
  • Posts: 1,599
Re: MP: Another fatal...
« Reply #5 on: April 24, 2012, 10:36:42 am »
Glad you were able to squash that one Keith.

Offline Wanderer

  • Master Member Mark II
  • *****
  • Posts: 1,579
  • If you're not drunk you're doing it wrong.
Re: MP: Another fatal...
« Reply #6 on: April 24, 2012, 11:19:13 pm »
*facepalm*

This is apparently happening even if noone's ON the server.  Don't ask me how.

I got the error again and out of curiousity took a poke at it.  The attached files are simply since the restart yesterday.  I've also attached a world zip.

There was noone on the server when I just shut it down after checking it, and it almost looks like it's detecting someone just... well... chillin' out in the water.  Very wierd.

I'm mostly providing this in case this is unexpected to the bug that you've already fixed, Keith, so you have more to support the test.
... and then we'll have cake.