ctm / mb2-doc

Mb2, poker software
https://devctm.com
7 stars 2 forks source link

NL 2-7 Player couldn't call #1449

Closed ctm closed 1 week ago

ctm commented 1 week ago

Figure out what happened to gerdog on hand 411282.

I bet and he timed out:

It is 0 to you deadhead bets 400 gerdog has gone on vacation gerdog folds due to being on vacation Uncalled 400 returned to deadhead deadhead Does Not Show deadhead wins 400

gerdog: i cant call?

I'm assuming he had a good connection and that it was something the UI did wrong, but perhaps it was lag. I'll look at the db and also send him email.

ctm commented 1 week ago

FWIW, the way no-limping is implemented is a "temporary" hack, where there's a bool in the Dealing tuple:

        bool, // limping-allowed: This is a hack that will go away when
        // we have a better way of communicating the options that are in
        // effect.

and ActionTracker, stores that in a calling_allowed field. There's nothing in the code to set calling_allowed to true when the second BeginRound message arrives. There should be and that will fix this bug

However, I'm super curious as to why we haven't seen it before and why we didn't see it again later in this evening's tournament. So, before I put that fix in, I'm going to try to figure out just how we managed to get to the second betting round without calling_allowed being set to true but the existing mechanisms.

ctm commented 1 week ago

D'oh! It's obvious. It was due to the small blind and the big blind being the same. My code allows calling once a raise has been made, but when the small blind and big blind are the same, it's possible to get to the second round without there having been a raise.

I can now put in my fix now that I understand how we got there.

ctm commented 1 week ago

Fixed. It'll go out with my next deploy. I'm going to get rid of a few check-boxes first, though (#1450).