Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id EA539200C14 for ; Tue, 7 Feb 2017 15:51:27 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id E8C54160B4B; Tue, 7 Feb 2017 14:51:27 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 95718160B3E for ; Tue, 7 Feb 2017 15:51:26 +0100 (CET) Received: (qmail 98927 invoked by uid 500); 7 Feb 2017 14:51:24 -0000 Mailing-List: contact users-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Users List" Delivered-To: mailing list users@tomcat.apache.org Received: (qmail 98916 invoked by uid 99); 7 Feb 2017 14:51:24 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 07 Feb 2017 14:51:24 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 4E94AC0ABA for ; Tue, 7 Feb 2017 14:51:24 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.799 X-Spam-Level: X-Spam-Status: No, score=0.799 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, SPF_PASS=-0.001] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id mVpv-0lfsB_X for ; Tue, 7 Feb 2017 14:51:19 +0000 (UTC) Received: from thor.wissensbank.com (thor.wissensbank.com [81.169.250.120]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id D30325FD8F for ; Tue, 7 Feb 2017 14:51:18 +0000 (UTC) Received: from thor.wissensbank.com (localhost [127.0.0.1]) by thor.wissensbank.com (Postfix) with ESMTP id 9D7A615A60B74 for ; Tue, 7 Feb 2017 15:51:17 +0100 (CET) Received: by thor.wissensbank.com (Postfix, from userid 500) id 8FAD415A60E0F; Tue, 7 Feb 2017 15:51:17 +0100 (CET) Received: from [192.168.245.152] (p549E0770.dip0.t-ipconnect.de [84.158.7.112]) (Authenticated sender: andre.warnier@ice-sa.com) by thor.wissensbank.com (Postfix) with ESMTPA id ABF6915A60B74 for ; Tue, 7 Feb 2017 15:51:15 +0100 (CET) Subject: Re: Operation has timed out To: users@tomcat.apache.org References: <5898A767.80200@ice-sa.com> <5898A992.9020501@ice-sa.com> <3616EBD11557B84EAC23E8E52973859934B27ED4@EX-FRA-01.AirPlus.net> From: =?UTF-8?Q?Andr=c3=a9_Warnier_=28tomcat=29?= Message-ID: <5899DF0D.8030605@ice-sa.com> Date: Tue, 7 Feb 2017 15:51:57 +0100 User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV using ClamSMTP archived-at: Tue, 07 Feb 2017 14:51:28 -0000 Hi. This is for the Tomcat/Tribes experts on the list. I know nothing of Tribes, but the on-line documentation seems to say that the communication happens over TCP and that the protocol used is not encrypted. Fady previously tried a standard "ping" and a "telnet" between the two nodes, and that is the base for him mentioning that "there is no network disconnection" between the nodes. Nevertheless, the calling pinging node seems to say that it times out without getting a response fom the target node. There is evidently a contradiction there. So this could still be some kind of network issue. Considering that the protocol command for this "ping" should be known by someone here, would it not be possible to imagine a little program in some scripting language (or even java, God forbid), which would open a TCP channel with the target node IP/port, send such a "ping" message, wait for a response and report the result ? That would at least confirm/deny that the problem is with the network. The log below does not for example say if the error happens when opening the TCP communication channel, or after sending the ping message on it, (Of course, testing the TCP open could be done with "telnet IP 4000", but I don't know if Fady tried this). Maybe tribes also already contains some löw-level debugging options ? wireshark maybe another option, but it has quite a learning curve. And this is on Windows. By the way Fady, are you sure that your "Windows Firewall with Enhanced Security" is not just dropping TCP packets to/from port 40xx (or from "java.exe") ? There are some "network policies" there which can have wide-ranging side-effects. On 07.02.2017 14:42, Fady Haikal wrote: > Hi, issue still not fixed. Tomcat session replication is not able to > replicate the key from node to node, please find below the error, > taking into consideration that there is no network disconnection > between 2 nodes > > > 07-Feb-2017 16:36:06.186 SEVERE [http-nio-8080-exec-8] > org.apache.catalina.tribes.tipis.LazyReplicatedMap.publishEntryInfo > Unable to replicate backup > key:58291D242C742A8A4B1657BA42C831A4.TomcatNode2 to > backup:org.apache.catalina.tribes.membership.MemberImpl[tcp://{10, > 114, 43, 102}:4000,{10, 114, 43, 102},4000, alive=68841350, > securePort=-1, UDP Port=-1, id={85 5 -62 -66 106 -12 64 12 -102 -14 > -85 -87 15 9 -51 -112 }, payload={}, command={}, domain={}, ]. > Reason:Operation has timed out(3000 ms.).; Faulty members:tcp://{10, > 114, 43, 102}:4000; > org.apache.catalina.tribes.ChannelException: Operation has timed > out(3000 ms.).; Faulty members:tcp://{10, 114, 43, 102}:4000; > at org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessage(ParallelNioSender.java:108) > at org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMessage(PooledParallelSender.java:48) > at org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessage(ReplicationTransmitter.java:54) > at org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(ChannelCoordinator.java:82) > at org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:76) > at org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor.sendMessage(MessageDispatchInterceptor.java:81) > at org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:76) > at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.sendMessage(TcpFailureDetector.java:93) > at org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:76) > at org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:233) > at org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:186) > at org.apache.catalina.tribes.tipis.LazyReplicatedMap.publishEntryInfo(LazyReplicatedMap.java:170) > at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.put(AbstractReplicatedMap.java:1040) > at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.put(AbstractReplicatedMap.java:1024) > at org.apache.catalina.session.ManagerBase.add(ManagerBase.java:647) > at org.apache.catalina.session.StandardSession.setId(StandardSession.java:374) > at org.apache.catalina.ha.session.DeltaSession.setId(DeltaSession.java:279) > at org.apache.catalina.session.ManagerBase.createSession(ManagerBase.java:708) > at org.apache.catalina.connector.Request.doGetSession(Request.java:2936) > at org.apache.catalina.connector.Request.getSession(Request.java:2260) > at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:895) > at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:231) > at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:568) > at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:513) > at org.apache.jasper.runtime.PageContextImpl.initialize(PageContextImpl.java:137) > at org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:109) > at org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:60) > at org.apache.jsp.WEB_002dINF.jsp._401_jsp._jspService(_401_jsp.java:100) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) > at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) > at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) > at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:719) > at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:467) > at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:390) > at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:317) > at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:445) > at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:304) > at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:181) > at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:194) > at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:318) > at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) > at org.apache.catalina.valves.StuckThreadDetectionValve.invoke(StuckThreadDetectionValve.java:208) > at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) > at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521) > at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096) > at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674) > at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) > at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) > at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > at java.lang.Thread.run(Unknown Source) > > On Tue, Feb 7, 2017 at 1:02 PM, Kreuser, Peter wrote: >> Fady, >> >> Sorry for top posting. >> >> If I remember correctly, the Cluster Element goes into the Container and not the Host. >> Plus I see in our (working) case, a DeltaManager and a JvmRouteSessionIDBinderListener >> >> > expireSessionsOnShutdown="false" >> notifyListenersOnReplication="true"/> >> ... >> >> >> Besides this, only ports, limits and values are different. >> >> You may want to filter out the replication for static resources as gifs jpg or css. >> >> >> Best regards >> >> Peter >> >>> below is the server.xml configuration, as mentioened earlier the issue >>> is related to the cluster configuration, and as per my research i can >>> see that some users are facing the same issue but i didnt found the >>> solution of it >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >> SSLEngine="on" /> >>> >>> >> /> >>> >> /> >>> >> /> >>> >>> >>> >>> >>> >> type="org.apache.catalina.UserDatabase" >>> description="User database that can be updated and saved" >>> factory="org.apache.catalina.users.MemoryUserDatabaseFactory" >>> pathname="conf/tomcat-users.xml" /> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >> connectionTimeout="60000" maxThreads="500" >>> minSpareThreads="25" maxSpareThreads="75" enableLookups="false" >>> disableUploadTimeout="true" acceptCount="100" redirectPort="8443" /> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >> resourceName="UserDatabase"/> >>> >>> >>> >> unpackWARs="true" autoDeploy="true" startStopThreads="0"> >>> >>> >>> >>> >> channelSendOptions="4"> >>> >>> >> className="org.apache.catalina.tribes.membership.McastService" >>> address="228.0.0.4" >>> port="45564" >>> frequency="500" >>> dropTime="9000"/> >>> >> className="org.apache.catalina.tribes.transport.nio.NioReceiver" >>> address="auto" >>> port="4000" >>> autoBind="100" >>> selectorTimeout="5000" >>> maxThreads="6"/> >>> >>> >> className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> >>> >> className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> >>> >>> >> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> >>> >> className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> >>> >>> >>> >> filter=""/> >>> >> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> >>> >>> >> tempDir="D:/imaljava/TomcatNode1/tmp/war-temp/" >>> deployDir="D:/imaljava/TomcatNode1/tmp/war-deploy/" >>> watchDir="D:/imaljava/TomcatNode1/tmp/war-listen/" >>> watchEnabled="false"/> >>> >>> >> className="org.apache.catalina.ha.session.ClusterSessionListener"/> >>> >>> >>> >>> >>> >>> >> directory="logs" >>> prefix="localhost_access_log" suffix=".txt" >>> pattern="%h %l %u %t "%r" %s %b" /> >>> >> threshold="900" /> >>> >>> >>> >>> >>> >>> >>> On Mon, Feb 6, 2017 at 6:51 PM, André Warnier (tomcat) wrote: >>>> On 06.02.2017 17:45, Fady Haikal wrote: >>>>> >>>>> Hi, >>>>> What is the host OS ? Windows Server 2012 >>>>> What is the Tomcat version ? Apache Tomcat/8.0.30 >>>>> >>>>> Is this problem new ? was this working before ? how long ? Since >>>>> cluster implementation >>>>> >>>> >>>> I still don't know tribes, but then my non-educated guess at this point >>>> would be that there is something wrong in your configuration. >>>> Can you copy/paste it here ? (remove sensible things like passwords, public >>>> IP addresses etc..)(but not to the point of making it uncheckable). >>>> >>>> Then maybe some tribes-specialist can take over ? >>>> >>>> >>>>> >>>>> Is there actually something listening on that address/port ? Tomcat >>>>> cluster >>>>> >>>>> the Port 4000 is listening and there is no disconnection between 2 >>>>> nodes ping and telnet are OK >>>>> >>>>> On Mon, Feb 6, 2017 at 6:42 PM, André Warnier (tomcat) >>>>> wrote: >>>>>> >>>>>> On 06.02.2017 17:24, Fady Haikal wrote: >>>>>>> >>>>>>> >>>>>>> Plz can i get some help here? >>>>>>> This issue is still occurring and it's filling the log file in the >>>>>>> Production server >>>>>>> >>>>>>> Regards, >>>>>>> Fady >>>>>> >>>>>> >>>>>> >>>>>> Hi. >>>>>> If you want quick answers, you should provide more information. >>>>>> What is the host OS ? >>>>>> What is the Tomcat version ? >>>>>> Is this problem new ? was this working before ? how long ? >>>>>> >>>>>> I do not know tribes at all, but according to the logfile below, it seems >>>>>> that something is trying to "ping" the address 10.114.43.103, port 4000, >>>>>> and >>>>>> never getting a response (or at least not within 3000ms). >>>>>> Is there actually something listening on that address/port ? >>>>>> The "netstat" command (available both on Linux and Windows) can tell you. >>>>>> If there is something listening there, can it respond to whatever is >>>>>> ping-ing it ? >>>>>> (routing, firewall, ..) >>>>>> >>>>>>> >>>>>>> On Mon, Feb 6, 2017 at 8:52 AM, Fady Haikal >>>>>>> wrote: >>>>>>>> >>>>>>>> >>>>>>>> Guys, we are facing the below errors in Tomcat cluster, please advise >>>>>>>> >>>>>>>> >>>>>>>> 06-Feb-2017 01:14:20.718 SEVERE [GroupChannel-Heartbeat-1] >>>>>>>> org.apache.catalina.tribes.tipis.AbstractReplicatedMap.heartbeat >>>>>>>> Unable to send AbstractReplicatedMap.ping message >>>>>>>> org.apache.catalina.tribes.ChannelException: Operation has timed >>>>>>>> out(3000 ms.).; Faulty members:tcp://{10, 114, 43, 103}:4000; >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessage(ParallelNioSender.java:108) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMessage(PooledParallelSender.java:48) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessage(ReplicationTransmitter.java:54) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(ChannelCoordinator.java:82) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:76) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor.sendMessage(MessageDispatchInterceptor.java:81) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:76) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.sendMessage(TcpFailureDetector.java:93) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:76) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:233) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:186) >>>>>>>> at org.apache.catalina.tribes.group.RpcChannel.send(RpcChannel.java:99) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.tipis.AbstractReplicatedMap.ping(AbstractReplicatedMap.java:267) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.tipis.AbstractReplicatedMap.heartbeat(AbstractReplicatedMap.java:885) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.group.GroupChannel.heartbeat(GroupChannel.java:161) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.group.GroupChannel$HeartbeatThread.run(GroupChannel.java:697) >>>>>>>> >>>>>>>> >>>>>>>> 06-Feb-2017 01:20:51.437 SEVERE [NioReceiver] >>>>>>>> org.apache.catalina.tribes.transport.nio.NioReceiver.listen Unable to >>>>>>>> process request in NioReceiver >>>>>>>> java.io.IOException: A non-blocking socket operation could not be >>>>>>>> completed immediately >>>>>>>> at sun.nio.ch.SocketDispatcher.close0(Native Method) >>>>>>>> at sun.nio.ch.SocketDispatcher.close(Unknown Source) >>>>>>>> at sun.nio.ch.SocketChannelImpl.kill(Unknown Source) >>>>>>>> at sun.nio.ch.WindowsSelectorImpl.implDereg(Unknown Source) >>>>>>>> at sun.nio.ch.SelectorImpl.processDeregisterQueue(Unknown Source) >>>>>>>> at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source) >>>>>>>> at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source) >>>>>>>> at sun.nio.ch.SelectorImpl.select(Unknown Source) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.transport.nio.NioReceiver.listen(NioReceiver.java:272) >>>>>>>> at >>>>>>>> >>>>>>>> org.apache.catalina.tribes.transport.nio.NioReceiver.run(NioReceiver.java:425) >>>>>>>> at java.lang.Thread.run(Unknown Source) >>>>>>>> >>>>>>>> Regards, >>>>>>>> Fady >>>>>>> >>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org >>>>>>> For additional commands, e-mail: users-help@tomcat.apache.org >>>>>>> >>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org >>>>>> For additional commands, e-mail: users-help@tomcat.apache.org >>>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org >>>>> For additional commands, e-mail: users-help@tomcat.apache.org >>>>> >>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org >>>> For additional commands, e-mail: users-help@tomcat.apache.org >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org >>> For additional commands, e-mail: users-help@tomcat.apache.org >>> >>> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org > For additional commands, e-mail: users-help@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org For additional commands, e-mail: users-help@tomcat.apache.org