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

Erik Joelsson erik.joelsson at oracle.com
Wed Jan 30 18:45:28 UTC 2019


Here is a new webrev:

http://cr.openjdk.java.net/~erikj/8204564/webrev.02/

/Erik

On 2019-01-30 08:52, Erik Joelsson wrote:
> 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