[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-serviceability-dev
Subject: Re: [PATCH] attach in linux should be relative to /proc/pid/root and namespace aware
From: Chris Plummer <chris.plummer () oracle ! com>
Date: 2017-08-22 18:37:14
Message-ID: b0f0fde0-84d6-1ace-2cf6-731dc0085693 () oracle ! com
[Download RAW message or body]
Ping!
Unless I hear back otherwise, I'll attempt to add the extra exception
handling, finish up testing (sans running all tests under docker), and
send out a review.
thanks,
Chris
On 8/17/17 5:15 PM, Chris Plummer wrote:
> Hi TJ,
>
> JDK-8179498 is assigned to me. I've been playing around with your
> changes to make sure they work fine, and plan on sponsoring the
> commit. I did run into one issue. It ended up being user error, but
> highlights a gap in the jcmd docker support. More specifically, "jcmd
> -l" and "jcmd <MainClass>" don't work. jcmd on the host has no
> visibility into the list of JVM pid's running on the docker. Normally
> this list is obtained by looking in /tmp/hsperfdata_<user>/* to find
> the list of JVM pid's for each user. However, since the docker maps to
> a different /tmp, jcmd on the host does not see these tmp files for
> docker JVMs. Thus you first need to find the pid of the JVM running on
> the docker using ps on the host, and then run jcmd using "jcmd <pid>".
> Because of this for quite a while I thought your changes were not
> working, but when I dug more into the attach API and learned how "jcmd
> -l" discovers the list of JVM pid's, I realized my error, and
> everything was fine when I specified a PID. This should probably be
> documented somewhere, at the very lead in the release notes for 10.
>
> Regarding any cleanup of the changes, the only thing I noted was the
> following comment from Erik and your reply:
>
>> On Wed, May 03, 2017 at 03:14:29PM +0200, Erik Gahlin wrote:
>> >/I noticed thatgetNamespacePid throws IOException and
>> InvalidPathException. />/Perhaps we want to catch those, so we can
>> default to the original pid if />/there is a I/O related problem. /
>> That seems reasonable, I'll add that.
> Is there a webrev that has this change? The only one I have access to
> is the following that David setup before this change was suggested:
>
> http://cr.openjdk.java.net/~dholmes/8179498/webrev/
>
> As for testing, I've verified that at least jcmd works between a
> docker container and its host, and I will verify that these changes
> don't break anything when the tool and the target JVM are on the same
> host. What will be a challenge is verifying that all our tests pass
> when the target JVM is in a docker container. I assume the tests
> simply spawn a JVM process to attach to, so default behavior is always
> same host. It is likely far from trivial to modify them to spawn the
> process in a docker. Any suggestions?
>
> thanks,
>
> Chris
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic