-
Bug
-
Resolution: Fixed
-
P4
-
5.0, 5.0u4
-
b12
-
generic, sparc
-
generic, solaris_10
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2148547 | 6u2 | Robert Mckenna | P2 | Resolved | Fixed | b03 |
JDK-2148546 | 5.0u14 | Robert Mckenna | P2 | Resolved | Fixed | b01 |
JDK-2148545 | 1.4.2_15 | Robert Mckenna | P2 | Resolved | Fixed | b02 |
The DNS provider context does not cleanup the network resources
upon a close.
This problem was posted on the JNDI forum at java.sun.com
import java.net.*;
import javax.naming.*;
import javax.naming.directory.*;
import java.util.*;
public class SocketLeak {
public static void main(String argv[]) throws Exception {
Map map = new HashMap();
Hashtable env= new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.dns.DnsContextFactory");
env.put(Context.PROVIDER_URL,"dns://xxx.xxx.xxx.xxx");
int count = 0;
while(true) {
DirContext ctx = new InitialDirContext(env);
ctx.close();
ctx = null;
count++;
System.out.println(count);
}
}
}
The above program loops for around 1020 times on solaris 8, after which it runs
out of file descriptors, and fails with an exception below.
Exception in thread "main" javax.naming.ConfigurationException. Root exception is java.net.SocketException: Too many open files
at java.net.PlainDatagramSocketImpl.datagramSocketCreate(Native Method)
at java.net.PlainDatagramSocketImpl.create(PlainDatagramSocketImpl.java:53)
at java.net.DatagramSocket.createImpl(DatagramSocket.java:278)
at java.net.DatagramSocket.<init>(DatagramSocket.java:127)
at com.sun.jndi.dns.DnsClient.<init>(DnsClient.java:81)
at com.sun.jndi.dns.Resolver.<init>(Resolver.java:33)
at com.sun.jndi.dns.DnsContext.<init>(DnsContext.java:78)
at com.sun.jndi.dns.DnsContextFactory.UrlToContext(DnsContextFactory.java:73)
at com.sun.jndi.dns.DnsContextFactory.getInitialContext(DnsContextFactory.java:41)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.init(InitialContext.java:219)
at javax.naming.InitialContext.<init>(InitialContext.java:195)
at javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:80)
at SocketLeak.main(SocketLeak.java:17)
upon a close.
This problem was posted on the JNDI forum at java.sun.com
import java.net.*;
import javax.naming.*;
import javax.naming.directory.*;
import java.util.*;
public class SocketLeak {
public static void main(String argv[]) throws Exception {
Map map = new HashMap();
Hashtable env= new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.dns.DnsContextFactory");
env.put(Context.PROVIDER_URL,"dns://xxx.xxx.xxx.xxx");
int count = 0;
while(true) {
DirContext ctx = new InitialDirContext(env);
ctx.close();
ctx = null;
count++;
System.out.println(count);
}
}
}
The above program loops for around 1020 times on solaris 8, after which it runs
out of file descriptors, and fails with an exception below.
Exception in thread "main" javax.naming.ConfigurationException. Root exception is java.net.SocketException: Too many open files
at java.net.PlainDatagramSocketImpl.datagramSocketCreate(Native Method)
at java.net.PlainDatagramSocketImpl.create(PlainDatagramSocketImpl.java:53)
at java.net.DatagramSocket.createImpl(DatagramSocket.java:278)
at java.net.DatagramSocket.<init>(DatagramSocket.java:127)
at com.sun.jndi.dns.DnsClient.<init>(DnsClient.java:81)
at com.sun.jndi.dns.Resolver.<init>(Resolver.java:33)
at com.sun.jndi.dns.DnsContext.<init>(DnsContext.java:78)
at com.sun.jndi.dns.DnsContextFactory.UrlToContext(DnsContextFactory.java:73)
at com.sun.jndi.dns.DnsContextFactory.getInitialContext(DnsContextFactory.java:41)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.init(InitialContext.java:219)
at javax.naming.InitialContext.<init>(InitialContext.java:195)
at javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:80)
at SocketLeak.main(SocketLeak.java:17)
- backported by
-
JDK-2148545 DNS provider does not cleanup resources properly
- Resolved
-
JDK-2148546 DNS provider does not cleanup resources properly
- Resolved
-
JDK-2148547 DNS provider does not cleanup resources properly
- Resolved
- duplicates
-
JDK-6519688 DNS provider does not cleanup resources properly
- Closed
- relates to
-
JDK-6585239 Regression: 2 DNS tests fail with JDK 5.0u13 b01 and pass with 5.0u12fcs
- Closed
-
JDK-6806783 Regression : NullPointerException comes to occur in 1.4.2_15 - 1.4.2_20
- Closed
(1 relates to)