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 95860200D6F for ; Mon, 1 Jan 2018 21:15:14 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 9414F160C25; Mon, 1 Jan 2018 20:15:14 +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 3DDA7160C11 for ; Mon, 1 Jan 2018 21:15:13 +0100 (CET) Received: (qmail 84371 invoked by uid 500); 1 Jan 2018 20:15:11 -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 84361 invoked by uid 99); 1 Jan 2018 20:15:11 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Jan 2018 20:15:11 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id A381D180353 for ; Mon, 1 Jan 2018 20:15:10 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.68 X-Spam-Level: * X-Spam-Status: No, score=1.68 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, KAM_SHORT=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id 9r3yScQJ0Gyt for ; Mon, 1 Jan 2018 20:15:08 +0000 (UTC) Received: from mail-qt0-f181.google.com (mail-qt0-f181.google.com [209.85.216.181]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id E0D415F27E for ; Mon, 1 Jan 2018 20:15:07 +0000 (UTC) Received: by mail-qt0-f181.google.com with SMTP id i40so60860973qti.8 for ; Mon, 01 Jan 2018 12:15:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=BvcLfTVm3WAcrPH8ApF20bvKus+mfVJsPyeV/Lz1BFo=; b=jGFDeRanCS579SLD6ImqKTfBNe1PgRX7VTcMRPVQSQQyy6y8lFsf3Kgfi0xZtm4NMb Q0rvbDL1zv09cAR6Z1EkrsO4eTaPy8D5/cRiktCGydHHHF81e4aEiltaiXa2sSRGpFVb Jxrna4MJ0UnzHW5R6vhBDReQfKSvS4Leh6tdq4uhIjV3/6tyibMPtpQx+pwI6yC9Ux4o LX1Ps+5+33SypuuQLTZwv6zPy5e/EqvfHwnXXZS0JxTc9uz8ve7zsAc4ROOkczBB6iGA gnwggUFAbGPcwAy4fuMj20WnO/Lg7qSWkT2WesP0pUXcxRQiz6n2AYDUl7EozlvdO8z4 lZ4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=BvcLfTVm3WAcrPH8ApF20bvKus+mfVJsPyeV/Lz1BFo=; b=piE6tFxCgw5ZAG6gOySkg/26kWdeEH6jRhuwsVetIOIIxyBXzvXGqOMGMLVD2g9xTW VUUCgxkA4EyjH/wAXfQMn/wJ2wJC+cN1XOPnzhkTkzjWXFFReXMVmAzmLEFOOe6a2ZtX frCR7fbE517HGz+5mOr75d6icYiitjibV+unAaomJshJ4D6NqcT7AGMxd1Z2t63ICRze rSOVLtkprkPNZKufjQBKbnKoo8uzL3JKYL8mYdyESXb229SuG5G16SdUAXrvq59DgLZo oH8Dbg8I3loBYqqgHznXaGPcmJHe6mTR9cTDdse/UJj41IgjJMThXCUf5fsu+e76Zls8 9mig== X-Gm-Message-State: AKGB3mLgGftC2/Z9gEhV1zxuZ65t/fPt0cq1YAm18BLrdhbY5x3SCoI6 wp6ur6Tr04SAn4vaqUzqz/SD/LALRQBYkUu/di5MnOfs X-Google-Smtp-Source: ACJfBot6hRkEyyImvbnB/+l4EU25Mmtk1g79EWjispJCenkr1ZDBQKBoJ5V7cK8Uk63f3wd+uGjB45SAdvf5L63IobA= X-Received: by 10.200.56.137 with SMTP id f9mr54716306qtc.116.1514837707117; Mon, 01 Jan 2018 12:15:07 -0800 (PST) MIME-Version: 1.0 Received: by 10.140.38.166 with HTTP; Mon, 1 Jan 2018 12:14:46 -0800 (PST) In-Reply-To: References: <97AE25EA-5472-441B-935F-E9B4E1578E0E@gmail.com> From: Alan Hamlett Date: Mon, 1 Jan 2018 12:14:46 -0800 Message-ID: Subject: Re: [python] [flask] [CQLAlchemy] NoHostAvailable on create To: user@cassandra.apache.org Content-Type: multipart/alternative; boundary="001a113b8d266cdd410561bca3b3" archived-at: Mon, 01 Jan 2018 20:15:14 -0000 --001a113b8d266cdd410561bca3b3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Still getting the cassandra.cluster.NoHostAvailable error periodically from uWSGI hosts. Setting up the connection with postfork: https://github.com/alanhamlett/flask-cqlalchemy/blob/653ed3298af7dd617a972e= 9f87437f6e53f741b9/flask_cqlalchemy/__init__.py#L56 Lazy connection is False, Retry connection is True. Could this be a bug in cassandra-driver's connection pooling? P.S. Blocking a web app when connection isn't available (default non-lazy connect) is really bad. With a web app you want requests that don't depend on Cassandra to complete, but cassandra-driver blocks all requests when there's no Cassandra connection even if it's not needed for the current web app's request. This design decision gives me very low confidence in the Python cassandra-driver. On Sun, Dec 31, 2017 at 2:34 PM, Alan Hamlett wrote: > Thanks for the reply, I think it's related. However, after using a fork o= f > Flask-CQLAlchemy with postfork I'm still getting the NoHostAvailable erro= r > once per 4k requests. One strange thing is the error rate doesn't increas= e > with the number of requests, since some uWSGI clients with ~20k requests > over the same time period have an error rate of once per 20k requests. Bo= th > uWSGI hosts have the same number of worker processes. > > *Flask-CQLAlchemy Fork with Patch:* > > https://github.com/alanhamlett/flask-cqlalchemy/tree/ > a7e5c7c7cf0c51a19be98791dd4c47b72b97d9be > > *Error Traceback seen after patch applied:* > > Failed to create connection pool for new host 10.1.2.3: > Traceback (most recent call last): > File "cassandra/cluster.py", line 2452, in cassandra.cluster.Session.ad= d_ > or_renew_pool.run_add_or_renew_pool > File "cassandra/pool.py", line 332, in cassandra.pool.HostConnection. > __init__ > File "cassandra/cluster.py", line 1195, in cassandra.cluster.Cluster. > connection_factory > File "cassandra/connection.py", line 341, in cassandra.connection. > Connection.factory > cassandra.OperationTimedOut: errors=3DTimed out creating connection (5 > seconds), last_host=3DNone > Traceback (most recent call last): > File "./venv/lib/python3.4/site-packages/flask/app.py", line 1982, in > wsgi_app > response =3D self.full_dispatch_request() > File "./venv/lib/python3.4/site-packages/flask/app.py", line 1614, in > full_dispatch_request > rv =3D self.handle_user_exception(e) > File "./venv/lib/python3.4/site-packages/flask/app.py", line 1517, in > handle_user_exception > reraise(exc_type, exc_value, tb) > File "./venv/lib/python3.4/site-packages/flask/_compat.py", line 33, in > reraise > raise value > File "./venv/lib/python3.4/site-packages/flask/app.py", line 1612, in > full_dispatch_request > rv =3D self.dispatch_request() > File "./venv/lib/python3.4/site-packages/flask/app.py", line 1598, in > dispatch_request > return self.view_functions[rule.endpoint](**req.view_args) > File "./app/api_utils.py", line 876, in get_durations > use_cassandra=3Duse_cassandra, > File "./venv/lib/python3.4/site-packages/datadog/dogstatsd/context.py", > line 53, in wrapped > return func(*args, **kwargs) > File "./app/api_utils.py", line 1339, in heartbeats_to_durations > for heartbeat in heartbeats: > File "./venv/lib/python3.4/site-packages/cassandra/cqlengine/query.py", > line 512, in __iter__ > self._execute_query() > File "./venv/lib/python3.4/site-packages/cassandra/cqlengine/query.py", > line 469, in _execute_query > self._result_generator =3D (i for i in self._execute(self._select_ > query())) > File "./venv/lib/python3.4/site-packages/cassandra/cqlengine/query.py", > line 401, in _execute > result =3D _execute_statement(self.model, statement, self._consistenc= y, > self._timeout, connection=3Dconnection) > File "./venv/lib/python3.4/site-packages/cassandra/cqlengine/query.py", > line 1505, in _execute_statement > return conn.execute(s, params, timeout=3Dtimeout, connection=3Dconnec= tion) > File "./venv/lib/python3.4/site-packages/cassandra/cqlengine/connection= .py", > line 341, in execute > result =3D conn.session.execute(query, params, timeout=3Dtimeout) > File "cassandra/cluster.py", line 2122, in cassandra.cluster.Session. > execute > File "cassandra/cluster.py", line 3982, in cassandra.cluster. > ResponseFuture.result > cassandra.cluster.NoHostAvailable: ('Unable to complete the operation > against any hosts', {}) > > On Sun, Dec 31, 2017 at 9:04 AM, Jeff Jirsa wrote: > >> uWSGI forks and the driver / cqlalchemy may need to reconnect or >> otherwise fix the state after each fork - you could try to prove this is >> the cause by checking uWSGI logs or ps for indication that a worker proc= ess >> has exited/been recycled. If you think it may be related to this, check = out >> @postfork decorator >> >> >> -- >> Jeff Jirsa >> >> >> On Dec 31, 2017, at 8:52 AM, Alan Hamlett wrote= : >> >> More info: The NoHostAvailable error is happening at random times on eac= h >> client host, so it's probably a client error. If the Cassandra cluster w= as >> really offline then all client hosts would report the error at the same >> time instead of different random times. The NoHostAvailable error occurs >> about once every 30 minutes, so most request call Model.create() without >> the error. >> >> On Sun, Dec 31, 2017 at 1:07 AM, Alan Hamlett >> wrote: >> >>> I'm seeing tracebacks in my Python Flask app when creating rows: >>> >>> Traceback (most recent call last): >>> File "/opt/app/current/app/api.py", line 1174, in consume_heartbeat >>> Heartbeat.create(**form_data) >>> File "/opt/app/current/venv/lib/python3.4/site-packages/cassandra/cql= engine/models.py", line 672, in create >>> return cls.objects.create(**kwargs) >>> File "/opt/app/current/venv/lib/python3.4/site-packages/cassandra/cql= engine/query.py", line 977, in create >>> .using(connection=3Dself._connection) \ >>> File "/opt/app/current/venv/lib/python3.4/site-packages/cassandra/cql= engine/models.py", line 738, in save >>> if_exists=3Dself._if_exists).save() >>> File "/opt/app/current/venv/lib/python3.4/site-packages/cassandra/cql= engine/query.py", line 1476, in save >>> self._execute(insert) >>> File "/opt/app/current/venv/lib/python3.4/site-packages/cassandra/cql= engine/query.py", line 1351, in _execute >>> results =3D _execute_statement(self.model, statement, self._consist= ency, self._timeout, connection=3Dconnection) >>> File "/opt/app/current/venv/lib/python3.4/site-packages/cassandra/cql= engine/query.py", line 1505, in _execute_statement >>> return conn.execute(s, params, timeout=3Dtimeout, connection=3Dconn= ection) >>> File "/opt/app/current/venv/lib/python3.4/site-packages/cassandra/cql= engine/connection.py", line 341, in execute >>> result =3D conn.session.execute(query, params, timeout=3Dtimeout) >>> File "cassandra/cluster.py", line 2122, in cassandra.cluster.Session.= execute >>> File "cassandra/cluster.py", line 3982, in cassandra.cluster.Response= Future.result >>> cassandra.cluster.NoHostAvailable: ('Unable to complete the operation a= gainst any hosts', {}) >>> >>> >>> I'm using the cassandra-driver client library 3.12.0 via >>> Flask-CQLAlchemy 1.2.0 (https://github.com/thegeorgeous/flask-cqlalchem= y) >>> with uWSGI (https://github.com/unbit/uwsgi). >>> >>> cassandra.cqlengine.connection.setup is being passed lazy_connect=3DTru= e >>> and retry_connect=3DTruecassandra.cqlengine because lazy_connect=3DFals= e >>> causes requests to timeout to the Flask app for some reason. >>> >>> Also seeing these errors in my uWSGI log file: >>> >>> [control connection] Error connecting to 10.1.2.3: Traceback (most rece= nt call last): File "cassandra/cluster.py", line 2781, in cassandra.cluster= .ControlConnection._reconnect_internal File "cassandra/cluster.py", line 28= 03, in cassandra.cluster.ControlConnection._try_connect File "cassandra/clu= ster.py", line 1195, in cassandra.cluster.Cluster.connection_factory File "= cassandra/connection.py", line 341, in cassandra.connection.Connection.fact= ory cassandra.OperationTimedOut: errors=3DTimed out creating connection (5 = seconds), last_host=3DNone >>> >>> >>> What's causing these connection and timeout errors? Something related t= o >>> Flask-CQLAlchemy? >>> >> >> >> > --=20 Alan Hamlett ahamlett.com --001a113b8d266cdd410561bca3b3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Still getting the cassandra.cluster.NoHostAvailable error = periodically from uWSGI hosts. Setting up the connection with postfork:https://gi= thub.com/alanhamlett/flask-cqlalchemy/blob/653ed3298af7dd617a972e9f87437f6e= 53f741b9/flask_cqlalchemy/__init__.py#L56

= Lazy connection is False, Retry connection is True. Could this be a bug in = cassandra-driver's connection pooling?

P.S. Bl= ocking a web app when connection isn't available (default non-lazy conn= ect) is really bad. With a web app you want requests that don't depend = on Cassandra to complete, but cassandra-driver blocks all requests when the= re's no Cassandra connection even if it's not needed for the curren= t web app's request. This design decision gives me very low confidence = in the Python cassandra-driver.

<= div class=3D"gmail_quote">On Sun, Dec 31, 2017 at 2:34 PM, Alan Hamlett <alan.hamlett@gmail.com> wrote:
Thanks for the reply, I think it's related. Ho= wever, after using a fork of Flask-CQLAlchemy with postfork I'm still g= etting the NoHostAvailable error once per 4k requests. One strange thing is= the error rate doesn't increase with the number of requests, since som= e uWSGI clients with ~20k requests over the same time period have an error = rate of once per 20k requests. Both uWSGI hosts have the same number of wor= ker processes.

Flask-CQLAlchemy Fork with Patch:<= /div>


Error Trace= back seen after patch applied:

Failed to = create connection pool for new host 10.1.2.3:
Traceback (most recent call= last):
=C2=A0 File "cassandra/cluster.py", line= 2452, in cassandra.cluster.Session.add_or_renew_pool.run_add_or_= renew_pool
=C2=A0 File "cassandra/pool.py", line 332, i= n cassandra.pool.HostConnection.__init__
= =C2=A0 File "cassandra/cluster.py", line 1195, in cassandra.clust= er.Cluster.connection_factory
=C2=A0 File "cassandra/co= nnection.py", line 341, in cassandra.connection.Connection.factor= y
cassandra.OperationTimedOut: errors=3DTimed out creating connec= tion (5 seconds), last_host=3DNone
Traceb= ack (most recent call last):
=C2=A0 File "./venv/lib/= python3.4/site-packages/flask/app.py", line 1982, in wsgi_app
=C2=A0 =C2=A0 response =3D self.full_dispatch_request()
= =C2=A0 File "./venv/lib/python3.4/site-packages/flask/app.py"= ;, line 1614, in full_dispatch_request
=C2=A0 =C2=A0 rv =3D self.= handle_user_exception(e)
=C2=A0 File "./venv/lib/python3.4/s= ite-packages/flask/app.py", line 1517, in handle_user_exception
=C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)
=C2=A0 Fi= le "./venv/lib/python3.4/site-packages/flask/_compat.py", li= ne 33, in reraise
=C2=A0 =C2=A0 raise value
=C2=A0 File= "./venv/lib/python3.4/site-packages/flask/app.py", line 161= 2, in full_dispatch_request
=C2=A0 =C2=A0 rv =3D self.dispatch_re= quest()
=C2=A0 File "./venv/lib/python3.4/site-packages= /flask/app.py", line 1598, in dispatch_request
=C2=A0 =C2=A0= return self.view_functions[rule.endpoint](**req.view_args)
= =C2=A0 File "./app/api_utils.py", line 876, in get_durations
=C2=A0 =C2=A0 use_cassandra=3Duse_cassandra,
=C2=A0 File &q= uot;./venv/lib/python3.4/site-packages/datadog/dogstatsd/context.= py", line 53, in wrapped
=C2=A0 =C2=A0 return func(*args, **= kwargs)
=C2=A0 File "./app/api_utils.py", line 1339, in= heartbeats_to_durations
=C2=A0 =C2=A0 for heartbeat in heartbeat= s:
=C2=A0 File "./venv/lib/python3.4/site-packages/cass= andra/cqlengine/query.py", line 512, in __iter__
=C2=A0= =C2=A0 self._execute_query()
=C2=A0 File "./venv/lib/python= 3.4/site-packages/cassandra/cqlengine/query.py", line 469, i= n _execute_query
=C2=A0 =C2=A0 self._result_generator =3D (i for = i in self._execute(self._select_query()))
=C2=A0 File "= ./venv/lib/python3.4/site-packages/cassandra/cqlengine/query.py&q= uot;, line 401, in _execute
=C2=A0 =C2=A0 result =3D _execute_sta= tement(self.model, statement, self._consistency, self._timeout, connection= =3Dconnection)
=C2=A0 File "./venv/lib/python3.4/site-p= ackages/cassandra/cqlengine/query.py", line 1505, in _execute_sta= tement
=C2=A0 =C2=A0 return conn.execute(s, para= ms, timeout=3Dtimeout, connection=3Dconnection)
=C2=A0 Fil= e "./venv/lib/python3.4/site-packages/cassandra/cqlengine/co= nnection.py", line 341, in execute
=C2=A0 = =C2=A0 result =3D conn.session.execute(query, params, timeout=3Dtimeout)
=C2=A0 File "cassandra/cluster.py", line 2122, in cassand= ra.cluster.Session.execute
=C2=A0 File "cassandra/clust= er.py", line 3982, in cassandra.cluster.ResponseFuture.result
cassandra.cluster.NoHostAvailable: ('Unable to complete the= operation against any hosts', {})

On Sun,= Dec 31, 2017 at 9:04 AM, Jeff Jirsa <jjirsa@gmail.com> wrote= :
uW= SGI forks and the driver / cqlalchemy may need to reconnect or otherwise fi= x the state after each fork - you could try to prove this is the cause by c= hecking uWSGI logs or ps for indication that a worker process has exited/be= en recycled. If you think it may be related to this, check out @postfork de= corator


--=C2=A0
Jeff Jirsa


On Dec 31, 2017, at 8:52 AM, Alan Haml= ett <alan.ha= mlett@gmail.com> wrote:

=
More info: The NoHostAvailable error is happening at rando= m times on each client host, so it's probably a client error. If the Ca= ssandra cluster was really offline then all client hosts would report the e= rror at the same time instead of different random times. The NoHostAvailabl= e error occurs about once every 30 minutes, so most request call Model.crea= te() without the error.

On Sun, Dec 31, 2017 at 1:07 AM, Alan Hamlett &= lt;alan.hamlett= @gmail.com> wrote:
I'm seeing= tracebacks in my Python Flask app when creating rows:

Traceback (mos=
t recent call last):
  File "/opt/app/current/app/api.py", line 1174, in consume_heart=
beat
    Heartbeat.create(**form_data)
  File "/opt/app/current/venv/lib/python3.4/site-packages/cassand=
ra/cqlengine/models.py", line 672, in create
    return cls.objects.create(**kwargs)
  File "/opt/app/current/venv/lib/python3.4/site-packages/cassand=
ra/cqlengine/query.py", line 977, in create
    .using(connection=3Dself._connection) \
  File "/opt/app/current/venv/lib/python3.4/site-packages/cassand=
ra/cqlengine/models.py", line 738, in save
    if_exists=3Dself._if_exists).save()
  File "/opt/app/current/venv/lib/python3.4/site-packages/cassand=
ra/cqlengine/query.py", line 1476, in save
    self._execute(insert)
  File "/opt/app/current/venv/lib/python3.4/site-packages/cassand=
ra/cqlengine/query.py", line 1351, in _execute
    results =3D _execute_statement(self.model, statement, self._consistency=
, self._timeout, connection=3Dconnection)
  File "/opt/app/current/venv/lib/python3.4/site-packages/cassand=
ra/cqlengine/query.py", line 1505, in _execute_statement
    return conn.execute(s, params, timeout=3Dtimeout, connection=3Dconnecti=
on)
  File "/opt/app/current/venv/lib/python3.4/site-packages/cassand=
ra/cqlengine/connection.py", line 341, in execute
    result =3D conn.session.execute(query, params, timeout=3Dtimeout)
  File "cassandra/cluster.py", line 2122, in cassandra.cluster.Se=
ssion.execute
  File "cassandra/cluster.py", line 3982, in cassandra.cluster.Re=
sponseFuture.result
cassandra.cluster.NoHostAvailable: ('Unable to complete the operat=
ion against any hosts', {})

I'm usi= ng the cassandra-driver client library 3.12.0 via Flask-CQLAlchemy 1.2.0 (<= a href=3D"https://github.com/thegeorgeous/flask-cqlalchemy" target=3D"_blan= k">https://github.com/thegeorgeous/flask-cqlalchemy) with uWSGI (<= a href=3D"https://github.com/unbit/uwsgi" target=3D"_blank">https://github.= com/unbit/uwsgi).

cassandra.cqlengine.con= nection.setup is being passed lazy_connect=3DTrue and retry_connect=3D= Truecassandra.cqlengine because lazy_connect=3DFalse causes requests t= o timeout to the Flask app for some reason.

Also s= eeing these errors in my uWSGI log file:

[control connection] Error connecting to=C2=A01=
0.1.2.3: Tr=
aceback (most recent call last): File "cassandra/cluster.py", lin=
e 2781, in cassandra.cluster.ControlConnection._reconnect_internal File "cassan=
dra/cluster.py", line 2803, in cassandra.cluster.ControlConnection._try_c=
onnect File "cassandra/cluster.py", line 1195, in cassandra.clust=
er.Cluster.connection_factory File "cassandra/connection.py", line 3=
41, in cassandra.connection.Connection.factory cassandra.OperationTimedOut: er=
rors=3DTimed out creating connection (5 seconds), last_host=3DNone

What's causing these connection and t= imeout errors? Something related to Flask-CQLAlchemy?






--
Alan Hamlett
--001a113b8d266cdd410561bca3b3--