Help us reproduce the "phantom players" bug

2»

Comments

  • ShiloriusShilorius Join Date: 2011-01-14 Member: 77445Members, Reinforced - Shadow
    edited February 2011
    Here is what just happend to me.
    I was on a server and played a whole round. After all were back to readyroom I decided to go alien. I walked into the Alienpart of the RR and got a black screen. The red "BetaBuild 165. Press F1 to give feedback" was the exeption, the rest od the screen was just black.
    I figured that die game crashed so I started the taskmanager and closed the game.
    After that I restarted the game and rejoined the server.
    My phantom was in the alienteam and i got the name "Shilorius [GER] (3)" (no not a 2)

    This was about 11:30pm 11-02-26 (GMT +1) at the server "NS2UK.com | B165 | #3"
    Ask the serveradmin (i think known as Adama here in the forum) if you want the logs.
  • Alpha.Alpha. Join Date: 2011-01-04 Member: 76186Members
    <!--quoteo(post=1835155:date=Feb 27 2011, 01:39 AM:name=Shilorius)--><div class='quotetop'>QUOTE (Shilorius @ Feb 27 2011, 01:39 AM) <a href="index.php?act=findpost&pid=1835155"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I walked into the Alienpart of the RR and got a black screen.<!--QuoteEnd--></div><!--QuoteEEnd-->
    bsod generates error messages in console, I'll make a screen shot of it next time, may be helpful. Or maybe someone reading this will do?
  • ShiloriusShilorius Join Date: 2011-01-14 Member: 77445Members, Reinforced - Shadow
    edited February 2011
    <!--quoteo(post=1835158:date=Feb 26 2011, 05:55 PM:name=Alpha.)--><div class='quotetop'>QUOTE (Alpha. @ Feb 26 2011, 05:55 PM) <a href="index.php?act=findpost&pid=1835158"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->bsod generates error messages in console, I'll make a screen shot of it next time, may be helpful. Or maybe someone reading this will do?<!--QuoteEnd--></div><!--QuoteEEnd-->

    I would have, but the game didn't response to any button.. even ESC or ^.
    So I hope that there is something in the serverlogs..
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    <!--quoteo(post=1835134:date=Feb 26 2011, 11:06 PM:name=Alpha.)--><div class='quotetop'>QUOTE (Alpha. @ Feb 26 2011, 11:06 PM) <a href="index.php?act=findpost&pid=1835134"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->OM doesn't show ghost players <b>sometimes</b> [using om_players, when ghost is shown on scoreboard]. It may mean that server doesn't recognize them as connected [not sure if its servers or OM's fault] = problem may be more complicated, i.e. few bugs independently, not only one is causing ghosts [<b>sometimes</b> OM shows them]<!--QuoteEnd--></div><!--QuoteEEnd-->
    Overmind indexes the players that are known to the server, so if it isn't in om_players, the server doesn't know about it. I suppose we're looking at different variants of the phantom-bug here. One where ghost-players continue to live on in the Server-VM (and subsequently show up on client-scoreboards as well as OM), and one where the player no longer exists on the server, but where clients haven't been told that it doesn't anymore (and subsequently still show up on client-scoreboards, but no longer on OM).

    <!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->I'd definitely advise implementing player's strategy and working from there if you still see issues. In particular, the running of a TCP connection in conjunction with UDP should allow you to have a clean distribution mechanism for packets that *need* to arrive (reduces server cpu load for processing lost UDP messages) and for pings between client and the server.<!--QuoteEnd--></div><!--QuoteEEnd-->
    I'm unsure whether Spark already uses a TCP-connection (I would imagine it is, as certain things, such as console-commands really shouldn't be susceptible to (UDP) datagram-corruption). The reason I suggested it was that UDP is stateless and TCP statefull, which means when a client crashes Windows will clean-up (read: close) the TCP-connection and thereby tell the server the client is gone.

    <!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->I walked into the Alienpart of the RR and got a black screen. The red "BetaBuild 165. Press F1 to give feedback" was the exeption, the rest od the screen was just black.
    I figured that die game crashed so I started the taskmanager and closed the game.
    After that I restarted the game and rejoined the server.
    My phantom was in the alienteam and i got the name "Shilorius [GER] (3)" (no not a 2)<!--QuoteEnd--></div><!--QuoteEEnd-->
    The infamous blackscreen-bug, it's just Lua's forgiving nature making a mess of things. In these situations your console should still work however, allowing you to exit via the "quit" command. Killing the process manually will (as I noted earlier) shut the game down ungracefully, which (among other things) will lead to ghost-players. So try to use "quit" in the console instead.
  • KyodaKyoda Join Date: 2004-10-30 Member: 32531Members
    This happens to me too, when I got an error and everything freezes, then I need to quit from the game by using Esc or Ctrl+Alt+Del (this way I have the chance to send a Bug/Error Report), then I rejoin the same server and my name still there. There were a time, recently played, that my name didn't even changed.
  • yimmasabiyimmasabi Join Date: 2006-11-03 Member: 58318Members
    1. Create a procedure which checks new received pack (e.g. a timer) from clients (players). Check player timer difference if the timer is same about 20 secs. drop him from the server automatically.

    2. When the game crashs or closes its display it may be still working in background so this time, the solution #1 is not enough to solve this problem. So before the game crash you should somehow close this timer info pack serving procedure.

    May be it can be solve this problem.

    Regards
  • endarendar Join Date: 2010-07-27 Member: 73256Members, Squad Five Blue
    This topic has been a bit quiet, but heres some more info. Currently my server has a couple of ghost players on it.
    Here's a screenshot of the output of om_players from Players <a href="http://unknownworlds.com/ns2/forums/index.php?showtopic=112026" target="_blank"> mod</a>.
    <a href="http://img855.imageshack.us/i/listing.png/" target="_blank"><img src="http://img855.imageshack.us/img855/1341/listing.png" border="0" class="linked-image" /></a>

    The players in question:
    1: Chanman This may be his actual steamID.
    2: Maeen This is a ghost, 0 ping.
    3: hakenspit This is also a ghost, 0 ping. He has rejoined into Hakenspit (3).
    4: Hakenspit (3). Real player, and his actual steamID.

    I asked Hakenspit how it happened, basically he said he was first in the server and alt-tabbed waiting for players. Alt-tabbed back and crashed during the process, so he rejoined and saw himself.

    Not sure why Chanman's SteamID is replicated onto the 2 ghosts, maybe Player has a better answer for that? Maybe not.

    Also, the server console crashed some time ago due to someone with a stupid character joining.
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    To see different players sharing the same Steam-ID is certainly out of the ordinary. GmOvrmind uses GetUserId to fetch the Steam-ID, and it does this every iteration to ensure it has consistent data. At this point it looks like Spark is passing garbage to the mod, suggesting an underlying engine-problem. There isn't much I can do at this point as Om really does have to rely on the Engine\Lua-VM to pass it valid data. If it's getting rubbish-information regarding clients it might also explain why those ghosts weren't kicked (which Om is supposed to do).

    It might be wise to get Max in here and shed some light on this.

    The only trick I have left in my bag is to kick players with a ping of naught (this would've at least solved the situation endar described just now), but that's something the engine is supposed to do really.
  • mutaremutare Join Date: 2011-03-01 Member: 83977Members
    Is there nothing like a "<b>timeout</b>" when the character do not move?
    I think this would be a Solution for this Problem.

    And "zero-ping-players" kick is not a good idea... what if you are the player who host the game?
  • playerplayer Join Date: 2010-09-12 Member: 73982Members
    Theoretically yes, but amusingly enough when I host a listen-server I have around 10-20 ping, so you can probably get away with doing that for the time being.
  • Aston01Aston01 Join Date: 2011-03-04 Member: 84518Members
    Yup....Fully agree with your idea.
    I do the same thing.
  • SgtBarlowSgtBarlow Level Designer Join Date: 2003-11-13 Member: 22749Members, NS2 Developer
    I informed Brian that it is possible that the ghosting is related to client/server loosing connectivity to the steam servers, See if you can catch and colse messages at the time this happens, you May see (Connection to steam servers lost).
  • ShiloriusShilorius Join Date: 2011-01-14 Member: 77445Members, Reinforced - Shadow
    This happend to me after we won a round. I was alien commander. Instead of going to the readyroom I was stuck in the darkness.
    Learning from my mistake last time I made a screenshot of the console and wrote quit after that.
    <img src="http://img200.imageshack.us/img200/6749/ns22011030521140142.jpg" border="0" class="linked-image" />

    I didn't spawn a phantom but I bet i would have spawned one if I used the taskmanager to kill the process.
  • Alpha.Alpha. Join Date: 2011-01-04 Member: 76186Members
    <!--quoteo(post=1836142:date=Mar 5 2011, 11:40 PM:name=Shilorius)--><div class='quotetop'>QUOTE (Shilorius @ Mar 5 2011, 11:40 PM) <a href="index.php?act=findpost&pid=1836142"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec--><img src="http://img200.imageshack.us/img200/6749/ns22011030521140142.jpg" border="0" class="linked-image" /><!--QuoteEnd--></div><!--QuoteEEnd-->

    This. Hope it'll help in some way
  • ShiloriusShilorius Join Date: 2011-01-14 Member: 77445Members, Reinforced - Shadow
    edited March 2011
    Update:

    Recently it happened again.
    I typed "quit" in the console.
    After restarting the game and reconecting to the server other players told me that they dropped as well.
    In addition there was a Phantom of a player who played the last round (but didn't rejoin).


    I have to mention that I am not sure if everybody dropped because there where some people playing as I rejoined, but the crash happens to more then just one player at a time.

    I hope that helps.

    Edit:
    The bug happend to me both times when I was alien commander and the game ended.
  • RuntehRunteh Join Date: 2010-06-26 Member: 72163Members, Reinforced - Shadow
    I get the same but it relates to a different area in which the code 'stacks'. I have enabled overlay recently to enable me to take screenshots. I'll go on some servers later on and see if I can get some screens to post back here.

    I think what really needs to happen is for a crash to occur, to get a screenshot, rejoin AND find that you now have a phantom. This would surely help the devs uncover the code that is causing the phantoms, not just a general crash.
  • ScardyBobScardyBob ScardyBob Join Date: 2009-11-25 Member: 69528Forum Admins, Forum Moderators, NS2 Playtester, Squad Five Blue, Reinforced - Shadow, WC 2013 - Shadow
    <img src="http://i.imgur.com/MNj4y.png" border="0" class="linked-image" />

    Still occurring in B170. Seems to be related to exiting NS2 after having the black screen + console errors shown above.
Sign In or Register to comment.