RFR: JDK-8204564: Need better error output when GenerateLinkOptData fails

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Wed Jan 30 09:51:54 UTC 2019


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 :)

/Magnus
>
> /Erik
>




More information about the build-dev mailing list