Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4496873

synchronization deadlock in PolicyFile.implies

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 1.4.0
    • 1.4.0
    • security-libs
    • None
    • beta3
    • generic
    • generic

      The fix to 4453726 has introduced a synchronization deadlock between PolicyFile and other classes. The particular situation described here is with InetAddress, but the problem is not specific to InetAddress.

      For the specific example, here's thread 1:

      "main" prio=5 tid=0x2b910 nid=0x1 waiting for monitor entry [ffbee000..ffbeed18]
      at sun.security.provider.PolicyFile.implies(PolicyFile.java:944)
      - waiting to lock <f4b51998> (a sun.security.provider.PolicyInfo)
      at java.security.ProtectionDomain.implies(ProtectionDomain.java:199)
      at java.security.AccessControlContext.checkPermission(AccessControlContext.java:258)
      at java.security.AccessController.checkPermission(AccessController.java:404)
      at java.lang.SecurityManager.checkPermission(SecurityManager.java:545)
      at java.lang.SecurityManager.checkConnect(SecurityManager.java:1045)
      at java.net.InetAddress.getLocalHost(InetAddress.java:1084)
      - locked <f85bd590> (a java.lang.Class)
      ...

      and here's thread 2:

      "multicast discovery announcement listener" daemon prio=5 tid=0x21cf90 nid=0x973 waiting for monitor entry [f2a80000..f2a819e0]
      at java.net.InetAddress.cacheInitIfNeeded(InetAddress.java:600)
      - waiting to lock <f85bd590> (a java.lang.Class)
      at java.net.InetAddress.getCachedAddress(InetAddress.java:667)
      at java.net.InetAddress.getAllByName0(InetAddress.java:916)
      at java.net.InetAddress.getHostFromNameService(InetAddress.java:484)
      at java.net.InetAddress.getHostName(InetAddress.java:410)
      at java.net.SocketPermission.getCanonName(SocketPermission.java:557)
      at java.net.SocketPermission.impliesIgnoreMask(SocketPermission.java:759)
      at java.net.SocketPermissionCollection.implies(SocketPermission.java:1116)
      at java.security.Permissions.implies(Permissions.java:138)
      at sun.security.provider.PolicyFile.implies(PolicyFile.java:947)
      - locked <f4b51998> (a sun.security.provider.PolicyInfo)
      ...

            claisunw Charlie Lai (Inactive)
            bscheiflsunw Bob Scheifler (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: