RFR(10)(M): 8179498: attach in linux should be relative to /proc/pid/root and namespace aware
Chris Plummer
chris.plummer at oracle.com
Thu Sep 14 03:03:06 UTC 2017
Hi David,
On 9/13/17 5:12 PM, David Holmes wrote:
> Hi Chris,
>
> On 14/09/2017 8:23 AM, Chris Plummer wrote:
>> I could use one more reviewer.
>
> Generally this seems okay to me.
>
> One query though ... in createAttachFile don't you need to alter the
> tmpdir using part in a similar manner to how findSocketFile was modified?
The fix in findSocketFile is not just to make sure the client uses the
correct pid in the .java_pid file files, but also (as you point out) to
make sure that the client properly references the target jvm's tmp
directory when accessing the .java_pid file. findSocketFile is a little
different. You still have to map to the proper from pid to ns_pid when
referencing the .attach_pid file, but you don't have the /tmp mount
point differences to deal with. /proc/<pid>/cwd should work even if the
pid is for a docker. You don't even have to map to the pid as the docker
sees it. /proc/<pid>/cwd from the client's POV should be the same as
/proc/<ns_pid>/cwd from the target JVM's POV.
>
> Minor note - you can collapse your catch blocks into 1 using something
> like
>
> } catch (NumberFormatException | IOException x) {
> throw new AttachNotSupportedException("Unable to parse
> namespace");
> }
I'll make that change.
thanks,
Chris
>
> Cheers,
> David
>> thanks,
>>
>> Chris
>>
>> On 9/11/17 8:03 PM, Chris Plummer wrote:
>>> Ok, I will. Thanks.
>>>
>>> Chris
>>>
>>> On 9/11/17 6:13 PM, serguei.spitsyn at oracle.com wrote:
>>>> Hi Chris,
>>>>
>>>> This looks good to me.
>>>>
>>>> I'm not sure if all the nsk.aod and the AttachOnDemand tests from
>>>> the nsk.jvmti are run in the hotspot tier1, 2, and 3 tests.
>>>> It makes sense to double-check it.
>>>>
>>>>
>>>> Thanks,
>>>> Serguei
>>>>
>>>>
>>>> On 9/10/17 20:34, Chris Plummer wrote:
>>>>> [re-sending - sent to wrong alias first time]
>>>>>
>>>>> Hello,
>>>>>
>>>>> Please review the following:
>>>>>
>>>>> https://bugs.openjdk.java.net/browse/JDK-8179498
>>>>> http://cr.openjdk.java.net/~cjplummer/8179498/webrev.00/webrev_jdk/
>>>>>
>>>>> The CR has the relevant details. Some previous discussions can be
>>>>> found here:
>>>>>
>>>>> http://mail.openjdk.java.net/pipermail/serviceability-dev/2017-April/021237.html
>>>>>
>>>>> http://mail.openjdk.java.net/pipermail/serviceability-dev/2017-May/021249.html
>>>>>
>>>>> http://mail.openjdk.java.net/pipermail/serviceability-dev/2017-August/021679.html
>>>>>
>>>>>
>>>>> Testing with docker has been limited to just making sure jcmd now
>>>>> works with the docker setup I was provided. I currently don't see
>>>>> how we can run our existing tests in a way that would test the
>>>>> docker support without doing some rewriting of the tests.
>>>>>
>>>>> I also ran all our hotspot tier1, 2, and 3 tests, along with
>>>>> jdk/test/tools and jdk/test/sun/tools tests to make sure existing
>>>>> functionality is not broken with these changes.
>>>>>
>>>>> thanks,
>>>>>
>>>>> Chris
>>>>
>>>
>>
More information about the serviceability-dev
mailing list