https://issues.apache.org/bugzilla/show_bug.cgi?id=47718
Summary: ManagerBase leaks fd to /dev/urandom when context
stopped
Product: Tomcat 5
Version: 5.5.27
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Catalina
AssignedTo: [email protected]
ReportedBy: [email protected]
--- Comment #0 from George Sexton <[email protected]> 2009-08-20 14:48:26
PDT ---
On operating systems where /dev/urandom exists,
org.apache.catalina.session.ManagerBase will use it as a source of data for
getRandomBytes().
If you stop a context or undeploy a host, the number of file descriptors that
have /dev/urandom open tomcat remains constant.
For example, if you use the manager application to stop or undeploy a context,
the number of file descriptors to /dev/urandom is the same as before the stop.
File descriptor use is determined by using lsof or examining the /proc/<pid>/fd
directory on Linux.
The same issue is seen if you undeploy a virtual host.
If you undeploy/deploy a context, or remove/add a virtual host, the # of file
descriptors to /dev/urandom will increase each time.
This is because ManagerBase does not close the DataInputStream it holds to
/dev/urandom.
The patch shown below resolves this issue. Stopping a context, or undeploying a
virtual host will close the session manager's reference to /dev/urandom.
---
apache-tomcat-5.5.28-src/container/catalina/src/share/org/apache/catalina/session/ManagerBase.java
2009-07-24 13:35:00.000000000 -0600
+++
apache-tomcat-5.5.28-gls/container/catalina/src/share/org/apache/catalina/session/ManagerBase.java
2009-08-20 13:38:03.000000000 -0600
@@ -688,10 +688,17 @@
}
public void destroy() {
if( oname != null )
Registry.getRegistry(null, null).unregisterComponent(oname);
+ if (randomIS!=null) {
+ try {
+ randomIS.close();
+ } catch (IOException ioe) {
+ }
+ randomIS=null;
+ }
initialized=false;
oname = null;
// Don't clear log since it is required in case attributes are changed
// (eg via JMX) whilst the manager is stopped.
}
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]