RFR: JDK-8204564: Need better error output when GenerateLinkOptData fails
Erik Joelsson
erik.joelsson at oracle.com
Wed Jan 30 16:52:09 UTC 2019
Hello,
On 2019-01-30 01:51, Magnus Ihse Bursie wrote:
> On 2019-01-30 02:18, Erik Joelsson wrote:
>> Hello,
>>
>> Some recent build failures reminded me of this issue and increased
>> the need to fix it ASAP to be able to diagnose them.
>> GenerateLinkOptData.gmk runs a java tool to generate data which is
>> later used to optimize the JDK image with jlink. The problem here is
>> that the tool needs to print some of that data on stdout, which the
>> build captures as one build artifact, and will print some "garbage"
>> on stderr if things go well. So currently we just hide all that
>> output from the build log. Because of this, if something goes wrong,
>> we won't see the error.
>>
>> This patch tries to capture the stderr output and only print it
>> (along with stdout) if the java command fails.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8204564
>>
>> Webrev: http://cr.openjdk.java.net/~erikj/8204564/webrev.01/
>
> Good idea, but could you please include some more information in the
> case of failure? The classlist data generation gets a lot of blame
> when the real cause is that the JDK is stillborn.
>
> Something like:
>
> || ( exitcode=$$? && $(ECHO) "ERROR: Classlist file
> generation failed. This is typically a sign that the newly built JDK
> is broken, and not of an error in the Classlist generation." &&
> $(ECHO) "Classlist stderr: " &&
> $(CAT) $(LINK_OPT_DIR)/stderr && $(ECHO) "Classlist trace file:" &&
> $(CAT) $(JLI_TRACE_FILE) \
> && exit $$exitcode )
>
> but with better line breaks :)
>
Sure, but please note that this is not the first time we are running the
newly built JVM in the build. To run the classlist generation, we must
first create a couple of jmods and jlink them together into the interim
image, so the newly built JVM/JDK cannot be completely broken for this
to happen.
/Erik
> /Magnus
>>
>> /Erik
>>
>
More information about the build-dev
mailing list