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