Re: RFR: java/util/logging/Logger/setResourceBundle/TestSetResourceBundle.java failing again

2013-12-19 Thread Daniel Fuchs

On 12/18/13 9:35 PM, Mandy Chung wrote:


On 12/17/2013 3:57 AM, Daniel Fuchs wrote:

Hi,

Please find below a fix for what I believe is a test bug.
I plan to push this in JDK 9 dev.

https://bugs.openjdk.java.net/browse/JDK-8030187

This seems to be a very intermittent failure.
It looks as if a logger held in a local variable can be
arbitrarily garbage collected if that variable is no longer
used.
To prevent arbitrary garbage collection of such loggers, the fix
makes sure to use the variable again at the end of the test.



Looks like running the test in -Xcomp and also with jtreg creates
pressure to the young gen and more object allocation failure and so
unreachable objects get collected in the middle of a small method body
(like in this case).

You added code to reference the local variables referencing the
loggers.  Would it be simpler to have this test  just to hold a strong
reference to the logger?


Hmmm. I don't think it would be simpler. I could have added an
array list of loggers and cleared that at the end of the test.
It would just have been another way of making sure that the
loggers weren't gc'ed.

-- daniel




Mandy




In the event that my analysis were wrong, I have also added
some debug traces that should help if this test fails again in
similar situations.

http://cr.openjdk.java.net/~dfuchs/webrev_8030187/webrev.00/

best regards,

-- daniel






Re: RFR: java/util/logging/Logger/setResourceBundle/TestSetResourceBundle.java failing again

2013-12-19 Thread Mandy Chung


On 12/19/2013 3:04 AM, Daniel Fuchs wrote:

On 12/18/13 9:35 PM, Mandy Chung wrote:


On 12/17/2013 3:57 AM, Daniel Fuchs wrote:

Hi,

Please find below a fix for what I believe is a test bug.
I plan to push this in JDK 9 dev.

https://bugs.openjdk.java.net/browse/JDK-8030187

This seems to be a very intermittent failure.
It looks as if a logger held in a local variable can be
arbitrarily garbage collected if that variable is no longer
used.
To prevent arbitrary garbage collection of such loggers, the fix
makes sure to use the variable again at the end of the test.



Looks like running the test in -Xcomp and also with jtreg creates
pressure to the young gen and more object allocation failure and so
unreachable objects get collected in the middle of a small method body
(like in this case).

You added code to reference the local variables referencing the
loggers.  Would it be simpler to have this test  just to hold a strong
reference to the logger?


Hmmm. I don't think it would be simpler. I could have added an
array list of loggers and cleared that at the end of the test.
It would just have been another way of making sure that the
loggers weren't gc'ed.


Are you concerned that a static/instance field holding the loggers gets 
GC'ed if not referenced before the test method returns?   They should be 
only collected when the class/instance becomes unreachable and it 
shouldn't be an issue (as do in other tests).


I'm fine with what you have.

Mandy


RFR: java/util/logging/Logger/setResourceBundle/TestSetResourceBundle.java failing again

2013-12-17 Thread Daniel Fuchs

Hi,

Please find below a fix for what I believe is a test bug.
I plan to push this in JDK 9 dev.

https://bugs.openjdk.java.net/browse/JDK-8030187

This seems to be a very intermittent failure.
It looks as if a logger held in a local variable can be
arbitrarily garbage collected if that variable is no longer
used.
To prevent arbitrary garbage collection of such loggers, the fix
makes sure to use the variable again at the end of the test.

In the event that my analysis were wrong, I have also added
some debug traces that should help if this test fails again in
similar situations.

http://cr.openjdk.java.net/~dfuchs/webrev_8030187/webrev.00/

best regards,

-- daniel