ajanata / PretendYoureXyzzy

A web clone of the card game Cards Against Humanity.
https://pretendyoure.xyz/zy
BSD 2-Clause "Simplified" License
1.22k stars 397 forks source link

150220 deadlock #136

Open ajanata opened 9 years ago

ajanata commented 9 years ago

Haven't had one of these in a very long time.

Found one Java-level deadlock:
=============================
"http-bio-8080-exec-4102":
  waiting to lock monitor 0x00007f759c1b1838 (object 0x00000007806923e8, a java.util.TreeMap),
  which is held by "http-bio-8080-exec-1295"
"http-bio-8080-exec-1295":
  waiting to lock monitor 0x00007f7589096c98 (object 0x0000000780a23eb8, a java.util.HashMap),
  which is held by "http-bio-8080-exec-284"
"http-bio-8080-exec-284":
  waiting to lock monitor 0x00007f759c1b1838 (object 0x00000007806923e8, a java.util.TreeMap),
  which is held by "http-bio-8080-exec-1295"

Java stack information for the threads listed above:
===================================================
"http-bio-8080-exec-4102":
        at net.socialgamer.cah.data.GameManager.getGameList(GameManager.java:252)
        - waiting to lock <0x00000007806923e8> (a java.util.TreeMap)
        at net.socialgamer.cah.handlers.GameListHandler.handle(GameListHandler.java:68)
        at net.socialgamer.cah.servlets.AjaxServlet.handleRequest(AjaxServlet.java:96)
        at net.socialgamer.cah.servlets.CahServlet.doPost(CahServlet.java:116)
        [...]
"http-bio-8080-exec-1295":
        at net.socialgamer.cah.data.ConnectedUsers.broadcastToList(ConnectedUsers.java:228)
        - waiting to lock <0x0000000780a23eb8> (a java.util.HashMap)
        at net.socialgamer.cah.data.Game.broadcastToPlayers(Game.java:416)
        at net.socialgamer.cah.data.Game.addPlayer(Game.java:225)
        at net.socialgamer.cah.data.GameManager.createGameWithPlayer(GameManager.java:135)
        - locked <0x00000007806923e8> (a java.util.TreeMap)
        at net.socialgamer.cah.handlers.CreateGameHandler.handle(CreateGameHandler.java:70)
        at net.socialgamer.cah.servlets.AjaxServlet.handleRequest(AjaxServlet.java:96)
        at net.socialgamer.cah.servlets.CahServlet.doPost(CahServlet.java:116)
        [...]
"http-bio-8080-exec-284":
        at net.socialgamer.cah.data.GameManager.destroyGame(GameManager.java:162)
        - waiting to lock <0x00000007806923e8> (a java.util.TreeMap)
        at net.socialgamer.cah.data.Game.removePlayer(Game.java:308)
        at net.socialgamer.cah.data.User.noLongerVaild(User.java:202)
        at net.socialgamer.cah.data.ConnectedUsers.removeUser(ConnectedUsers.java:128)
        - locked <0x0000000780a23eb8> (a java.util.HashMap)
        at net.socialgamer.cah.handlers.LogoutHandler.handle(LogoutHandler.java:67)
        at net.socialgamer.cah.servlets.AjaxServlet.handleRequest(AjaxServlet.java:96)
        at net.socialgamer.cah.servlets.CahServlet.doPost(CahServlet.java:116)
        [...]

Found 1 deadlock.