bugpokersource - Bugs: bug #13950, PokerTable doesn't kick inactive...

Show feedback again

You are not allowed to post comments on this tracker with your current authentification level.

bug #13950: PokerTable doesn't kick inactive players

Submitted by:  alex gorbatchev <alexg>
Submitted on:  Mon Jul 13 22:09:05 2009  
Category: aspokerSeverity: 5 - Blocker
Priority: 9 - ImmediateStatus: Need Info
Privacy: PublicAssigned to: Bruno Garnier <bruno98>
Open/Closed: Open

Tue Jul 14 16:50:03 2009, comment #4:

And created an aspoker category

Loic Dachary <loic>
Project Administrator
Tue Jul 14 16:48:59 2009, comment #3:

I've assigned the bug to bruno98 who is the primary author of aspoker.

Loic Dachary <loic>
Project Administrator
Tue Jul 14 16:31:08 2009, comment #2:

I've done some more testing and came to conclusion that it's actually not the server issue. Tracing out IDs of kicked player helped to place the issue in aspoker.

So, the bottom line, it is my current belief that INT() was the only issue here and server does kick correct players.

thnx for implementing the fix into trunk!

alex gorbatchev <alexg>
Tue Jul 14 08:32:14 2009, comment #1:

I applied the suggested patch at

About the wrong player being kicked out I don't see how this can happen after reading the code. Could you describe a scenario ? The tests contain a few scenarii and they all work, that must be a special case.

Thanks for the great feedback ;-)

Loic Dachary <loic>
Project Administrator
Mon Jul 13 22:09:05 2009, original submission:

PokerTable doesn't kick inactive players. There are a number of issues related to this functionality:

1. in PokerTable.__init__
self.max_missed_round = description.get("max_missed_round", factory.getMissedRoundMax()))

the variable always ends up being a string if it's specified in XML config because it's not typecast to INT. This prevents PokerTable.cashGame_kickPlayerSittingOutTooLong() from ever satisfying player.getMissedRoundCount() >= self.max_missed_round condition and self.kickPlayer(player.serial) is never called

should be

self.max_missed_round = int(description.get("max_missed_round", factory.getMissedRoundMax())))

2. fixing the issue above leads to self.kickPlayer() call, which exposes another problem - wrong player get kicked out from table. When I tested it with 2 bots and 2 players, having one player fold for inactivity leads to one of the bots being incorrectly kicked from table instead of the inactive player.

alex gorbatchev <alexg>


No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -unavailable- added by loic (Posted a comment)
  • -unavailable- added by alexg (Submitted the item)

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.


    Error: not logged in



    Follow 6 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue Jul 14 16:50:03 2009loicCategorypoker-network=>aspoker
    Tue Jul 14 16:48:59 2009loicAssigned toproppy=>bruno98
    Tue Jul 14 08:37:27 2009loicPriority5 - Normal=>9 - Immediate
      Assigned toloic=>proppy
    Tue Jul 14 08:32:14 2009loicStatusNone=>Need Info
      Assigned toNone=>loic
    Show feedback again

    Back to the top

    Powered by Savane 3.1-cleanup