RFR 9: 8133552 : java/lang/ProcessHandle/InfoTest.java fails intermittently - incorrect user

Roger Riggs Roger.Riggs at Oracle.com
Thu Sep 10 13:30:58 UTC 2015

Hi Joe,

I think adjusting the timeouts is already covered.
The test uses Process.waitFor(timeout) to wait for the process to exit, 
but only up to the timeout value.
The "Utils.adjustTimeout(5)", performs the desired adjustment based on 
the jtreg timeoutFactor.
Utils is in the testlibrary.


On 9/9/2015 8:08 PM, Joseph D. Darcy wrote:
> Hi Roger,
> If timeouts need to be used, I suggest rather than fixed values they 
> be adjusted according to the timeout factor being used in the test run.
> Can some sort of repeated testing with exponential backout to a longer 
> timeout be used ? If the system is actually ready is a fraction of a 
> second, it is preferable for the test to be able to complete without 
> waiting the full timeout value. (Perhaps that is already encapsulated 
> in the existing code.)
> Thanks,
> -Joe
> On 9/9/2015 2:49 PM, Roger Riggs 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/
>> 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