bugpokersource - Bugs: bug #14934, seated2observer...

 
 
Show feedback again

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

bug #14934: seated2observer exceptions.KeyError: 0 with poker-network 2.0

Submitted by:  Johan Euphrosine <proppy>
Submitted on:  Sun 13 Dec 2009 01:34:25 PM UTC  
 
Category: poker-networkSeverity: 5 - Blocker
Priority: 9 - ImmediateStatus: Fixed
Privacy: PublicAssigned to: Johan Euphrosine <proppy>
Open/Closed: Open

(Jump to the original submission Jump to the original submission)

Fri 05 Mar 2010 01:34:16 PM UTC, SVN revision 6443:

add serial argument to seated2observer, and log error if not matching avatar serial bug #14934

(Browse SVN revision 6443)

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Fri 05 Mar 2010 01:28:55 PM UTC, comment #17:

Should be fixed with:
diff -Nru pokersocial-1.0.4/debian/changelog pokersocial-1.0.5/debian/changelog
--- pokersocial-1.0.4/debian/changelog 2010-02-26 14:05:59.000000000 +0000
+++ pokersocial-1.0.5/debian/changelog 2010-03-05 13:23:13.000000000 +0000
@@ -1,3 +1,9 @@
+pokersocial (1.0.5) unstable; urgency=low
+
+ * create new anonymous session, instead of calling avatar.logout fix gna#14934
+
+ -- Johan Euphrosine (proppy) <proppy@aminche.com> Fri, 05 Mar 2010 13:21:25 +0000
+
pokersocial (1.0.4) unstable; urgency=low

* new upstream
diff -Nru pokersocial-1.0.4/.hg/branchheads.cache pokersocial-1.0.5/.hg/branchheads.cache
--- pokersocial-1.0.4/.hg/branchheads.cache 2010-02-26 13:28:41.000000000 +0000
+++ pokersocial-1.0.5/.hg/branchheads.cache 2010-03-05 13:23:56.000000000 +0000
@@ -1,2 +1,2 @@
-927184fc6ee58415230c9c2ddbba4cf72476cec4 66
-927184fc6ee58415230c9c2ddbba4cf72476cec4 default
+5bd5d9585044184b6097a692a76406eb76046b60 68
+5bd5d9585044184b6097a692a76406eb76046b60 default
Binary files /tmp/NuqnNGGeNI/pokersocial-1.0.4/.hg/dirstate and /tmp/pni5RQYvAt/pokersocial-1.0.5/.hg/dirstate differ
Binary files /tmp/NuqnNGGeNI/pokersocial-1.0.4/.hg/store/00changelog.i and /tmp/pni5RQYvAt/pokersocial-1.0.5/.hg/store/00changelog.i differ
Binary files /tmp/NuqnNGGeNI/pokersocial-1.0.4/.hg/store/00manifest.i and /tmp/pni5RQYvAt/pokersocial-1.0.5/.hg/store/00manifest.i differ
Binary files /tmp/NuqnNGGeNI/pokersocial-1.0.4/.hg/store/data/pokersocial/auth.py.i and /tmp/pni5RQYvAt/pokersocial-1.0.5/.hg/store/data/pokersocial/auth.py.i differ
Binary files /tmp/NuqnNGGeNI/pokersocial-1.0.4/.hg/store/data/tests/test.py.i and /tmp/pni5RQYvAt/pokersocial-1.0.5/.hg/store/data/tests/test.py.i differ
Binary files /tmp/NuqnNGGeNI/pokersocial-1.0.4/.hg/store/undo and /tmp/pni5RQYvAt/pokersocial-1.0.5/.hg/store/undo differ
diff -Nru pokersocial-1.0.4/.hg/tags.cache pokersocial-1.0.5/.hg/tags.cache
--- pokersocial-1.0.4/.hg/tags.cache 2010-02-26 14:07:50.000000000 +0000
+++ pokersocial-1.0.5/.hg/tags.cache 2010-03-04 15:05:32.000000000 +0000
@@ -1,2 +1,2 @@
-66 927184fc6ee58415230c9c2ddbba4cf72476cec4
+67 0c454c6536910e42b5546f96366f42cd0c98ace6

Binary files /tmp/NuqnNGGeNI/pokersocial-1.0.4/.hg/undo.dirstate and /tmp/pni5RQYvAt/pokersocial-1.0.5/.hg/undo.dirstate differ
diff -Nru pokersocial-1.0.4/pokersocial/auth.py pokersocial-1.0.5/pokersocial/auth.py
--- pokersocial-1.0.4/pokersocial/auth.py 2010-02-01 10:59:24.000000000 +0000
+++ pokersocial-1.0.5/pokersocial/auth.py 2010-03-05 13:23:58.000000000 +0000
@@ -66,8 +66,11 @@
#
# logout so that the request is processed anonymously
#
- if session.avatar.isLogged():
- session.avatar.logout()
+ session.expire()
+ request.session = None
+ request.cookies = []
+ site.memcache.replace(session.auth, '0', time = site.cookieTimeout)
+ session = request.getSession()
session.site.updateSession(session)
return session

diff -Nru pokersocial-1.0.4/tests/test.py pokersocial-1.0.5/tests/test.py
--- pokersocial-1.0.4/tests/test.py 2010-02-26 14:28:40.000000000 +0000
+++ pokersocial-1.0.5/tests/test.py 2010-03-05 13:23:58.000000000 +0000
@@ -380,6 +380,7 @@

def test07_logout(self):
""" a user logs out
+ a new anonymous session is created
"""
r = self.createRequest(owner_id = '')
session = r.getSession()
@@ -387,8 +388,12 @@
self.site.memcache.set('auth_hash', 5)
self.assertTrue(session.avatar.isLogged())
auth.update_session(self.site, r)
- self.assertFalse(session.avatar.isLogged())
- session.expire()
+ self.assertEquals('0', self.site.memcache.get('auth_hash'))
+ new_session = r.getSession()
+ self.assertNotEquals(session, new_session)
+ self.assertFalse(new_session.expired)
+ self.assertFalse(new_session.avatar.isLogged())
+ new_session.expire()

class MonitorTestCase(PokersocialTest):

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Thu 04 Mar 2010 06:07:28 PM UTC, comment #16:

I suggest that in addition to the proposed patch, http://opensocial.pokersource.info/ must be patched to replace the logout with session.expire() + create session. The expire() will call destroyAvatar that will remove it from the avatar_collection. The memcache must be cleaned up before expiring the session, in the same fashion as http://earthquake.pokersource.info/upstream/earthquake/auth.py

Loic Dachary <loic>
Project Administrator
Tue 02 Mar 2010 06:19:31 PM UTC, comment #15:

The patch workaround the KeyError: 0 exception, by trusting the serial argument instead of relying on the avatar.user.serial field which could be 0 if unlogged.

While I agree "the serial is not in avatar_collection" is a related problem, I've haven't seen it so far, at least in the attached logs.

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Tue 02 Mar 2010 05:50:19 PM UTC, comment #14:

I took a look at the patch. It does not seem to work around the problem. What if serial is not in avatar_collection ?
Thanks in advance for your explanation

Loic Dachary <loic>
Project Administrator
Tue 02 Mar 2010 05:03:57 PM UTC, comment #13:

Hi,

Here is a tentative patch, that should workaround this failure while still providing error reporting in the logs.

(file #8355)

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Tue 02 Mar 2010 03:47:27 PM UTC, comment #12:

if avatar.removePlayer(self, serial) will never get executed, because if self.isOpen() is False for a tourney

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Tue 02 Mar 2010 03:08:40 PM UTC, comment #11:

The following code in disconnectPlayer discard the previous hypothesys:
if self.isJoined(avatar):
#
# The player is no longer connected to the table
#
self.destroyPlayer(avatar, serial)

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Tue 02 Mar 2010 11:39:25 AM UTC, comment #10:

I think this may be a regression introduced with:
http://svn.gna.org/viewcvs/pokersource/?rev=6340&view=rev

pokeravatar.connectionLost
pokertable.disconnectPlayer
pokeravatar.removePlayer
if avatar is not the last one in poker_table.avatar_collection
pokeravatar.removePlayer will returns false
pokertable.seated2observer is not called
the avatar is not removed from pokertable.avatar_collection
the avatar is logged out by pokeravatar.connectionLost

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Mon 01 Mar 2010 06:26:44 PM UTC, comment #9:

Confirmed by manhole:

>>> poker_service.tables[898].avatar_collection.serial2avatars[424][0].user.serial

poker_service.tables[898].avatar_collection.serial2avatars[424][0].user.serial
0

Attaching full logs.

(file #8342, file #8343)

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Mon 01 Mar 2010 04:50:58 PM UTC, comment #8:

seated2observer use avatar.getSerial() while return avatar.user.serial

While original serial argument of kickPlayer comes from poker-engine.

It could be that one of the avatar has been disconnected/logout (avatar.user=0) and not removed from the avatar collection ?

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Mon 01 Mar 2010 02:43:25 PM UTC, comment #7:

2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] Starting factory <HTTPClientFactory: http://localhost/?q=poker/messages/send/&type=LEAVE&args=[1016,760,0]>
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] Starting factory <HTTPClientFactory: http://localhost/?q=poker/messages/send/&type=LEAVE&args=[1016,758,0]>
2010-03-01 07:39:44+0100 [-] Starting factory <HTTPClientFactory: http://localhost/?q=poker/messages/send/&type=LEAVE&args=[1016,763,0]>

would indicate that serial was not 0 before seated2observer was called.

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Mon 01 Mar 2010 02:18:38 PM UTC, comment #6:

Please note that this error is different from the one originaly reported:
self.serial2avatars[serial], "expected %d avatar in %s" % ( serial, str(self.serial2avatars[serial]) )
exceptions.AssertionError: expected 3 avatar in [<pokernetwork.pokeravatar.PokerAvatar instance at 0x933b14c>]

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Mon 01 Mar 2010 02:02:55 PM UTC, comment #5:

I think this is related to this redondant error in the log:
2010-03-01 07:39:15+0100 [-] PokerService: ERROR avatar PokerAvatar serial = 0, name = anonymous is not in the list of known avatars

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Mon 01 Mar 2010 10:32:01 AM UTC, comment #4:

2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] PokerResource: ERROR (x-forwarded-for:127.0.0.1) Traceback (most recent call last):
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/twisted/internet/defer.py", line 186, in addCallbacks
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] self._runCallbacks()
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] self.result = callback(self.result, args, *kw)
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokersite.py", line 244, in <lambda>
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] deferred.addCallback(lambda result: self.deferRender(request, jsonp, packet, data))
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokersite.py", line 255, in deferRender
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] d = defer.maybeDeferred(session.avatar.handleDistributedPacket, request, packet, data)
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] --- <exception caught here> ---
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/twisted/internet/defer.py", line 106, in maybeDeferred
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] result = f(*args, **kw)
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokeravatar.py", line 418, in handleDistributedPacket
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] return self.handlePacketDefer(packet)
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokeravatar.py", line 481, in handlePacketDefer
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] self.handlePacketLogic(packet)
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokeravatar.py", line 891, in handlePacketLogic
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] table.update()
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 893, in update
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] self.tourneyEndTurn()
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 720, in tourneyEndTurn
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] self.factory.tourneyEndTurn(self.tourney, game.id)
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokerservice.py", line 879, in tourneyEndTurn
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] if not tourney.endTurn(game_id):
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokerengine/pokertournament.py", line 478, in endTurn
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] self.callback_remove_player(self, game_id, serial)
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokerservice.py", line 1048, in tourneyRemovePlayer
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] table.kickPlayer(serial)
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 1010, in kickPlayer
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] self.seated2observer(avatar)
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 959, in seated2observer
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] self.avatar_collection.remove(avatar.getSerial(), avatar)
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 77, in remove
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] assert avatar in self.serial2avatars[serial], "expected %d avatar in %s" % ( serial, str(self.serial2avatars[serial]) \
)
2010-03-01 06:23:50+0100 [HTTPChannel,2723,127.0.0.1] exceptions.KeyError: 0

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Mon 01 Mar 2010 10:31:46 AM UTC, comment #3:

2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] PokerResource: ERROR (x-forwarded-for:127.0.0.1) Traceback (most recent call last):
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/twisted/internet/defer.py", line 186, in addCallbacks
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] self._runCallbacks()
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/twisted/internet/defer.py", line 328, in _runCallbacks
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] self.result = callback(self.result, args, *kw)
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokersite.py", line 244, in <lambda>
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] deferred.addCallback(lambda result: self.deferRender(request, jsonp, packet, data))
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokersite.py", line 255, in deferRender
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] d = defer.maybeDeferred(session.avatar.handleDistributedPacket, request, packet, data)
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] --- <exception caught here> ---
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/twisted/internet/defer.py", line 106, in maybeDeferred
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] result = f(*args, **kw)
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokeravatar.py", line 418, in handleDistributedPacket
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] return self.handlePacketDefer(packet)
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokeravatar.py", line 481, in handlePacketDefer
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] self.handlePacketLogic(packet)
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokeravatar.py", line 891, in handlePacketLogic
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] table.update()
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 893, in update
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] self.tourneyEndTurn()
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 720, in tourneyEndTurn
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] self.factory.tourneyEndTurn(self.tourney, game.id)
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokerservice.py", line 879, in tourneyEndTurn
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] if not tourney.endTurn(game_id):
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokerengine/pokertournament.py", line 478, in endTurn
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] self.callback_remove_player(self, game_id, serial)
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokerservice.py", line 1048, in tourneyRemovePlayer
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] table.kickPlayer(serial)
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 1010, in kickPlayer
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] self.seated2observer(avatar)
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 959, in seated2observer
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] self.avatar_collection.remove(avatar.getSerial(), avatar)
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 77, in remove
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] assert avatar in self.serial2avatars[serial], "expected %d avatar in %s" % ( serial, str(self.serial2avatars[serial]) \
)
2010-03-01 06:13:08+0100 [HTTPChannel,1926,127.0.0.1] exceptions.KeyError: 0

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Mon 01 Mar 2010 10:29:28 AM UTC, comment #2:

Also happen when a player is busted from a tourney:
2010-03-01 07:39:44+0100 [-] Unhandled Error
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/twisted/application/app.py", line 348, in startReactor
self.config, oldstdout, oldstderr, self.profiler, reactor)
File "/usr/lib/python2.5/site-packages/twisted/application/app.py", line 273, in runReactorWithLogging
reactor.run()
File "/usr/lib/python2.5/site-packages/twisted/internet/base.py", line 1048, in run
self.mainLoop()
File "/usr/lib/python2.5/site-packages/twisted/internet/base.py", line 1057, in mainLoop
self.runUntilCurrent()
--- <exception caught here> ---
File "/usr/lib/python2.5/site-packages/twisted/internet/base.py", line 705, in runUntilCurrent
call.func(*call.args, **call.kw)
File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 739, in autoDeal
self.update()
File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 893, in update
self.tourneyEndTurn()
File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 720, in tourneyEndTurn
self.factory.tourneyEndTurn(self.tourney, game.id)
File "/usr/lib/python2.5/site-packages/pokernetwork/pokerservice.py", line 879, in tourneyEndTurn
if not tourney.endTurn(game_id):
File "/usr/lib/python2.5/site-packages/pokerengine/pokertournament.py", line 478, in endTurn
self.callback_remove_player(self, game_id, serial)
File "/usr/lib/python2.5/site-packages/pokernetwork/pokerservice.py", line 1048, in tourneyRemovePlayer
table.kickPlayer(serial)
File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 1010, in kickPlayer
self.seated2observer(avatar)
File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 959, in seated2observer
self.avatar_collection.remove(avatar.getSerial(), avatar)
File "/usr/lib/python2.5/site-packages/pokernetwork/pokertable.py", line 77, in remove
assert avatar in self.serial2avatars[serial], "expected %d avatar in %s" % ( serial, str(self.serial2avatars[serial]) )
exceptions.KeyError: 0

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Tue 23 Feb 2010 06:00:59 PM UTC, comment #1:

Could it be reproduced with latest poker-network trunk ?

Johan Euphrosine <proppy>
Project MemberIn charge of this item.
Sun 13 Dec 2009 01:34:25 PM UTC, original submission:
Johan Euphrosine <proppy>
Project MemberIn charge of this item.

 

 

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 proppy (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 18 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 11 Mar 2010 08:38:33 AM UTCproppyStatusReady For Test=>Fixed
    Fri 05 Mar 2010 01:34:30 PM UTCproppyStatusIn Progress=>Ready For Test
    Tue 02 Mar 2010 05:03:57 PM UTCproppyAttached File-=>Added poker-network-poker-table-seated2observer-workaround.patch, #8355
    Mon 01 Mar 2010 06:40:40 PM UTCproppyStatusConfirmed=>In Progress
    Mon 01 Mar 2010 06:33:13 PM UTCproppySeverity3 - Normal=>5 - Blocker
    Mon 01 Mar 2010 06:31:48 PM UTCproppyPriority5 - Normal=>9 - Immediate
    Mon 01 Mar 2010 06:28:45 PM UTCproppyAttached File-=>Added poker-network-server.log.4.avatarkeyerror.gz, #8344
    Mon 01 Mar 2010 06:28:19 PM UTCproppyAttached File#8343=>Removed
    Mon 01 Mar 2010 06:26:44 PM UTCproppyAttached File-=>Added poker-network-server.log.1.avatarkeyerror.gz, #8342
      Attached File-=>Added poker-network-server.log.3.avatarkeyerror.gz, #8343
    Mon 01 Mar 2010 01:49:57 PM UTCproppySummaryseated2observer AssertionError with poker-network 2.0=>seated2observer exceptions.KeyError: 0 with poker-network 2.0
    Mon 01 Mar 2010 10:40:05 AM UTCproppyAssigned toNone=>proppy
    Mon 01 Mar 2010 10:35:27 AM UTCproppyAttached File-=>Added poker-network-server.log.avatarassert.gz, #8338
      Attached File-=>Added poker-network-server.log.1.avatarassert.gz, #8339
    Mon 01 Mar 2010 10:33:41 AM UTCproppyAttached File-=>Added poker-network-server.log.avatarassert, #8337
    Mon 01 Mar 2010 10:29:28 AM UTCproppyStatusNeed Info=>Confirmed
      Summarysession expiration triggers AssertionError with poker-network 2.0=>seated2observer AssertionError with poker-network 2.0
    Tue 12 Jan 2010 09:36:42 AM UTCproppyStatusNone=>Need Info
    Show feedback again

    Back to the top


    Powered by Savane 3.1-cleanup