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 sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---