JDK-8043231 : [mac] Too long pipe names: sometimes duplicate names arises when many applets on page
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 7-pool,8-pool,9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: os_x
  • Submitted: 2014-05-15
  • Updated: 2015-01-21
  • Resolved: 2014-06-19
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 7 JDK 8 JDK 9
7u76Fixed 8u40Fixed 9 b22Fixed
Related Reports
Blocks :  
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