hippich / Bitcoin-Poker-Room

Sources for Bitcoin Poker Room.
http://betco.in
Other
132 stars 87 forks source link

Opera bug in auto posting blinds #81

Closed hippich closed 13 years ago

hippich commented 13 years ago

Specific to Opera. After refresh the whole game is messed up in Opera.

Please find the screencast of this bug here:

http://www.youtube.com/watch?v=7iPtCCIxw9A

The reproduction of the bug is fairly simple, have testing01 sit at a table and have testing02 join. I'm guessing the problem lies in the uncommon browser used by testing02. There are no buttons available for the testing01 who is first-to-act. Reloading is performed with ctrl-r on both platforms. Reloading testing01's table does not fix the problem. Reloading testing02's table makes the buttons reappear even though the missing buttons are on testing01's platform.

testing01 is running: Mozilla/5.0 (X11; U; Linux i686;en-US;rv:1.9.2.18) Gecko/20110615 Ubuntu/10.10 (maverick) Firefox/3.6.18

testing02 is running: Opera/9.80 (Windows NT 6.1; U; en) Presto/2.9.168 Version/11.50

In the video the first two out of three runs I reload testing02's table and the buttons reappear. In the third run I try reloading testing01's table and it doesn't have any effect, then one last time I reload testing02's table and the buttons reappear.

hippich commented 13 years ago

This should be fixed on backend side:

Thanks for the BTC, but the kind of problem that I was describing is a kind of attack on users running firefox and chrome browsers: I can make them not have buttons in a first-to-act situation every time.

In other words, I'm running an opera browser, and "stealing" the small blind of a user who is waiting at a table is very easy. The browser featured in the video is firefox, I make the firefox browser have no buttons by running opera on a separate computer.

anisoptera commented 13 years ago

I couldn't repro this bug at all, myself, let alone steal a blind.

I looked at your screencast. At no time is action on you with no buttons showing. There is a bug here - Opera's not responding properly to the blind request - but once the player times out, the game proceeds as normal. During the time you have no buttons, the action is actually on the other player. That's why the timeout bar is on their name and not yours.

The server has asked that player "Do you want to post a blind?" and the client is meant to automatically respond to that request. It's not, for whatever reason - but that doesn't affect anyone but that client. When you refresh the FF client, nothing happens, because the action isn't on you in the first place. We're waiting for the other player. When you refresh Opera, it "fixes" it because for some reason refreshing makes Opera respond to the blind request properly.

I tried hacking a client to not respond to the blind request, and when it times out, the SB is returned to the player.