[jboss-user] [Installation, Configuration & DEPLOYMENT] - Running out of file descriptors when redeploying EAR

nzmalik do-not-reply at jboss.com
Mon Jan 5 10:07:39 EST 2009


I'm trying out JBossAS 4.3.0 GA CP03.  I've discovered that I run out of deployment descriptors when redeploying things in the container.  I've tested this out on a base installation of EAP.  I deployed a single ear in the container.  The ear contains some MDB's.  I then used the following to redeploy the ear every 6 seconds up to 1000 times:

for i in `seq 1 1000`; do touch /var/lib/jbossas/server/production/deploy/MY-EAR.ear; sleep 6; echo "lsof count ($i) = `ps aux | grep "^jboss" | grep Main | sed 's/^[^ ]*\s*\([^ ]*\).*/lsof -p \1 | wc -l/g' | sh`"; done

This redeploys the ear, waits 6 seconds, then prints the line count from lsof for the jboss process along with the redeployment count.  In my most test I run out of file descriptors after 315 redeployments.  I've seen it fail a lot more.  If I add in the full complement of stuff normally deployed for my scenario I see failure after as few as 7 redeployments.

Checking the lsof count (lsof -p 9999 | wc -l) shows the count goes up for a while, then drops down.  This drop occurs roughly every 50 redeploys, but never drops down completely.

Here is my original post: http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4199195

Looking at lsof changes over time, it looks like the container is keeping a handle on the jar files contained within the ear, even after the ear is undeployed completely.

Any idea why this is happening?  I'm currently using JBossAS 4.3.0 GA CP01 and have never seen this problem in that version nor any previous versions.  Note that I was unable to use CP02 due to some bugs that have been fixed in CP03.

Here is the exception I got in my initial testing, as noted on the linked post:

2008-12-19 14:11:36,744 ERROR [org.jboss.deployment.MainDeployer] Could not initialise deployment: file:/var/lib/jbossas/server/production/deploy/esb-ESB-COMPONENT-NAME.esb
  | org.jboss.deployment.DeploymentException: exception in init of file:/var/lib/jbossas/server/production/tmp/deploy/tmp61014esb-ESB-COMPONENT-NAME.esb-contents/lib/commons-pool-1.4.jar; - nested throwable: (java.lang.RuntimeException: java.util.zip.ZipException: error in opening zip file)
  | 	at org.jboss.deployment.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:53)
  | 	at org.jboss.deployment.MainDeployer.init(MainDeployer.java:901)
  | 	at org.jboss.deployment.MainDeployer.init(MainDeployer.java:895)
  | 	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:809)
  | 	at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
  | 	at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:597)
  | 	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  | 	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  | 	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
  | 	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  | 	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
  | 	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  | 	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  | 	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  | 	at org.jboss.system.server.jmx.LazyMBeanServer.invoke(LazyMBeanServer.java:291)
  | 	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
  | 	at $Proxy9.deploy(Unknown Source)
  | 	at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
  | 	at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:610)
  | 	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
  | 	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
  | 	at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
  | Caused by: java.lang.RuntimeException: java.util.zip.ZipException: error in opening zip file
  | 	at org.jboss.util.file.JarArchiveBrowser.<init>(JarArchiveBrowser.java:74)
  | 	at org.jboss.util.file.FileProtocolArchiveBrowserFactory.create(FileProtocolArchiveBrowserFactory.java:48)
  | 	at org.jboss.util.file.ArchiveBrowser.getBrowser(ArchiveBrowser.java:57)
  | 	at org.jboss.ejb3.EJB3Deployer.hasEjbAnnotation(EJB3Deployer.java:213)
  | 	at org.jboss.ejb3.EJB3Deployer.accepts(EJB3Deployer.java:279)
  | 	at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:597)
  | 	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  | 	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  | 	at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
  | 	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  | 	at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
  | 	at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
  | 	at org.jboss.deployment.SubDeployerInterceptor.invokeNext(SubDeployerInterceptor.java:124)
  | 	at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:109)
  | 	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  | 	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  | 	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  | 	at org.jboss.system.server.jmx.LazyMBeanServer.invoke(LazyMBeanServer.java:291)
  | 	at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
  | 	at $Proxy34.accepts(Unknown Source)
  | 	at org.jboss.deployment.MainDeployer.findDeployer(MainDeployer.java:1078)
  | 	at org.jboss.deployment.MainDeployer.init(MainDeployer.java:857)
  | 	... 22 more
  | Caused by: java.util.zip.ZipException: error in opening zip file
  | 	at java.util.zip.ZipFile.open(Native Method)
  | 	at java.util.zip.ZipFile.<init>(ZipFile.java:114)
  | 	at java.util.jar.JarFile.<init>(JarFile.java:133)
  | 	at java.util.jar.JarFile.<init>(JarFile.java:97)
  | 	at org.jboss.util.file.JarArchiveBrowser.<init>(JarArchiveBrowser.java:69)
  | 	... 45 more
  | 2008-12-19 14:11:41,763 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:11:46,767 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:11:51,771 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:11:56,775 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:12:01,780 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:12:06,784 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:12:11,788 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:12:16,792 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:12:21,804 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:12:26,809 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:12:31,814 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:12:36,818 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:12:41,822 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown
  | 2008-12-19 14:12:45,307 ERROR [org.jbpm.job.executor.JobExecutorThread] exception in job executor thread. waiting 5000 milliseconds
  | org.jbpm.JbpmException: couldn't start JTA transaction
  | 	at org.jbpm.persistence.jta.JtaDbPersistenceService.beginJtaTransaction(JtaDbPersistenceService.java:51)
  | 	at org.jbpm.persistence.jta.JtaDbPersistenceService.<init>(JtaDbPersistenceService.java:28)
  | 	at org.jbpm.persistence.jta.JtaDbPersistenceServiceFactory.openService(JtaDbPersistenceServiceFactory.java:17)
  | 	at org.jbpm.svc.Services.getService(Services.java:144)
  | 	at org.jbpm.svc.Services.getPersistenceService(Services.java:183)
  | 	at org.jbpm.JbpmContext.getPersistenceService(JbpmContext.java:628)
  | 	at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:561)
  | 	at org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:112)
  | 	at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:58)
  | Caused by: org.jbpm.JbpmException: couldn't lookup UserTransaction in JNDI with name UserTransaction
  | 	at org.jbpm.persistence.jta.JtaDbPersistenceService.getUserTransaction(JtaDbPersistenceService.java:90)
  | 	at org.jbpm.persistence.jta.JtaDbPersistenceService.beginJtaTransaction(JtaDbPersistenceService.java:49)
  | 	... 8 more
  | Caused by: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: Exception creating connection to: IP_ADDRESS; nested exception is: 
  | 	java.net.SocketException: Too many open files]
  | 	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:780)
  | 	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
  | 	at javax.naming.InitialContext.lookup(InitialContext.java:392)
  | 	at org.jbpm.persistence.jta.JtaDbPersistenceService.getUserTransaction(JtaDbPersistenceService.java:88)
  | 	... 9 more
  | Caused by: java.rmi.ConnectIOException: Exception creating connection to: IP_ADDRESS; nested exception is: 
  | 	java.net.SocketException: Too many open files
  | 	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:614)
  | 	at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
  | 	at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
  | 	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
  | 	at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
  | 	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667)
  | 	... 12 more
  | Caused by: java.net.SocketException: Too many open files
  | 	at java.net.Socket.createImpl(Socket.java:388)
  | 	at java.net.Socket.<init>(Socket.java:362)
  | 	at java.net.Socket.<init>(Socket.java:180)
  | 	at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
  | 	at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
  | 	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
  | 	... 17 more
  | 2008-12-19 14:12:50,314 ERROR [org.jbpm.job.executor.JobExecutorThread] exception in job executor thread. waiting 10000 milliseconds
  | org.jbpm.JbpmException: couldn't start JTA transaction
  | 	at org.jbpm.persistence.jta.JtaDbPersistenceService.beginJtaTransaction(JtaDbPersistenceService.java:51)
  | 	at org.jbpm.persistence.jta.JtaDbPersistenceService.<init>(JtaDbPersistenceService.java:28)
  | 	at org.jbpm.persistence.jta.JtaDbPersistenceServiceFactory.openService(JtaDbPersistenceServiceFactory.java:17)
  | 	at org.jbpm.svc.Services.getService(Services.java:144)
  | 	at org.jbpm.svc.Services.getPersistenceService(Services.java:183)
  | 	at org.jbpm.JbpmContext.getPersistenceService(JbpmContext.java:628)
  | 	at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:561)
  | 	at org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:112)
  | 	at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:58)
  | Caused by: org.jbpm.JbpmException: couldn't lookup UserTransaction in JNDI with name UserTransaction
  | 	at org.jbpm.persistence.jta.JtaDbPersistenceService.getUserTransaction(JtaDbPersistenceService.java:90)
  | 	at org.jbpm.persistence.jta.JtaDbPersistenceService.beginJtaTransaction(JtaDbPersistenceService.java:49)
  | 	... 8 more
  | Caused by: javax.naming.CommunicationException: Could not obtain connection to any of these urls: IP_ADDRESS:1099 and discovery failed with error: javax.naming.CommunicationException: Too many open files [Root exception is java.net.SocketException: Too many open files] [Root exception is javax.naming.CommunicationException: Failed to connect to server IP_ADDRESS:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server IP_ADDRESS:1099 [Root exception is java.net.SocketException: Too many open files]]]
  | 	at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1562)
  | 	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:634)
  | 	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
  | 	at javax.naming.InitialContext.lookup(InitialContext.java:392)
  | 	at org.jbpm.persistence.jta.JtaDbPersistenceService.getUserTransaction(JtaDbPersistenceService.java:88)
  | 	... 9 more
  | Caused by: javax.naming.CommunicationException: Failed to connect to server IP_ADDRESS:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server IP_ADDRESS:1099 [Root exception is java.net.SocketException: Too many open files]]
  | 	at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:274)
  | 	at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1533)
  | 	... 13 more
  | Caused by: javax.naming.ServiceUnavailableException: Failed to connect to server IP_ADDRESS:1099 [Root exception is java.net.SocketException: Too many open files]
  | 	at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:248)
  | 	... 14 more
  | Caused by: java.net.SocketException: Too many open files
  | 	at java.net.Socket.createImpl(Socket.java:388)
  | 	at java.net.Socket.<init>(Socket.java:362)
  | 	at java.net.Socket.<init>(Socket.java:267)
  | 	at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:84)
  | 	at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:77)
  | 	at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:244)
  | 	... 14 more
  | 2008-12-19 14:12:51,842 WARN  [org.jboss.deployment.scanner.URLDeploymentScanner] Scan URL, caught java.io.IOException: Could not list directory '/var/lib/jbossas/server/production/deploy', reason unknown

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4199560#4199560

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4199560



More information about the jboss-user mailing list