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

2019-01-31 Thread Magnus Ihse Bursie

On 2019-01-30 19:45, Erik Joelsson wrote:

Here is a new webrev:

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

Looks good to me!

/Magnus


/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







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

2019-01-30 Thread Erik Joelsson

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





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

2019-01-30 Thread Erik Joelsson

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





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

2019-01-30 Thread Magnus Ihse Bursie

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





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

2019-01-29 Thread Tim Bell

Erik:

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/


Looks good.

Tim




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

2019-01-29 Thread Erik Joelsson

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/

/Erik