Blocks :
|
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