RFR: [JDK-8216565] Specifying the same path creates a new directory in JFR.configure
Chihiro Ito
chihiro.ito at oracle.com
Wed Jan 23 16:59:34 UTC 2019
Hi Erik, Yasumasa
Thank you for your advice. I implemented only checking paths. Because I
wouldn't like to constraints that two objects are identical.
Could you review this, please? If change looks good, please push to the
repository.
I have run the changes through test-tier1 test sets and saw no sign of
regression.
webrev:
http://cr.openjdk.java.net/~cito/JDK-8216565/webrev.02/
JBS:
https://bugs.openjdk.java.net/browse/JDK-8216565
Regards,
Chihiro
On 2019/01/22 22:55, Erik Gahlin wrote:
> Hi Chihiro,
>
>> Hi Erik and Yasumasa,
>>
>> I am considering what is the best test for this fix. please give me a
>> advice for following question.
>>
>> Do we need to verify that two objects are same one ?
>
> I assumed you added the check to prevent regressions.
>
>>
>> This test verifies that it will not change when the same path is
>> specified in JFR.configure. As long as the same path is specified,
>> even if the results of Repository.getRepository().getRepositoryPath()
>> are different objects, these objects should show the same path. We
>> will not need to verify that it is the same object.
>>
> If you run the test on JDK 12, it will change the path (object) even
> if it is the same (from an equals standpoint). So a object check will
> ensure that the problem has been fixed in JDK 13. That said, I could
> live without a test, but if you add one. I don't think we should use
> Thread.sleep(2000) as this will slow down testing.
>
> Erik
>
>> Regards,
>> Chihiro
>>
>>
>> On 2019/01/15 22:08, Yasumasa Suenaga wrote:
>>> Hi,
>>>
>>> On 2019/01/15 2:29, Erik Gahlin wrote:
>>>> Hi Chihiro,,
>>>> It would better (and safer) to just compare the references than
>>>> using System.identityHashCode.
>>>
>>> Does "safer" means two paths points different path?
>>> If so, I think you can add sleep between two JFR.configure calls.
>>>
>>> The resolution of time in Repository::REPO_DATE_FORMAT is seconds.
>>> IMHO you can test this change "safely" with sleep 1 sec or longer.
>>>
>>>
>>> Thanks,
>>>
>>> Yasumasa
>>>
>>>
>>>> Asserts.assertTrue(initialPath == samePath));
>>>> …
>>>> Asserts.assertFalse(initialPath == changedPath));
>>>>
>>>> Thanks
>>>> Erik
>>>>
>>>>
>>>>> On 13 Jan 2019, at 10:59, Chihiro Ito <chihiro.ito at oracle.com> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> Thank you for reviewing.
>>>>>
>>>>> I fix test case and if-statement. Could you review this again ?
>>>>>
>>>>> webrev:
>>>>> http://cr.openjdk.java.net/~cito/JDK-8216565/webrev.01/
>>>>>
>>>>> JBS:
>>>>> https://bugs.openjdk.java.net/browse/JDK-8216565
>>>>>
>>>>> Regards,
>>>>> Chihiro
>>>>>
>>>>> On 2019/01/12 11:05, Yasumasa Suenaga wrote:
>>>>>> Hi Chihiro,
>>>>>>
>>>>>> The condition in if-statement is a little verbosely.
>>>>>> I think it becomes more simple if you implement SafePath::equals
>>>>>> and use it.
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Yasumasa
>>>>> On 2019/01/12 2:11, Chihiro Ito wrote:
>>>>>> Hi Erik,
>>>>>>
>>>>>> Thank you for your review. I didn't have this idea.
>>>>>>
>>>>>> I'll fix it soon and request a review again.
>>>>>>
>>>>>> Regards,
>>>>>> Chihiro
>>>>>>
>>>>>> On 2019/01/12 1:24, Erik Gahlin wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> Code looks good, but the 2 s sleep in the test unfortunate.
>>>>>>>
>>>>>>> Perhaps you could compare object identity instead? If it hasn't
>>>>>>> change, it's fine
>>>>>>>
>>>>>>> Erik
>>>>>>>
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> I reported a following behabior as a bug. [JDK-8216565]
>>>>>>>>
>>>>>>>> Could I have a reviews for small patch, please ?
>>>>>>>>
>>>>>>>> --
>>>>>>>> Even if you specify the same path as repositorypath in
>>>>>>>> JFR.configure, a new subdirectory is created every time.
>>>>>>>>
>>>>>>>> $ ${JAVA_HOME}/bin/jcmd 17535 JFR.configure repositorypath=/tmp
>>>>>>>> 17535:
>>>>>>>> Repository path: /tmp/2019_01_12_00_28_53_17535
>>>>>>>>
>>>>>>>> $ ${JAVA_HOME}/bin/jcmd 17535 JFR.configure repositorypath=/tmp
>>>>>>>> 17535:
>>>>>>>> Repository path: /tmp/2019_01_12_00_29_03_17535
>>>>>>>>
>>>>>>>> If the same directory is specified, you should not create a new .
>>>>>>>> --
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Chihiro
>>>>>>>>
>>>>>>>>
>>>>>>>> On 2019/01/10 1:12, Chihiro Ito wrote:
>>>>>>>>> Hi all,
>>>>>>>>>
>>>>>>>>> Could I have a reviews for this fix of "jcmd JFR.configure",
>>>>>>>>> please ?
>>>>>>>>> This patch passed all tests in test-tier1.
>>>>>>>>>
>>>>>>>>> http://cr.openjdk.java.net/~cito/webrev.00/
>>>>>>>>>
>>>>>>>>> In current implementation even if user specify the same
>>>>>>>>> repository base path in jcmd JFR.configure, hotspot create a
>>>>>>>>> new directory (base path + timestamp) as repository.
>>>>>>>>>
>>>>>>>>> This patch is hotspot don't create new directory and hotspot
>>>>>>>>> keep to use current one.
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Chihiro
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
>
More information about the hotspot-jfr-dev
mailing list