Unless -XX:+StartAttachListener is used init will only be called after the attaching process has signaled the VM to attach, at which point the attaching process will already have attempted to do a door_call/open a domain socket using the stale file.
Thanks for the feedback! /peter -----Original Message----- From: David Holmes [mailto:[email protected]] Sent: Tuesday, July 9, 2013 1:52 PM To: Peter Allwin Cc: [email protected]; [email protected] Subject: Re: RFR 7162400: Intermittent java.io.IOException: Bad file number during HotSpotVirtualMachine.executeCommand PS. Why not put the vm_start logic directly into the init method? David On 8/07/2013 11:54 PM, Peter Allwin wrote: > Hello! > > Looking for reviews of this change: > > http://cr.openjdk.java.net/~allwin/7162400/webrev.01/ > > For CR: > > http://bugs.sun.com/view_bug.do?bug_id=7162400 > > https://jbs.oracle.com/bugs/browse/JDK-7162400 > > Summary: > > This change addresses an issue in the Attach API on Solaris, Linux and > BSD where an attaching application can receive IOExceptions such as > "Bad file number" (Solaris), "Connection refused" (Linux/BSD), or > "well-known file is not secure". > > The attach process uses a file in the temporary directory as a door > (Solaris) or domain socket (Linux,BSD) to communicate with the VM. In > certain circumstances stale files can be left in the file system which > can cause the attaching application to believe that the VM is ready to > receive a connection when it's not. With this change the stale file > will be removed during VM startup. > > Note that there is still an issue if we don't have permission to > remove the stale file, the attaching process will fail to connect. > > Testing: > > JPRT, reproducing script on Solaris, Linux. > > Credits: > > Thanks to Staffan Larsen who worked on this issue with me. > > Regards, > > Peter >
