It happens only when the site has been idle for several hours; i.e. overnight. Once it starts it keeps happening every request until I restart the application.
The first time it happened, somebody had gotten a "MySQL server has gone away" error during the night, followed by a couple weak-reference errors. I noticed that pool_recycle wasn't being passed properly and fixed it. Since then I've gotten weak-reference errors almost every morning, but without the server-gone error. I restart the server and it runs the rest of the day. Today I upgraded from MySQLdb 1.2.0 to 1.2.2 so maybe that will fix it. --Mike On 5/31/07, Michael Bayer <[EMAIL PROTECTED]> wrote: > > nothing is weakly referenced within the block where that exception is > being thrown. the only place weakrefs are used outside of the ORM is > a couple of dictionaries in pool.py. you havent said what reproduces > this problem ? you just start the app, and it happens every time ? > > > On May 31, 6:01 pm, "Mike Orr" <[EMAIL PROTECTED]> wrote: > > I've been getting this on my Pylons site. > > > > sqlalchemy.exceptions.SQLError: (ReferenceError) weakly-referenced > > object no longer exists > > > > It's trying to execute an ORM .select() call. The first time was > > after a "MySQL server has gone away" error, so I assumed some mapped > > instances had been orphaned. But now I'm still getting it even though > > I've set .pool_recycle to 1 hour and restarted the application several > > times. > > > > I've got SQLAlchemy 0.3.7 on the server, which is where the error is > > occuring. My workstation has the trunk version, but I probably don't > > keep the app running long enough to give this a chance to happen. > > > > The full traceback follows. > > > > File '/mnt/data/www/apps/inews2/inews/controllers/main.py', line 14 in index > > c.top = model.list_incidents(top_only=True) > > File '/mnt/data/www/apps/inews2/inews/models/__init__.py', line 60 in > > list_incidents > > return q.select(order_by=order_by, offset=offset, limit=limit) > > File > > '/mnt/data/www/apps/inews2/wenv-inews/lib/python2.4/SQLAlchemy-0.3.7-py2.4.egg/sqlalchemy/orm/query.py', > > line 319 in select > > return self.select_whereclause(whereclause=arg, **kwargs) > > File > > '/mnt/data/www/apps/inews2/wenv-inews/lib/python2.4/SQLAlchemy-0.3.7-py2.4.egg/sqlalchemy/orm/query.py', > > line 326 in select_whereclause > > return self._select_statement(statement, params=params) > > File > > '/mnt/data/www/apps/inews2/wenv-inews/lib/python2.4/SQLAlchemy-0.3.7-py2.4.egg/sqlalchemy/orm/query.py', > > line 927 in _select_statement > > return self.execute(statement, params=params, **kwargs) > > File > > '/mnt/data/www/apps/inews2/wenv-inews/lib/python2.4/SQLAlchemy-0.3.7-py2.4.egg/sqlalchemy/orm/query.py', > > line 831 in execute > > result = self.session.execute(self.mapper, clauseelement, params=params) > > File > > '/mnt/data/www/apps/inews2/wenv-inews/lib/python2.4/SQLAlchemy-0.3.7-py2.4.egg/sqlalchemy/orm/session.py', > > line 183 in execute > > return self.connection(mapper, > > close_with_result=True).execute(clause, params, **kwargs) > > File > > '/mnt/data/www/apps/inews2/wenv-inews/lib/python2.4/SQLAlchemy-0.3.7-py2.4.egg/sqlalchemy/engine/base.py', > > line 509 in execute > > return Connection.executors[c](self, object, *multiparams, **params) > > File > > '/mnt/data/www/apps/inews2/wenv-inews/lib/python2.4/SQLAlchemy-0.3.7-py2.4.egg/sqlalchemy/engine/base.py', > > line 549 in execute_clauseelement > > return self.execute_compiled(elem.compile(dialect=self.dialect, > > parameters=param), *multiparams, **params) > > File > > '/mnt/data/www/apps/inews2/wenv-inews/lib/python2.4/SQLAlchemy-0.3.7-py2.4.egg/sqlalchemy/engine/base.py', > > line 560 in execute_compiled > > self._execute_raw(context) > > File > > '/mnt/data/www/apps/inews2/wenv-inews/lib/python2.4/SQLAlchemy-0.3.7-py2.4.egg/sqlalchemy/engine/base.py', > > line 573 in _execute_raw > > self._execute(context) > > File > > '/mnt/data/www/apps/inews2/wenv-inews/lib/python2.4/SQLAlchemy-0.3.7-py2.4.egg/sqlalchemy/engine/base.py', > > line 591 in _execute > > raise exceptions.SQLError(context.statement, context.parameters, e) > > SQLError: (ReferenceError) weakly-referenced object no longer exists > > u'SELECT `IN_Incident`.is_type_other AS `IN_Incident_is_type_other`, > > `IN_Incident`.measure_shore AS `IN_Incident_measure_shore`, > > `IN_Incident`.ptl_search_min AS `IN_Incident_ptl_search_min`, > > `IN_Incident`.measure_burn AS `IN_Incident_measure_burn`, > > `IN_Incident`.actl_entered_max AS `IN_Incident_actl_entered_max`, > > `IN_Incident`.actl_search_min AS `IN_Incident_actl_search_min`, > > `IN_Incident`.is_type_drill AS `IN_Incident_is_type_drill`, > > `IN_Incident`.lead_ssc AS `IN_Incident_lead_ssc`, > > `IN_Incident`.measure_skim AS `IN_Incident_measure_skim`, > > `IN_Incident`.orr_id AS `IN_Incident_orr_id`, `IN_Incident`.jic AS > > `IN_Incident_jic`, `IN_Incident`.ptl_is_mass AS > > `IN_Incident_ptl_is_mass`, `IN_Incident`.actl_search_max AS > > `IN_Incident_actl_search_max`, `IN_Incident`.lon AS `IN_Incident_lon`, > > `IN_Incident`.notified_by AS `IN_Incident_notified_by`, > > `IN_Incident`.actl_entered_min AS `IN_Incident_actl_entered_min`, > > `IN_Incident`.location AS `IN_Incident_location`, > > `IN_Incident`.inews_date AS `IN_Incident_inews_date`, > > `IN_Incident`.ptl_search_max AS `IN_Incident_ptl_search_max`, > > `IN_Incident`.public_affairs_html AS > > `IN_Incident_public_affairs_html`, `IN_Incident`.cause AS > > `IN_Incident_cause`, `IN_Incident`.ptl_unit AS `IN_Incident_ptl_unit`, > > `IN_Incident`.noaa_divisions_involved AS > > `IN_Incident_noaa_divisions_involved`, `IN_Incident`.ptl_entered_max > > AS `IN_Incident_ptl_entered_max`, `IN_Incident`.description AS > > `IN_Incident_description`, `IN_Incident`.measure_bio AS > > `IN_Incident_measure_bio`, `IN_Incident`.is_type_oil AS > > `IN_Incident_is_type_oil`, `IN_Incident`.is_top AS > > `IN_Incident_is_top`, `IN_Incident`.actl_unit AS > > `IN_Incident_actl_unit`, `IN_Incident`.lat AS `IN_Incident_lat`, > > `IN_Incident`.is_type_ptl_bio AS `IN_Incident_is_type_ptl_bio`, > > `IN_Incident`.effort AS `IN_Incident_effort`, > > `IN_Incident`.measure_disperse AS `IN_Incident_measure_disperse`, > > `IN_Incident`.name AS `IN_Incident_name`, `IN_Incident`.commodity AS > > `IN_Incident_commodity`, `IN_Incident`.other_cause AS > > `IN_Incident_other_cause`, `IN_Incident`.is_type_ptl_oil AS > > `IN_Incident_is_type_ptl_oil`, `IN_Incident`.is_type_bio AS > > `IN_Incident_is_type_bio`, `IN_Incident`.actl_is_mass AS > > `IN_Incident_actl_is_mass`, `IN_Incident`.is_involve_dac AS > > `IN_Incident_is_involve_dac`, `IN_Incident`.ptl_entered_min AS > > `IN_Incident_ptl_entered_min` \nFROM `IN_Incident` \nWHERE > > `IN_Incident`.is_top ORDER BY inews_date DESC \n LIMIT 99 OFFSET 0' [] > > > > -- > > Mike Orr <[EMAIL PROTECTED]> > > > > > -- Mike Orr <[EMAIL PROTECTED]> --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
