RFR(S): 8200286: (testbug) MOptionTest test fails with java.lang.AssertionError: Classfiles too old!
Jonathan Gibbons
jonathan.gibbons at oracle.com
Thu Mar 21 19:12:28 UTC 2019
Looks good, and better than the earlier sleep calls.
An alternative strategy, in case there is ever any issue setting the
time of the file, would be a conditional/iterative sleep until the time
to write a second file is observably different from the time to write an
initial file.
-- Jon
On 03/21/2019 11:53 AM, Thomas Stüfe wrote:
> Looks good now.
>
> ..Thomas
>
> On Thu, Mar 21, 2019 at 5:15 PM Langer, Christoph
> <christoph.langer at sap.com <mailto:christoph.langer at sap.com>> wrote:
>
> Hi Thomas,
>
> thanks for your review. I updated the comment lines:
> http://cr.openjdk.java.net/~clanger/webrevs/8200286.1/
> <http://cr.openjdk.java.net/%7Eclanger/webrevs/8200286.1/>
>
> Best regards
>
> Christoph
>
> *From:*Thomas Stüfe <thomas.stuefe at gmail.com
> <mailto:thomas.stuefe at gmail.com>>
> *Sent:* Donnerstag, 21. März 2019 11:32
> *To:* Langer, Christoph <christoph.langer at sap.com
> <mailto:christoph.langer at sap.com>>
> *Cc:* compiler-dev at openjdk.java.net
> <mailto:compiler-dev at openjdk.java.net>
> *Subject:* Re: RFR(S): 8200286: (testbug) MOptionTest test fails
> with java.lang.AssertionError: Classfiles too old!
>
> Looks reasonable. I am not sure I understand the purpose of the 2
> second waits so I cannot comment what their removal does.
>
> Comment: please loose the commas and the trailing "otherwise"
>
> Thanks! Thomas
>
> On Wed, Mar 20, 2019 at 9:41 AM Langer, Christoph
> <christoph.langer at sap.com <mailto:christoph.langer at sap.com>> wrote:
>
> Hi,
>
> Ping…
>
> Any comments/reviews on this test fix?
>
> Thanks
>
> Christoph
>
> *From:*Langer, Christoph
> *Sent:* Freitag, 15. März 2019 14:25
> *To:* 'compiler-dev at openjdk.java.net
> <mailto:compiler-dev at openjdk.java.net>'
> <compiler-dev at openjdk.java.net
> <mailto:compiler-dev at openjdk.java.net>>
> *Cc:* Zeller, Arno <arno.zeller at sap.com
> <mailto:arno.zeller at sap.com>>
> *Subject:* RFR(S): 8200286: (testbug) MOptionTest test fails
> with java.lang.AssertionError: Classfiles too old!
>
> Hi,
>
> please review a fix proposal for an intermittent error in
> test/langtools/tools/javac/modules/MOptionTest.java.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8200286
>
> Webrev: http://cr.openjdk.java.net/~clanger/webrevs/8200286.0/
> <http://cr.openjdk.java.net/%7Eclanger/webrevs/8200286.0/>
>
> The issue has been reported already a while ago but was closed
> as not reproducible/won’t fix. However, we’ve encountered this
> issue quite often on a linuxppc64 test machine in our ci
> infrastructure. Here are links to failed test jobs:
>
> jdk11u:
>
> https://ci.sapmachine.io/view/Pull%20Request%20Validation%20Builds%20/job/build-11-pr-validation-linux_ppc64/27/
>
> ->jtr:
> https://ci.sapmachine.io/view/Pull%20Request%20Validation%20Builds%20/job/build-11-pr-validation-linux_ppc64/27/JT_20Report_20langtools/JTwork/tools/javac/modules/MOptionTest.jtr
>
> https://ci.sapmachine.io/view/Pull%20Request%20Validation%20Builds%20/job/build-11-pr-validation-linux_ppc64/26/
>
> ->jtr:
> https://ci.sapmachine.io/view/Pull%20Request%20Validation%20Builds%20/job/build-11-pr-validation-linux_ppc64/26/JT_20Report_20langtools/JTwork/tools/javac/modules/MOptionTest.jtr
>
> jdk12:
>
> https://ci.sapmachine.io/view/Pull%20Request%20Validation%20Builds%20/job/build-12-pr-validation-linux_ppc64/5/
>
> ->jtr:
> https://ci.sapmachine.io/view/Pull%20Request%20Validation%20Builds%20/job/build-12-pr-validation-linux_ppc64/5/JT_20Report_20langtools/JTwork/tools/javac/modules/MOptionTest.jtr
>
>
> https://ci.sapmachine.io/view/Pull%20Request%20Validation%20Builds%20/job/build-12-pr-validation-linux_ppc64/3/
>
> ->jtr:
> https://ci.sapmachine.io/view/Pull%20Request%20Validation%20Builds%20/job/build-12-pr-validation-linux_ppc64/3/JT_20Report_20langtools/JTwork/tools/javac/modules/MOptionTest.jtr
>
>
> jdk:
>
> https://ci.sapmachine.io/view/Branch%20Builds/job/build--branch-linux_ppc64/4/
>
> ->jtr:
> https://ci.sapmachine.io/view/Branch%20Builds/job/build--branch-linux_ppc64/4/JT_20Report_20langtools/JTwork/tools/javac/modules/MOptionTest.jtr
>
> The analysis done in the bug by Jiangli seems to be true.
> There is some imprecision in time resolution (maybe rounding
> issue, maybe os inaccuracy) where it can happen that the class
> file created by the java compiler has an earlier timestamp
> than the original source file.
>
> What I did to overcome this is to date back the .java file to
> be compiled by one second before doing the compilation which
> will create a class file with the current time stamp. This
> should make sure that the .java file doesn’t have a newer
> timestamp than the .class file.
>
> I can do that because the test thread had waited for 2 seconds
> before doing the compilation. In fact, I have removed another
> 2 second wait because I don’t think it is needed at that place
> since the test had already waited 2 seconds before testing a
> noop compilation due to unchanged timestamps.
>
> I guess this is certainly not perfect but it should stabilize
> this test and to me it seems pragmatic.
>
> I have already added this fix to our (SapMachine) code base
> and have not observed this error after that and didn’t run
> into regressions either.
>
> Thanks
>
> Christoph
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20190321/0921c930/attachment-0001.html>
More information about the compiler-dev
mailing list