Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id CA1C811C03 for ; Fri, 11 Apr 2014 14:18:43 +0000 (UTC) Received: (qmail 11233 invoked by uid 500); 11 Apr 2014 14:18:00 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 11063 invoked by uid 500); 11 Apr 2014 14:17:59 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 10908 invoked by uid 500); 11 Apr 2014 14:17:56 -0000 Delivered-To: apmail-incubator-cassandra-user@incubator.apache.org Received: (qmail 10602 invoked by uid 99); 11 Apr 2014 14:17:44 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 11 Apr 2014 14:17:44 +0000 X-ASF-Spam-Status: No, hits=2.8 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS,URI_HEX X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of clohfink@blackbirdit.com designates 74.125.82.47 as permitted sender) Received: from [74.125.82.47] (HELO mail-wg0-f47.google.com) (74.125.82.47) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 11 Apr 2014 14:17:40 +0000 Received: by mail-wg0-f47.google.com with SMTP id x12so5513404wgg.30 for ; Fri, 11 Apr 2014 07:17:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=3nuw8le0AvDbvft7r28h2BQKVhFieUGHuWrcGPYa3LQ=; b=kR8XiTUVmIYGDu94+tM/bvvAISwFQWlawVT3RO1FNggLY2NVjDcO/EaijLOiaaEFlE fpr7WJeVamJy7NyWt26gu2oWs4oBCZfZy5rlZ8JfBW7UeB39rtx7uHppiBDd8fC6qZJ0 9uZVHV/3zZ5k4pphVq7uuTWQIZyr0tYA5+oKyOJ05If9XCF88rMxa2jE5GHszTh0E3Ni uSxPI0sok4YGkP2dwBEIMBqywwxzgGmx9/Qx+YhPQrlx4ITCtvokDcNgHA7EwzugnYEq p60jfIHAYH6Ab1V83gjsSxGgtydIfsJUy76Do4eFjSvVIoLB+732Mb/m7DLt31BCvwdW RMOA== X-Gm-Message-State: ALoCoQnt29F+0TcRtVQ/fW8ffnJVJiFRh1Foaajax+zG49SLN5VcZSSdgxYbZ8fAdSpvYtJ41OQV MIME-Version: 1.0 X-Received: by 10.180.37.110 with SMTP id x14mr3785769wij.52.1397225838794; Fri, 11 Apr 2014 07:17:18 -0700 (PDT) Received: by 10.227.231.205 with HTTP; Fri, 11 Apr 2014 07:17:18 -0700 (PDT) In-Reply-To: <1397203447030-7593937.post@n2.nabble.com> References: <882BA080-1B92-4856-8324-2904382FCBFF@vast.com> <306BB8DC-4061-4C23-AFB9-2ED13846AE6D@vast.com> <53458290.70809@pbandjelly.org> <34118C18-3E83-45B9-9AEC-8DFF7BF8C8AB@vast.com> <534592C5.3000103@pbandjelly.org> <1397203447030-7593937.post@n2.nabble.com> Date: Fri, 11 Apr 2014 09:17:18 -0500 Message-ID: Subject: Re: binary protocol server side sockets From: Chris Lohfink To: user@cassandra.apache.org Cc: cassandra-user@incubator.apache.org Content-Type: multipart/related; boundary=e89a8f6475a9cbffc804f6c4fdc8 X-Virus-Checked: Checked by ClamAV on apache.org --e89a8f6475a9cbffc804f6c4fdc8 Content-Type: multipart/alternative; boundary=e89a8f6475a9cbffc604f6c4fdc7 --e89a8f6475a9cbffc604f6c4fdc7 Content-Type: text/plain; charset=ISO-8859-1 TCP keep alives (by the setTimeout) are notoriously useless... The default 2 hours is generally far longer then any timeout in NAT translation tables (generally ~5 min) and even if you decrease the keep alive to a sane value a log of networks actually throw away TCP keep alive packets. You see that a lot more in cell networks though. Its almost always a good idea to have a software keep alive although it seems to be not implemented in this protocol. You can make a super simple CF with 1 value and query it every minute a connection is idle or something. i.e. "select * from DummyCF where id = 1" -- *Chris Lohfink* Engineer 415.663.6738 | Skype: clohfink.blackbirdit *Blackbird **[image: favicon]* 775.345.3485 | www.blackbirdIT.com *"Formerly PalominoDB/DriveDev"* On Fri, Apr 11, 2014 at 3:04 AM, Phil Luckhurst < phil.luckhurst@powerassure.com> wrote: > We are also seeing this in our development environment. We have a 3 node > Cassandra 2.0.5 cluster running on Ubuntu 12.04 and are connecting from a > Tomcat based application running on Windows using the 2.0.0 Cassandra Java > Driver. We have setKeepAlive(true) when building the cluster in the > application and this does keep one connection open on the client side to > each of the 3 Cassandra nodes, but we still see the build up of 'old' > ESTABLISHED connections on each of the Cassandra servers. > > We are also getting that same "Unexpected exception during request" > exception appearing in the logs > > ERROR [Native-Transport-Requests:358378] 2014-04-09 12:31:46,824 > ErrorMessage.java (line 222) Unexpected exception during request > java.io.IOException: Connection reset by peer > at sun.nio.ch.FileDispatcherImpl.read0(Native Method) > at sun.nio.ch.SocketDispatcher.read(Unknown Source) > at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source) > at sun.nio.ch.IOUtil.read(Unknown Source) > at sun.nio.ch.SocketChannelImpl.read(Unknown Source) > at > org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:64) > at > > org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:109) > at > > org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) > at > > org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:90) > at > org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown > Source) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown > Source) > at java.lang.Thread.run(Unknown Source) > > Initially we thought this was down to a firewall that is between our > development machines and the Cassandra nodes but that has now been > configured not to 'kill' any connections on port 9042. We also have the > Windows firewall on the client side turned off. > > We still think this is down to our environment as the same application > running in Tomcat hosted on a Ubuntu 12.04 server does not appear to be > doing this but up to now we can't track down the cause. > > > > > -- > View this message in context: > http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/binary-protocol-server-side-sockets-tp7593879p7593937.html > Sent from the cassandra-user@incubator.apache.org mailing list archive at > Nabble.com. > -- *Chris Lohfink* Engineer 415.663.6738 | Skype: clohfink.blackbirdit *Blackbird **[image: favicon]* 775.345.3485 | www.blackbirdIT.com *"Formerly PalominoDB/DriveDev"* --e89a8f6475a9cbffc604f6c4fdc7 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
TCP keep alives (by the setTimeout) are notoriously useles= s... =A0The default 2 hours is generally far longer then any timeout in NAT= translation tables (generally ~5 min) and even if you decrease the keep al= ive to a sane value a log of networks actually throw away TCP keep alive pa= ckets. =A0You see that a lot more in cell networks though. =A0Its almost al= ways a good idea to have a software keep alive although it seems to be not = implemented in this protocol. =A0You can make a super simple CF with 1 valu= e and query it every minute a connection is idle or something. =A0i.e. &quo= t;select * from DummyCF where id =3D 1"

--=A0
Chris Lohfink
Engineer
415.663.6738=A0=A0|=A0 Sk= ype: clohfink.blackbirdit
Black= bird=A03D"favicon=

775.345.3485=A0 |=A0=A0www.blackbirdIT.com

"Formerly PalominoDB/= DriveDev"



On Fri, Apr 11, 2014 at 3:04 AM, Phil Luckhurst <= phil.lu= ckhurst@powerassure.com> wrote:
We are also seeing this in our development environment. We= have a 3 node
Cassandra 2.0.5 cluster running on Ubuntu 12.04 and are connecting from a Tomcat based application running on Windows using the 2.0.0 Cassandra Java<= br> Driver. We have setKeepAlive(true) when building the cluster in the
application and this does keep one connection open on the client side to each of the 3 Cassandra nodes, but we still see the build up of 'old= 9;
ESTABLISHED connections on each of the Cassandra servers.

We are also getting that same "Unexpected exception during request&quo= t;
exception appearing in the logs

ERROR [Native-Transport-Requests:358378] 2014-04-09 12:31:46,824
ErrorMessage.java (line 222) Unexpected exception during re= quest
java.io.IOException: Connection reset by peer
=A0 =A0 =A0 =A0 at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
=A0 =A0 =A0 =A0 at sun.nio.ch.SocketDispatcher.read(Unknown Source) =A0 =A0 =A0 =A0 at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source) =A0 =A0 =A0 =A0 at sun.nio.ch.IOUtil.read(Unknown Source)
=A0 =A0 =A0 =A0 at sun.nio.ch.SocketChannelImpl.read(Unknown Source)
=A0 =A0 =A0 =A0 at
org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:64)
=A0 =A0 =A0 =A0 at
org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWor= ker.java:109)
=A0 =A0 =A0 =A0 at
org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelec= tor.java:312)
=A0 =A0 =A0 =A0 at
org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.= java:90)
=A0 =A0 =A0 =A0 at
org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
=A0 =A0 =A0 =A0 at java.util.concurrent.ThreadPoolExecutor.runWorker(= Unknown Source)
=A0 =A0 =A0 =A0 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unkno= wn
Source)
=A0 =A0 =A0 =A0 at java.lang.Thread.run(Unknown Source)

Initially we thought this was down to a firewall that is between our
development machines and the Cassandra nodes but that has now been
configured not to 'kill' any connections on port 9042. We also have= the
Windows firewall on the client side turned off.

We still think this is down to our environment as the same application
running in Tomcat hosted on a Ubuntu 12.04 server does not appear to be
doing this but up to now we can't track down the cause.




--
View this message in context: http://cassandra-user-incubator-apache-or= g.3065146.n2.nabble.com/binary-protocol-server-side-sockets-tp7593879p75939= 37.html
Sent from the cassan= dra-user@incubator.apache.org mailing list archive at Nabble.com.



--
=
Chris Lohfink
=
Engineer
415.663.6738=A0=A0|=A0 Skype: clohfink.blackbirdit

B= lackbird=A03D"fav=

775.345= .3485=A0 |=A0=A0www.blackbirdIT.com

"Formerly PalominoDB/= DriveDev"

--e89a8f6475a9cbffc604f6c4fdc7-- --e89a8f6475a9cbffc804f6c4fdc8 Content-Type: image/png; name="image001.png" Content-Disposition: inline; filename="image001.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: 3106d947c7bd0b8_0.1 iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1 MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5j ZUlEPSJ4bXAuaWlkOkY0QUIyM0UxNkE3RjExRTNCNTNEQzlDMDRENjYwQ0I3IiB4bXBNTTpEb2N1 bWVudElEPSJ4bXAuZGlkOkY0QUIyM0UyNkE3RjExRTNCNTNEQzlDMDRENjYwQ0I3Ij4gPHhtcE1N OkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTFDRDcyNEE2QTdBMTFFM0I1 M0RDOUMwNEQ2NjBDQjciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjRBQjIzRTA2QTdGMTFF M0I1M0RDOUMwNEQ2NjBDQjciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94Onht cG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5RkC/4AAAM90lEQVR42tSba2xcRxXH7+7a+/La67ed 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 AABJRU5ErkJggg== --e89a8f6475a9cbffc804f6c4fdc8--