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

[mac] Too long pipe names: sometimes duplicate names arises when many applets on page

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 7-pool, 8-pool, 9
    • Fix Version/s: 9
    • Component/s: deploy
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b22
    • OS:
      os_x

      Backports

        Description

        Frequently got the following exception on a server plugin VM:

        java.lang.RuntimeException: Error creating AF_UNIX: errno 48: Address already in use
        at sun.plugin2.ipc.unix.DomainSocketNamedPipe.<init>(Unknown Source)
        at sun.plugin2.ipc.unix.UnixIPCFactory.createNamedPipe(Unknown Source)
        at sun.plugin2.message.transport.NamedPipeTransportFactory.<init>(Unknown Source)
        at sun.plugin2.message.transport.TransportFactory.create(Unknown Source)
        at sun.plugin2.message.transport.TransportFactory.createForCurrentOS(Unknown Source)
        at sun.plugin2.main.server.JVMInstance.startImpl(Unknown Source)
        at sun.plugin2.main.server.JVMInstance.start(Unknown Source)
        at sun.plugin2.main.server.JVMManager.getOrCreateBestJVMInstance(Unknown Source)
        at sun.plugin2.main.server.JVMManager.startAppletImpl(Unknown Source)
        at sun.plugin2.main.server.JVMManager.relaunchApplet(Unknown Source)
        at sun.plugin2.main.server.JVMInstance$WorkerThread.run(Unknown Source)
        java.lang.RuntimeException: Error creating AF_UNIX: errno 48: Address already in use
        at sun.plugin2.ipc.unix.DomainSocketNamedPipe.<init>(Unknown Source)
        at sun.plugin2.ipc.unix.UnixIPCFactory.createNamedPipe(Unknown Source)
        at sun.plugin2.message.transport.NamedPipeTransportFactory.<init>(Unknown Source)
        at sun.plugin2.message.transport.TransportFactory.create(Unknown Source)
        at sun.plugin2.message.transport.TransportFactory.createForCurrentOS(Unknown Source)
        at sun.plugin2.main.server.JVMInstance.startImpl(Unknown Source)
        at sun.plugin2.main.server.JVMInstance.start(Unknown Source)
        at sun.plugin2.main.server.JVMManager.getOrCreateBestJVMInstance(Unknown Source)
        at sun.plugin2.main.server.JVMManager.startAppletImpl(Unknown Source)
        at sun.plugin2.main.server.JVMManager.relaunchApplet(Unknown Source)
        at sun.plugin2.main.server.JVMInstance$WorkerThread.run(Unknown Source)

        Looks like there is some limitation for the pipe name length. While the plugin tries to create the pipe with long name of type
        /var/folders/93/jv207k_s54s7hm7xmt9p80m80000gp/T/WebKitPlugin-XnPoE8/.com.sun.deploy.net.socket.6899.<long UID>.AF_UNIX
        The OS truncates it to:
        /var/folders/93/jv207k_s54s7hm7xmt9p80m80000gp/T/WebKitPlugin-XnPoE8/.com.sun.deploy.net.socket.6899.## (the ## is the first two digits of the <long UID>)
        The pipe names of course have the same name frequently when there are a lot of applets on the page.
        The problem is frequently observed on Safari 7.0 with sandboxed applet execution since the /WebKitPlugin-XnPoE8 is appended to the pipe name.
        Without sandboxing the pipe name is still truncated but it contains sufficient UID numbers to be unique with a high probability.

        See more details here JDK-8021383

          Attachments

            Issue Links

              Activity

                People

                Assignee:
                anashaty Anton Nashatyrev (Inactive)
                Reporter:
                anashaty Anton Nashatyrev (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved: