Hi List:

I am just doing a test of my pylons site under medium load.
(ab2 -c 20 -n 5000 ...)

and got following errors:

2007-08-29 17:32:34,468 INFO  [paste.httpserver.ThreadPool]
kill_hung_threads status: 10 threads (10 working, 0 idle, 0 starting)
ave time 2.24sec, max time 7.22sec, killed 0 workers
2007-08-29 17:32:40,874 INFO  [paste.httpserver.ThreadPool]
kill_hung_threads status: 10 threads (10 working, 0 idle, 0 starting)
ave time 7.28sec, max time 13.63sec, killed 0 workers
Error - <class 'sqlalchemy.exceptions.TimeoutError'>: QueuePool limit
of size 5 overflow 10 reached, connection timed out, timeout 30
Error - <class 'sqlalchemy.exceptions.TimeoutError'>: QueuePool limit
of size 5 overflow 10 reached, connection timed out, timeout 30

Some Details of test environment:

$ uname -a
Linux scorpio 2.6.21-suspend2-r6 #2 SMP PREEMPT Tue Jul 24 18:13:15
CEST 2007 x86_64 Intel(R) Core(TM)2 CPU T5600 @ 1.83GHz GenuineIntel
GNU/Linux

$ postgres --version
postgres (PostgreSQL) 8.2.4

$ python
Python 2.5.1 (r251:54863, Aug 24 2007, 12:15:43)
[GCC 4.1.2 (Gentoo 4.1.2)] on linux2

>>> psycopg2.__version__
'2.0.2 (dec dt ext pq3)'
also tested with 2.0.5.1 and 2.0.6, same error

SQLAlchemy is from trunk r3419


I'am using scoped_session with elixir but I don't think it's the
point.
And the db query is simply select * from a single table, without
joins.

Engine is from engine_from_config, no extra options are given.
Swithing to option: poolclass = SingletonThreadPool seems to solve the
Problem.

And here is my model/__init__.py

from pylons import config
from sqlalchemy import MetaData
from sqlalchemy.orm import scoped_session, sessionmaker

# Global session manager.  Session() returns the session object
appropriate for
# the current web request.
Session = scoped_session(
    sessionmaker(
        autoflush=True, transactional=True,
bind=config['pylons.g'].sa_engine
    )
)

import elixir
elixir.objectstore = elixir.Objectstore(Session)
elixir.options_defaults.update({
    'shortnames': True,
    #'session': Session(),
    #'inheritance': 'multi',
})

# Global Metadata
metadata = elixir.metadata
if not metadata.bind:
    metadata.bind = config['pylons.g'].sa_engine

del config

# Shortcuts to elixir methods
create_all = elixir.create_all
cleanup_all = elixir.cleanup_all
drop_all = elixir.drop_all
setup_all = elixir.setup_all

from user import User, Group, Permission
from admin import ActionHistory
from localization import *
from meta import *

# preparing orm mapper
setup_all()


Did I do things right? Or just another Bug?

Thanks

Jian


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to