Hi Dmitry,

On 12/08/2016 2:55 AM, Dmitry Samersoff wrote:
David,

Please see updated webrev.

http://cr.openjdk.java.net/~dsamersoff/JDK-8157236/webrev.03/

I didn't touch windows version because it quite different from *NIX one.

Do we ever see failures on Windows? Is so we should add diagnostics there too even if they are different to *NIX.

I would still like to see what file it is working with. We need some logging in here:

bool AttachListener::is_init_trigger() {
   if (init_at_startup() || is_initialized()) {
return false; // initialized at startup or already initialized
   }
   char fn[PATH_MAX+1];
   sprintf(fn, ".attach_pid%d", os::current_process_id());
   int ret;
   struct stat64 st;
   RESTARTABLE(::stat64(fn, &st), ret);
   if (ret == -1) {
+    log ("failed to find attach file: %s, trying alternate", fn)
     snprintf(fn, sizeof(fn), "%s/.attach_pid%d",
              os::get_temp_directory(), os::current_process_id());
     RESTARTABLE(::stat64(fn, &st), ret);
+    if (ret == -1) {
+       log("failed to find attach file: %s", fn);
+    }
   }

All failure paths need to show us what it was that failed.

typos: trigerred -> triggered

Thanks,
David

-Dmitry

On 2016-08-08 02:40, David Holmes wrote:
Hi Dmitry,

On 5/08/2016 7:25 PM, Dmitry Samersoff wrote:
Everybody,

Please review the fix:

  http://cr.openjdk.java.net/~dsamersoff/JDK-8157236/webrev.02/

Problem:
  Tests fail intermittently because it can't attach to child process,
  these attach failures is hard to debug because attach framework
  doesn't provide enough diagnostic information.

Solution:

  a) Increase attach timeout
  b) Slightly change attach loop to save a bit of CPU power.
  c) Add some logging to attach listener.

It's just a first step in this direction. Complete cleanup of attach
code (remove LinuxThreads support and convert all printing to UL) is not
a goal of this fix - I'll file a separate CR for it.

I still think you need more logging now to aid in debugging these cases.
In particular we want to be able to verify that the path of the attach
file is what we expect in all cases ie whether we find  the .attach_pid
file in cwd or whether we are looking in temp directory, and whether we
ultimately succeed or fail.

Plus whatever you do now should be done consistently for all platforms.

Thanks,
David

-Dmitry



Reply via email to