The general attach sequence ...

src/jdk.attach/solaris/classes/sun/tools/attach/VirtualMachineImpl.java

 the attacher creates an attach_pid file in a directory where the attachee is runnning
 issues a signal to the attacheee

  loops waiting for the java_pid file to be created
  default timeout is 10 seconds

  src/hotspot/os/solaris/attachListener_solaris.cpp

   attachee creates the java_pid file
   listens til the attacher opens the door

...
Not sure when a bare IOException is thrown rather than the
more specific FileNotFoundException.



On 10/2/18 4:11 PM, Chris Plummer wrote:
Can you summarize how the attach handshaking is suppose to work? I'm just wondering why the attacher would ever be looking for the file before the attachee has created it. It seems a proper handshake would prevent this. Maybe there's some sort of visibility issue where the attachee has indeed created the file, but it is not immediately visible to the attacher process.

Chris

On 10/2/18 12:27 PM, gary.ad...@oracle.com wrote:
The problem reproduced pretty quickly.
I added a call to checkPermission and revealed the
"file not found" from the stat call when the IOException
was detected.

There has been some flakiness from the Solaris test machines today,
so I'll continue with the testing a bit longer.

On 10/2/18 3:12 PM, Chris Plummer wrote:
Without the fix was this issue easy enough to reproduce that you can be sure this is resolving it?

Chris

On 10/2/18 8:16 AM, Gary Adams wrote:
Solaris debug builds are failing tests that use the attach interface.
An IOException is reported when the java_pid file is not opened.

It appears that the attempt to attach is taking place too quickly.
This workaround will allow the open operation to be retried
after a short pause.

  Webrev: http://cr.openjdk.java.net/~gadams/8210337/webrev/
  Issue: https://bugs.openjdk.java.net/browse/JDK-8210337

Testing is in progress.







Reply via email to