Re: RFR: 8237834: com/sun/jndi/ldap/LdapDnsProviderTest.java failing with LDAP response read timeout

2020-05-07 Thread Daniel Fuchs

Hi Aleksei,

If that solves the issue, then LGTM!

best regards,

-- daniel

On 07/05/2020 14:57, Aleks Efimov wrote:

Hi Daniel,

As a follow-up to our off-list discussion, I've updated the 
generateUnseenPort method:

a) Added comment to be more specific about the number of times it is called
b) The port range has been extended to [, PortConfig.getUpper())

Webrev with new version:
http://cr.openjdk.java.net/~aefimov/8237834/01

With Best Regards,
Aleksei

On 07/05/2020 11:10, Daniel Fuchs wrote:

Hi Aleksei,

I agree with the general idea. However, the method:

 215 private static int generateUnseenPort() {
 216 int port;
 217 do {
 218 port =  + RND.nextInt(1000);
 219 } while (SEEN_PORTS.contains(port));
 220 SEEN_PORTS.add(port);
 221 return port;
 222 }

might never return - if none of the port in the range
[, 2111] are free. Arguably, the test will have
failed in timeout before that. But maybe an assertion
error should be thrown if that happens.

best regards,

-- daniel


On 07/05/2020 00:52, Aleks Efimov wrote:

Hi,

LdapDnsProviderTest test expects to have no services running on  
port on test machine. That could cause it to fail intermittently due 
to unexpected exception message thrown by LDAP client, i.e. timeout 
or disconnect instead of expected connection refusal.


The proposed fix tries to make test more stable ('intermittent' key 
was still added) by running test cases with non-default port multiple 
times by trying to use different random port numbers ('randomness' 
key was added) for each run.


Webrev: http://cr.openjdk.java.net/~aefimov/8237834/00/index.html

JBS: https://bugs.openjdk.java.net/browse/JDK-8237834

Test was not observed to fail for over 300 iterations.

With Best Regards,
Aleksei









Re: RFR: 8237834: com/sun/jndi/ldap/LdapDnsProviderTest.java failing with LDAP response read timeout

2020-05-07 Thread Aleks Efimov

Hi Daniel,

As a follow-up to our off-list discussion, I've updated the 
generateUnseenPort method:

a) Added comment to be more specific about the number of times it is called
b) The port range has been extended to [, PortConfig.getUpper())

Webrev with new version:
http://cr.openjdk.java.net/~aefimov/8237834/01

With Best Regards,
Aleksei

On 07/05/2020 11:10, Daniel Fuchs wrote:

Hi Aleksei,

I agree with the general idea. However, the method:

 215 private static int generateUnseenPort() {
 216 int port;
 217 do {
 218 port =  + RND.nextInt(1000);
 219 } while (SEEN_PORTS.contains(port));
 220 SEEN_PORTS.add(port);
 221 return port;
 222 }

might never return - if none of the port in the range
[, 2111] are free. Arguably, the test will have
failed in timeout before that. But maybe an assertion
error should be thrown if that happens.

best regards,

-- daniel


On 07/05/2020 00:52, Aleks Efimov wrote:

Hi,

LdapDnsProviderTest test expects to have no services running on  
port on test machine. That could cause it to fail intermittently due 
to unexpected exception message thrown by LDAP client, i.e. timeout 
or disconnect instead of expected connection refusal.


The proposed fix tries to make test more stable ('intermittent' key 
was still added) by running test cases with non-default port multiple 
times by trying to use different random port numbers ('randomness' 
key was added) for each run.


Webrev: http://cr.openjdk.java.net/~aefimov/8237834/00/index.html

JBS: https://bugs.openjdk.java.net/browse/JDK-8237834

Test was not observed to fail for over 300 iterations.

With Best Regards,
Aleksei







Re: RFR: 8237834: com/sun/jndi/ldap/LdapDnsProviderTest.java failing with LDAP response read timeout

2020-05-07 Thread Daniel Fuchs

Hi Aleksei,

I agree with the general idea. However, the method:

 215 private static int generateUnseenPort() {
 216 int port;
 217 do {
 218 port =  + RND.nextInt(1000);
 219 } while (SEEN_PORTS.contains(port));
 220 SEEN_PORTS.add(port);
 221 return port;
 222 }

might never return - if none of the port in the range
[, 2111] are free. Arguably, the test will have
failed in timeout before that. But maybe an assertion
error should be thrown if that happens.

best regards,

-- daniel


On 07/05/2020 00:52, Aleks Efimov wrote:

Hi,

LdapDnsProviderTest test expects to have no services running on  
port on test machine. That could cause it to fail intermittently due to 
unexpected exception message thrown by LDAP client, i.e. timeout or 
disconnect instead of expected connection refusal.


The proposed fix tries to make test more stable ('intermittent' key was 
still added) by running test cases with non-default port multiple times 
by trying to use different random port numbers ('randomness' key was 
added) for each run.


Webrev: http://cr.openjdk.java.net/~aefimov/8237834/00/index.html

JBS: https://bugs.openjdk.java.net/browse/JDK-8237834

Test was not observed to fail for over 300 iterations.

With Best Regards,
Aleksei