I am not having much luck tracking down a rare bug in Via Magica.
It must be a rather rare situation. Users report
Unexpected error: Unknown player statistic
Along with 'If your game interface seems unstable, press F5 or click here to reload'
Reloading or restarting browser, does not allow them to continue the game past the action they are supposed to perform. They have to abandon the game. I am not able to recreate this situation and it occurs during a rather routine situation for the game that reoccurs on numerous occasions during a game.
Does this ring a bell for any other developers to hint at potential things to look at? Despite the 'Unknown player statistic' it doesn't seem related to incStat calls.
The only commonality among the games reported for this occurring is that they have been during a multipleactiveplayer state with only a single player. This game state has the potential to be multiple simultaneous players, but sometimes it is just a single player. I determine players that are active in an array $gemPlayerIds and set them active with the following function.
$this->gamestate->setPlayersMultiactive($gemPlayerIds, 'noGemsToPlace');
It definitely seems like somehow the game has lost track that the player is allowed to perform an action. The DB save has the correct player marked as player_is_multiactive .
There are numerous dead lock issues reported in the unexpected errors in production file that occur during the same state where the problem is occuring. I am unsure how to read these, or if its related.
http://boardgamearena.com/9/viamagica/v ... 2197728906
01/02 19:31:48 [error] [T144305532] [86638729/Israel74] Error (1213) while processing SQL request: Deadlock found when trying to get lock; try restarting transaction - Request: UPDATE global SET global_value='1' WHERE global_id='28'
01/02 19:31:48 [error] [T144305532] [86638729/Israel74] Error (1213) while processing SQL request: Deadlock found when trying to get lock; try restarting transaction - Request: SELECT global_id, global_value FROM global WHERE 1
01/02 19:32:12 [error] [T144305532] [86694682/Arwen012] Error (1213) while processing SQL request: Deadlock found when trying to get lock; try restarting transaction - Request: SELECT global_id, global_value FROM global WHERE 1
01/02 19:32:12 [error] [T144305532] [89155116/npas] Error (1213) while processing SQL request: Deadlock found when trying to get lock; try restarting transaction - Request: SELECT global_id, global_value FROM global WHERE 1
01/02 19:32:12 [error] [T144305532] [86694682/Arwen012] Unexpected exception: mysql_deadlock_restart_transaction (BGA service error 1612204332)
#0 /var/tournoi/release/tournoi-210128-1122/www/game/module/table/tableinfos.game.php(177): APP_DbObject::DbQuery()
#1 /var/tournoi/release/tournoi-210128-1122/www/game/module/table/tableinfos.game.php(87): TableInfos->getGlobalsFromDB()
#2 /var/tournoi/release/tournoi-210128-1122/www/include/APP_GameAction.inc.php(67): TableInfos->get()
#3 /var/tournoi/release/tournoi-210128-1122/www/include/APP_GameAction.inc.php(21): APP_GameAction->initGameTableObjects()
#4 /var/tournoi/release/tournoi-210128-1122/www/include/webActionCore.inc.php(182): APP_GameAction->__construct()
#5 /var/tournoi/release/tournoi-210128-1122/www/index.php(247): launchWebAction()
#6 {main}
It must be a rather rare situation. Users report
Unexpected error: Unknown player statistic
Along with 'If your game interface seems unstable, press F5 or click here to reload'
Reloading or restarting browser, does not allow them to continue the game past the action they are supposed to perform. They have to abandon the game. I am not able to recreate this situation and it occurs during a rather routine situation for the game that reoccurs on numerous occasions during a game.
Does this ring a bell for any other developers to hint at potential things to look at? Despite the 'Unknown player statistic' it doesn't seem related to incStat calls.
The only commonality among the games reported for this occurring is that they have been during a multipleactiveplayer state with only a single player. This game state has the potential to be multiple simultaneous players, but sometimes it is just a single player. I determine players that are active in an array $gemPlayerIds and set them active with the following function.
$this->gamestate->setPlayersMultiactive($gemPlayerIds, 'noGemsToPlace');
It definitely seems like somehow the game has lost track that the player is allowed to perform an action. The DB save has the correct player marked as player_is_multiactive .
There are numerous dead lock issues reported in the unexpected errors in production file that occur during the same state where the problem is occuring. I am unsure how to read these, or if its related.
http://boardgamearena.com/9/viamagica/v ... 2197728906
01/02 19:31:48 [error] [T144305532] [86638729/Israel74] Error (1213) while processing SQL request: Deadlock found when trying to get lock; try restarting transaction - Request: UPDATE global SET global_value='1' WHERE global_id='28'
01/02 19:31:48 [error] [T144305532] [86638729/Israel74] Error (1213) while processing SQL request: Deadlock found when trying to get lock; try restarting transaction - Request: SELECT global_id, global_value FROM global WHERE 1
01/02 19:32:12 [error] [T144305532] [86694682/Arwen012] Error (1213) while processing SQL request: Deadlock found when trying to get lock; try restarting transaction - Request: SELECT global_id, global_value FROM global WHERE 1
01/02 19:32:12 [error] [T144305532] [89155116/npas] Error (1213) while processing SQL request: Deadlock found when trying to get lock; try restarting transaction - Request: SELECT global_id, global_value FROM global WHERE 1
01/02 19:32:12 [error] [T144305532] [86694682/Arwen012] Unexpected exception: mysql_deadlock_restart_transaction (BGA service error 1612204332)
#0 /var/tournoi/release/tournoi-210128-1122/www/game/module/table/tableinfos.game.php(177): APP_DbObject::DbQuery()
#1 /var/tournoi/release/tournoi-210128-1122/www/game/module/table/tableinfos.game.php(87): TableInfos->getGlobalsFromDB()
#2 /var/tournoi/release/tournoi-210128-1122/www/include/APP_GameAction.inc.php(67): TableInfos->get()
#3 /var/tournoi/release/tournoi-210128-1122/www/include/APP_GameAction.inc.php(21): APP_GameAction->initGameTableObjects()
#4 /var/tournoi/release/tournoi-210128-1122/www/include/webActionCore.inc.php(182): APP_GameAction->__construct()
#5 /var/tournoi/release/tournoi-210128-1122/www/index.php(247): launchWebAction()
#6 {main}