I use the SqlSoup to make it easy to access the database. It's all
right
when I make the http request one by one.
But it run into errors when serveral requests were sent at the same
time,
and fail to proccess requests anymore.
I log the Session, and found that each request exact has different
session.
The most strange thing is that each time the sqlsoup go down, it
produce
different error message:
When everything is OK, the log is:
-------------------------------------------------------------------------------------
2009-06-07 17:18:33,082 INFO sqlalchemy.engine.base.Engine.0x...a530
BEGIN
2009-06-07 17:18:33,082 INFO sqlalchemy.engine.base.Engine.0x...a530
SELECT
user.id AS user_id, user.name AS user_name, user.full_name AS
user_full_name, user.password AS user_password, user.active AS
user_active
FROM user
WHERE user.password = %s AND user.name = %s
LIMIT 0, 1
2009-06-07 17:18:33,082 INFO sqlalchemy.engine.base.Engine.0x...a530
['123456', 'eric']
2009-06-07 17:18:33,098 INFO sqlalchemy.engine.base.Engine.0x...a530
SELECT
role.id AS role_id, role.name AS role_name, role.description AS
role_description, rl_user_role.user_id AS rl_user_role_user_id,
rl_user_role.role_id AS rl_user_role_role_id, rl_role_action.role_id
AS
rl_role_action_role_id, rl_role_action.action_id AS
rl_role_action_action_id
FROM role INNER JOIN rl_user_role ON role.id = rl_user_role.role_id
INNER
JOIN rl_role_action ON role.id = rl_role_action.role_id
WHERE rl_role_action.action_id = %s AND rl_user_role.user_id = %s
2009-06-07 17:18:33,098 INFO sqlalchemy.engine.base.Engine.0x...a530
[1L,
1L]
2009-06-07 17:18:33,098 INFO sqlalchemy.engine.base.Engine.0x...a530
SELECT
user.id AS user_id, user.name AS user_name, user.full_name AS
user_full_name, user.password AS user_password, user.active AS
user_active
FROM user
2009-06-07 17:18:33,098 INFO sqlalchemy.engine.base.Engine.0x...a530
[]
2009-06-07 17:18:33,115 INFO sqlalchemy.engine.base.Engine.0x...a530
COMMIT
--------------------------------------------------------------------------------------
And error edition 1:
-------------------------------------------------------------------------------------
Traceback (most recent call last):
File
"D:\CodingLife\win32\home\workspace\eric\lib\google_appengine\google
\appengine\ext\webapp\__init__
.py", line 499, in __call__
handler.get(*groups)
File "D:\CodingLife\win32\home\workspace\eric\src\eric\database.py",
line
44, in _func
return func(*args, **kwargs)
File "D:\CodingLife\win32\home\workspace\eric\src\eric\auth
\__init__.py",
line 23, in action_metho
d
if roles == 'everyone' or check_privilege(action_id,
users.get_current_user().id):
File "D:\CodingLife\win32\home\workspace\eric\src\eric\auth
\__init__.py",
line 67, in check_privil
ege
db.role.id==db.rl_user_role.role_id)
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\ext\sqlsoup.py",
line 541, in join
return self.map(j)
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\ext\sqlsoup.py",
line 531, in map
t = class_for_table(selectable, **kwargs)
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\ext\sqlsoup.py",
line 483, in class_for_table
for k in mappr.iterate_properties:
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\orm\mapper.py",
line
777, in iterate_properties
self.compile()
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\orm\mapper.py",
line
651, in compile
for mapper in list(_mapper_registry):
File "D:\CodingLife\win32\native\Python25\lib\weakref.py", line 303,
in
iterkeys
for wr in self.data.iterkeys():
RuntimeError: dictionary changed size during iteration
the request followed produce this:
INFO:sqlalchemy.engine.base.Engine.0x...a530:ROLLBACK
ERROR:root:Traceback (most recent call last):
File
"D:\CodingLife\win32\home\workspace\eric\lib\google_appengine\google
\appengine\ext\webapp\__init__.py",
line 499, in __call__
handler.get(*groups)
File "D:\CodingLife\win32\home\workspace\eric\src\eric\database.py",
line
44, in _func
return func(*args, **kwargs)
File "D:\CodingLife\win32\home\workspace\eric\src\eric\auth
\__init__.py",
line 23, in action_method
if roles == 'everyone' or check_privilege(action_id,
users.get_current_user().id):
File "D:\CodingLife\win32\home\workspace\eric\src\eric\auth
\__init__.py",
line 67, in check_privilege
db.role.id==db.rl_user_role.role_id)
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\ext\sqlsoup.py",
line 541, in join
return self.map(j)
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\ext\sqlsoup.py",
line 531, in map
t = class_for_table(selectable, **kwargs)
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\ext\sqlsoup.py",
line 483, in class_for_table
for k in mappr.iterate_properties:
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\orm\mapper.py",
line 777, in iterate_properties
self.compile()
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\orm\mapper.py",
line 655, in compile
"Message was: %s" % mapper._compile_failed)
InvalidRequestError: One or more mappers failed to compile. Exception
was
probably suppressed within a hasattr() call. Message was: dictionary
changed
size during iteration
-------------------------------------------------------------------------------------
And error edition 2:
-------------------------------------------------------------------------------------
ERROR:root:Traceback (most recent call last):
File
"D:\CodingLife\win32\home\workspace\eric\lib\google_appengine\google
\appengine\ext\webapp\__init__.py",
line 499, in __call__
handler.get(*groups)
File "D:\CodingLife\win32\home\workspace\eric\src\eric\database.py",
line
44, in _func
return func(*args, **kwargs)
File "D:\CodingLife\win32\home\workspace\eric\src\eric\auth
\__init__.py",
line 23, in action_method
if roles == 'everyone' or check_privilege(action_id,
users.get_current_user().id):
File "D:\CodingLife\win32\home\workspace\eric\src\eric\auth
\__init__.py",
line 69, in check_privilege
db.role.id==db.rl_role_action.role_id)
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\ext\sqlsoup.py",
line 541, in join
return self.map(j)
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\ext\sqlsoup.py",
line 531, in map
t = class_for_table(selectable, **kwargs)
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\ext\sqlsoup.py",
line 483, in class_for_table
for k in mappr.iterate_properties:
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\orm\mapper.py",
line 777, in iterate_properties
self.compile()
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\orm\mapper.py",
line 655, in compile
"Message was: %s" % mapper._compile_failed)
InvalidRequestError: One or more mappers failed to compile. Exception
was
probably suppressed within a hasattr() call. Message was: 'Mapper'
object
has no attribute 'primary_key'
the request followed produce this:
ERROR:root:Traceback (most recent call last):
File
"D:\CodingLife\win32\home\workspace\eric\lib\google_appengine\google
\appengine\ext\webapp\__init__.py",
line 499, in __call__
handler.get(*groups)
File "D:\CodingLife\win32\home\workspace\eric\src\eric\database.py",
line
44, in _func
return func(*args, **kwargs)
File "D:\CodingLife\win32\home\workspace\eric\src\eric\auth
\__init__.py",
line 22, in action_method
if ensure_login(handler):
File "D:\CodingLife\win32\home\workspace\eric\src\eric\auth
\__init__.py",
line 33, in ensure_login
user = check_user(username, password)
File "D:\CodingLife\win32\home\workspace\eric\src\eric\auth
\__init__.py",
line 76, in check_user
user = db.user.filter_by(name=username, password=password).first()
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\ext\sqlsoup.py",
line 410, in __getattr__
return getattr(cls._query, attr)
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\orm\scoping.py",
line 107, in __get__
mapper = class_mapper(owner)
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\orm\util.py",
line 567, in class_mapper
mapper = mapper.compile()
File
"D:\CodingLife\win32\home\workspace\eric\lib\SQLAlchemy-0.5.3\lib
\sqlalchemy\orm\mapper.py",
line 655, in compile
"Message was: %s" % mapper._compile_failed)
InvalidRequestError: One or more mappers failed to compile. Exception
was
probably suppressed within a hasattr() call. Message was: One or more
mappers failed to compile. Exception was probably suppressed within
a
hasattr() call. Message was: 'Mapper' object has no attribute
'primary_key'
-------------------------------------------------------------------------------------
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---