RFR 9: 8133552 : java/lang/ProcessHandle/InfoTest.java fails intermittently - incorrect user
Roger Riggs
Roger.Riggs at Oracle.com
Thu Sep 10 17:03:53 UTC 2015
Hi Volker,
Thanks for the review, I added the code you provided to use the correct
length.
Updated the webrev:
http://cr.openjdk.java.net/~rriggs/webrev-info-8133552/
Roger
On 9/10/2015 11:52 AM, Volker Simonis wrote:
> On Wed, Sep 9, 2015 at 11:49 PM, Roger Riggs <Roger.Riggs at oracle.com> wrote:
>> Hi,
>>
>> Please review this update to extract the uid on from the owner of the
>> /proc/<pid> file.
>> It should be more reliable than using the owner of the /proc/<pid>/cmdline
>> file.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~rriggs/webrev-info-8133552/
>>
> Hi Roger,
>
> the change looks good. I've only found one little problem:
>
> In:
>
> strncat(fn, "/cmdline", sizeof fn);
>
> 'fn' is not empty any more, so I think it should read:
>
> strncat(fn, "/cmdline", sizeof fn - strnlen(fn, sizeof fn) - 1);
>
> Also, increasing the timeout to 30 sec is reasonable.
>
> Thank you and best regards,
> Volker
>
>> Thanks, Roger
>>
>>
>>
>> On 9/9/2015 12:56 PM, Roger Riggs wrote:
>>> Hi Volker,
>>>
>>> Thanks for the review and diagnosis.
>>>
>>> Can opening /proc/pid be used as a fallback if the st_uid is zero or
>>> is it worth the overhead of stat'ing /proc/pid always?
>>>
>>> Thanks, Roger
>>>
>>>
>>> On 9/9/2015 11:46 AM, Volker Simonis wrote:
>>>> Hi Roger,
>>>>
>>>> I think your change looks good and it surely improves the test
>>>> stability but I don't think it solves the problem in all cases.
>>>>
>>>> I think this problem is caused by a <defunct> (i.e. "zombie") process
>>>> (the spawned process lived too short and was already a zombie when the
>>>> info object was created). If you look at the proc-file system entry of
>>>> a <defunct> process you can see that its 'cmdline' file has zero size
>>>> and the file is owned by root. This is exactly what is reported by the
>>>> corresponding info object in the bug report (user=root and no cmd
>>>> field).
>>>>
>>>> We may need to improve the way how we get the uid of a pid on Linux.
>>>> The current way of querying the owner of /proc/<pid>/cmdline seems to
>>>> be unreliable. We may instead take the owner of /proc/<pid> which
>>>> seems to be still the initial user of the process.
>>>>
>>>> Regards,
>>>> Volker
>>>>
>>>>
>>>> On Tue, Sep 8, 2015 at 11:35 PM, Roger Riggs <Roger.Riggs at oracle.com>
>>>> wrote:
>>>>> With link to webrev corrected:
>>>>>
>>>>> On 9/8/2015 5:08 PM, Roger Riggs wrote:
>>>>>> Please review an intermittent test bug fix.
>>>>>> The test setup time is very short and the user may be returned as 0
>>>>>> which
>>>>>> is reported as root.
>>>>>> The correction lengthens the time allowed for the process to start.
>>>>>>
>>>>>> The test is removed from the ProblemList.
>>>>>>
>>>>>> Webrev:
>>>>>> http://cr.openjdk.java.net/~rriggs//webrev-info-8133552
>>>>>>
>>>>>> Bug:
>>>>>> https://bugs.openjdk.java.net/browse/JDK-8133552
>>>>>>
>>>>>> Thanks, Roger
>>>>>>
More information about the core-libs-dev
mailing list