RFR(10)(M): 8179498: attach in linux should be relative to /proc/pid/root and namespace aware

David Holmes david.holmes at oracle.com
Thu Sep 14 04:00:40 UTC 2017


Hi Chris,

On 14/09/2017 1:03 PM, Chris Plummer wrote:
> 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 

I presume you mean createAttachFile there.

> 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.

Sorry but I don't follow. If findSocketFile has to look in 
/proc/<pid>/root/<tmpdir> for the socket file, why does the 
createAttachFile not also have to write the attach file into 
/proc/<pid>/root/<tmpdir> ?? In both cases it needs to find the tmpdir 
of the target process.

Thanks,
David

>>
>> 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