4 Replies Latest reply on Jun 4, 2010 3:47 AM by jaikiran

    JBoss 5.1.0 - TLD libraries dropped - VFS cache ?

    remi.dupuis

      My company is encountring a serious problem with their production environment (Redhat) where JBoss 5.1.0 is running.

      Their application is deployed in a war file formart in the deploy directory of their server. After several hours without any errors a bunch of libraries (40 more or less) are dropped from the server/../tmp/../WEB-INF/lib (vfs cache?) leading to the following error when accessing some random pages.

       

      2010-06-02 09:22:12,105  ERROR [org.apache.catalina.core.ContainerBase]  Servlet.service() for servlet Param threw exception
      java.lang.RuntimeException:  org.apache.jasper.JasperException: Unable to read TLD  "META-INF/sitemesh-decorator.tld" from JAR file  "file:/home/appli/jboss-5.1.0.GA/server/application/tmp/5c4o06f-hn8bku-g9vi2i1m-1-g9vi39vs-at/application.war/WEB-INF/lib/sitemesh-2.4.1.jar":  java.util.zip.ZipException: error in opening zip  file
              at  com.opensymphony.sitemesh.webapp.decorator.BaseWebAppDecorator.render(BaseWebAppDecorator.java:39)
              at  com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:84)
              at  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at  org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at  org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
              at  org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
              at  org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
              at  org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at  org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:67)
              at  org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at  org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at  org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
              at  org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at  org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at  org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
              at  org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at  org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at  org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
              at  org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at  org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at  org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174)
              at  org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at  org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at  org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277)
              at  org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at  org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at  org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
              at  org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at  org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at  org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
              at  org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at  org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at  org.springframework.security.concurrent.ConcurrentSessionFilter.doFilterHttp(ConcurrentSessionFilter.java:99)
              at  org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at  org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at  org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
              at  org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
              at  org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              at  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at  org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at  org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
              at  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at  org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at  org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
              at  org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
              at  org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
              at  org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
              at  org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
              at  org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
              at  org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
              at  org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
              at  org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
              at  org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
              at  org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
              at  org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
              at  org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
              at  java.lang.Thread.run(Thread.java:619)
      

       

      - They have not changed the vfs configuration: they use IterableTimedVFSCache.

      - They use the jboss.vfs.forceCopy=false parameters when starting JBoss.

      - They are getting a similar stacktrace sometimes with an other TLD library: spring-security-taglibs-2.0.4.jar

      - They tried to increase the maximum number of open file descriptors on the OS without any success.

       

      I need to fix this issue, got any idea ?

       

      It is very similar to this bug https://jira.jboss.org/browse/JBAS-7637, is there any workaround for jboss 5.1.0 ?