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 13 Jul 2009 10:09:05 PM UTC  
 
Category: aspokerSeverity: 5 - Blocker
Priority: 9 - ImmediateStatus: Need Info
Privacy: PublicAssigned to: Bruno Garnier <bruno98>
Open/Closed: Open

Tue 14 Jul 2009 04:50:03 PM UTC, comment #4:

And created an aspoker category

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

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

Loic Dachary <loic>
Project Administrator
Tue 14 Jul 2009 04:31:08 PM UTC, 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 14 Jul 2009 08:32:14 AM UTC, comment #1:

I applied the suggested patch at
http://svn.gna.org/viewcvs/pokersource?rev=6092&view=rev

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 13 Jul 2009 10:09:05 PM UTC, 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.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 6 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 14 Jul 2009 04:50:03 PM UTCloicCategorypoker-network=>aspoker
    Tue 14 Jul 2009 04:48:59 PM UTCloicAssigned toproppy=>bruno98
    Tue 14 Jul 2009 08:37:27 AM UTCloicPriority5 - Normal=>9 - Immediate
      Assigned toloic=>proppy
    Tue 14 Jul 2009 08:32:14 AM UTCloicStatusNone=>Need Info
      Assigned toNone=>loic
    Show feedback again

    Back to the top


    Powered by Savane 3.1-cleanup