掲示板

Tomcat Error

thumbnail
13年前 に Lisa Simpson によって更新されました。

Tomcat Error

Liferay Legend 投稿: 2034 参加年月日: 09/03/05 最新の投稿
I'm running a tomcat bundle from you guys and you need to upgrade your tomcat, if you haven't already. There is a bug in tomcat with the AJP connection handling... I'm pasting this in from the JSP Wiki pages -

Depending on your Tomcat version, you may have experienced this problem due to a bug introduced in Tomcat 6 with the keepAliveTimeout feature in Coyote's AJP protocol. The nature of this problem was caused by Tomcat failing to close sockets after the keepAliveTimeout expired. The Tomcat sockets would remain in a CLOSE_WAIT state but the corresponding mod_jk sockets would close as normal. Since, sockets correspond directory to file descriptors, after some amount of usage and time, Tomcat would run out of available file descriptors and hang indefinitely. This bug was fixed in SVN commit r589062 and released in Tomcat 6.0.15 (http://tomcat.apache.org/tomcat-6.0-doc/changelog.html Harmonize with HTTP java.io code. Otherwise the socket is not closed.). -- Eric Young

However, I'm seeing it in your bundle that is supposed to have tomcat-6.0.18.
13年前 に Jon Gilmore によって更新されました。

RE: Tomcat Error

New Member 投稿: 12 参加年月日: 10/08/17 最新の投稿
We're also running tomcat-6.0.18 and we're seeing exactly the same problem as described, i.e. sockets remain in CLOSE_WAIT, but it only happens intermittently. Did you find a fix for this?
thumbnail
11年前 に alex wom によって更新されました。

RE: Tomcat Error

Regular Member 投稿: 218 参加年月日: 09/05/04 最新の投稿
Have you solved the problem? I'm running with Liferay 6.0.6 CE, with tomcat 6.0.29. I'm using is java http connector, where I configured maxThreads="300". I have two liferay balanced server, and both became idle with this message:
INFO: Maximum number of threads (300) created for connector with address null and port 8080

after 6/7 hours and I can observe that
netstat -an | grep CLOSE_WAIT | wc -l 
says to me that there are more than 400 connection in that state. If I improve the maxThreads number the problem move forward in time.
Moreover I have this INFO from log
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:..

My doubt is also that this component is missing, but I have seen APR docs and seems that I need to reinstall tomcat, and should be a problem for me because I used the bundle.
thumbnail
11年前 に jelmer kuperus によって更新されました。

RE: Tomcat Error

Liferay Legend 投稿: 1191 参加年月日: 10/03/10 最新の投稿
Try generating a stacktrace on the machines when that happens. Assuming you are using a unix like os :

in 1 terminal >

tail -n0 -f <tomcat_dir>/log/catalina.out &gt; stackdump.log</tomcat_dir>


then in another terminal

kill -QUIT <tomcat pid></tomcat>


Then examine the generated stackdump.log file to see what the http threads are blocking on. TDA might be useful
thumbnail
11年前 に alex wom によって更新されました。

RE: Tomcat Error

Regular Member 投稿: 218 参加年月日: 09/05/04 最新の投稿
Hi Jelmer,
it's great, I see 400 times something like the stack in the following. There is custom code where I call at com.liferay.portal.kernel.util.DocumentConversionUtil.convert ... to convert a content to pdf. Thanks.
(30 min) later: I suppose it is open office that needs more RAM (with respect to liferay used RAM with the current configuration), because if I restart openoffice it works. Solution: buy more RAM? Work around restart open office hourly emoticon

"http-8080-400" daemon prio=10 tid=0x00007fbf782a4000 nid=0x7f01 waiting for monitor entry [0x00007fbf38f50000]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.convertInternal(OpenOfficeDocumentConverter.java:116)
        - waiting to lock &lt;0x00000007989e6890&gt; (a com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection)
        at com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:104)
        at com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter.convertInternal(OpenOfficeDocumentConverter.java:88)
        at com.artofsolving.jodconverter.openoffice.converter.AbstractOpenOfficeDocumentConverter.convert(AbstractOpenOfficeDocumentConverter.java:82)
        at com.liferay.portlet.documentlibrary.util.DocumentConversionUtil._convert(DocumentConversionUtil.java:143)
        at com.liferay.portlet.documentlibrary.util.DocumentConversionUtil.convert(DocumentConversionUtil.java:58)
        at sun.reflect.GeneratedMethodAccessor650.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.liferay.portal.kernel.util.MethodHandler.invoke(MethodHandler.java:81)
        at com.liferay.portal.kernel.util.MethodHandler.invoke(MethodHandler.java:75)
        at com.liferay.portal.kernel.util.PortalClassInvoker.invoke(PortalClassInvoker.java:40)
        at com.liferay.portal.kernel.util.DocumentConversionUtil.convert(DocumentConversionUtil.java:29)
        at it.etc.portlet.docwebdisplay.controller.DocWebDisplayController.getFile(DocWebDisplayController.java:139)
        at it.etc.portlet.docwebdisplay.controller.DocWebDisplayController.processAction(DocWebDisplayController.java:55)
        at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:70)
        at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:48)
        at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
        at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
        at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
        at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638)
        at com.liferay.portlet.InvokerPortletImpl.invokeAction(InvokerPortletImpl.java:687)
        at com.liferay.portlet.InvokerPortletImpl.processAction(InvokerPortletImpl.java:360)
        at com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:784)
        at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:582)
        at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:232)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
        at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:153)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
...