I've checked netstat and there are only 15 mysql connections (status is 
still reporting the same): 
Pool size: 20 Connections in pool: 19 Current Overflow: -36 Current
Checked out connections: -35

On our other servers, the number of connections (from netstat) matches up 
with the pool status as expected.
I will try and recreate the problem with a test.

Many thanks!



On Monday, June 27, 2016 at 4:36:21 PM UTC+1, Mike Bayer wrote:
>
> Well it is possible QueuePool doesn't do the right thing under eventlet, 
> though we use it a lot w/ eventlet in Openstack and I've tested it 
> myself quite a bit.  Have not peeked at this number, however. 
>
> You'd need to produce for me a self contained test suite that 
> illustrates this behavior occurring, that would be very helpful in order 
> to track this down. 
>
> Do you see too many actual database connections in play when this 
> condition occurs ?  That is, using netstat you'd see more than 120 
> connections. 
>
>
>
> On 06/27/2016 11:30 AM, 'Dave Puffin' via sqlalchemy wrote: 
> > Thanks for the reply :) 
> > 
> > I think you're right in that it must be threading related somehow, but 
> > it looks like all the monkeypatching has been applied correctly. If I 
> > examine the locking object used in the pool I get: 
> > 
> >>>> type(engine.pool._overflow_lock) 
> > 
> > <class 'eventlet.semaphore.Semaphore'> 
> > 
> > 
> > On Mon, Jun 27, 2016 at 4:21 PM, Mike Bayer <mik...@zzzcomputing.com 
> <javascript:> 
> > <mailto:mik...@zzzcomputing.com <javascript:>>> wrote: 
> > 
> > 
> > 
> >     On 06/27/2016 10:48 AM, davepuffin via sqlalchemy wrote: 
> > 
> >         Hi 
> > 
> >         QueuePool.status() is returning some odd looking negative values 
> >         from 
> >         one of our production applications. 
> > 
> >                     engine.pool.status() 
> > 
> >         'Pool size: 20 Connections in pool: 19 Current Overflow: -36 
> Current 
> >         Checked out connections: -35' 
> > 
> >         The pool was initialised with:  pool_size=20, max_overflow=100. 
> > 
> > 
> >         Does anyone know of any scenarios that could cause this? 
> > 
> > 
> >         We are using SQLAlchemy==1.0.13 connecting to MySql 5.6. 
> >         The application runs in a single python process that uses 
> >         eventlet to 
> >         manage many greenthreads. 
> > 
> > 
> > 
> >     well that's very likely to be related, are you monkeypatching all 
> >     thread / Lock primitives before importing SQLAlchemy?  QueuePool 
> >     relies upon traditional thread and locking primitives which will 
> >     fail if you use them unpatched in a green-thread situation.   The 
> >     Queue here is basically Python's Queue.Queue so it appears like the 
> >     queue has been populated with more objects than it is supposed to 
> allow. 
> > 
> > 
> > 
> >         The situation appears to occur sometime after the overflow has 
> >         been used. 
> > 
> >         Thanks 
> > 
> >         -- 
> >         You received this message because you are subscribed to the 
> Google 
> >         Groups "sqlalchemy" group. 
> >         To unsubscribe from this group and stop receiving emails from 
> >         it, send 
> >         an email to sqlalchemy+...@googlegroups.com <javascript:> 
> >         <mailto:sqlalchemy%2bunsubscr...@googlegroups.com <javascript:>> 
>
> >         <mailto:sqlalchemy+unsubscr...@googlegroups.com <javascript:> 
> >         <mailto:sqlalchemy%2bunsubscr...@googlegroups.com <javascript:>>>. 
>
> >         To post to this group, send email to sqlal...@googlegroups.com 
> <javascript:> 
> >         <mailto:sqlal...@googlegroups.com <javascript:>> 
> >         <mailto:sqlal...@googlegroups.com <javascript:> 
> >         <mailto:sqlal...@googlegroups.com <javascript:>>>. 
> >         Visit this group at https://groups.google.com/group/sqlalchemy. 
> >         For more options, visit https://groups.google.com/d/optout. 
> > 
> > 
> >     -- 
> >     You received this message because you are subscribed to a topic in 
> >     the Google Groups "sqlalchemy" group. 
> >     To unsubscribe from this topic, visit 
> >     https://groups.google.com/d/topic/sqlalchemy/UWxi-bknpZE/unsubscribe. 
>
> >     To unsubscribe from this group and all its topics, send an email to 
> >     sqlalchemy+...@googlegroups.com <javascript:> 
> >     <mailto:sqlalchemy%2bunsubscr...@googlegroups.com <javascript:>>. 
> >     To post to this group, send email to sqlal...@googlegroups.com 
> <javascript:> 
> >     <mailto:sqlal...@googlegroups.com <javascript:>>. 
> >     Visit this group at https://groups.google.com/group/sqlalchemy. 
> >     For more options, visit https://groups.google.com/d/optout. 
> > 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> > Groups "sqlalchemy" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> > an email to sqlalchemy+...@googlegroups.com <javascript:> 
> > <mailto:sqlalchemy+unsubscr...@googlegroups.com <javascript:>>. 
> > To post to this group, send email to sqlal...@googlegroups.com 
> <javascript:> 
> > <mailto:sqlal...@googlegroups.com <javascript:>>. 
> > Visit this group at https://groups.google.com/group/sqlalchemy. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to