Opened 16 years ago
Closed 16 years ago
#7797 closed defect (duplicate)
"InterfaceError" when restarting postgresql server
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | general | Version: | 0.11.1 |
Severity: | major | Keywords: | postgresql |
Cc: | Branch: | ||
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description
I've setup a trac instance with postgresql as a database backend and now i get "InterfaceError: connection already closed" when stop/start postgresql server.
System info:
- Linux 2.6.27-7-generic
- trac 0.11.1 (standalone tracd)
- Python 2.5.2
- python-psycopg2 2.0.8-0ubuntu1
- PostgreSQL 8.3.4
Traceback:
15:40:21 Trac[main] ERROR: connection already closed Traceback (most recent call last): File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/main.py", line 423, in _dispatch_request dispatcher.dispatch(req) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/main.py", line 173, in dispatch chosen_handler) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/main.py", line 286, in _pre_process_request chosen_handler = filter_.pre_process_request(req, chosen_handler) File "build/bdist.linux-i686/egg/tracdeveloper/javascript.py", line 14, in pre_process_request if req.session.get('developer.js.enable_debug') == '1' and \ File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/api.py", line 169, in __getattr__ value = self.callbacks[name](self) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/main.py", line 257, in _get_session return Session(self.env, req) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/session.py", line 139, in __init__ if req.authname == 'anonymous': File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/api.py", line 169, in __getattr__ value = self.callbacks[name](self) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/main.py", line 131, in authenticate authname = authenticator.authenticate(req) File "/home/scream/work/trac-0.11.1/source/trac-hacks/svn/accountmanagerplugin/trunk/acct_mgr/web_ui.py", line 429, in wrap return func(self, *args, **kwds) File "/home/scream/work/trac-0.11.1/source/trac-hacks/svn/accountmanagerplugin/trunk/acct_mgr/web_ui.py", line 440, in authenticate return auth.LoginModule.authenticate(self, req) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/auth.py", line 70, in authenticate authname = self._get_name_for_cookie(req, req.incookie['trac_auth']) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/auth.py", line 181, in _get_name_for_cookie cursor = db.cursor() File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/db/util.py", line 78, in cursor return IterableCursor(self.cnx.cursor()) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/db/util.py", line 78, in cursor return IterableCursor(self.cnx.cursor()) InterfaceError: connection already closed
Attachments (0)
Change History (5)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
Yes, it does.
Traceback, w/o plugins:
Traceback (most recent call last): File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/api.py", line 339, in send_error 'text/html') File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/chrome.py", line 684, in render_template data = self.populate_data(req, data) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/chrome.py", line 592, in populate_data d['chrome'].update(req.chrome) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/api.py", line 169, in __getattr__ value = self.callbacks[name](self) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/chrome.py", line 460, in prepare_request for category, name, text in contributor.get_navigation_items(req): File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/ticket/web_ui.py", line 151, in get_navigation_items if 'TICKET_CREATE' in req.perm: File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/perm.py", line 523, in has_permission return self._has_permission(action, resource) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/perm.py", line 537, in _has_permission check_permission(action, perm.username, resource, perm) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/perm.py", line 424, in check_permission perm) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/perm.py", line 282, in check_permission get_user_permissions(username) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/perm.py", line 357, in get_user_permissions for perm in self.store.get_user_permissions(username): File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/perm.py", line 174, in get_user_permissions cursor = db.cursor() File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/db/util.py", line 78, in cursor return IterableCursor(self.cnx.cursor()) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/db/util.py", line 78, in cursor return IterableCursor(self.cnx.cursor()) InterfaceError: connection already closed
comment:3 by , 16 years ago
What's in your log file? Do you see other errors happening just before. A quick googling hinted that this error may happen after an OperationalError
which actually closes the connection (and so we need to dispose of the Connection wrapper as well).
If you have such an OperationalError in your log, please post the corresponding traceback.
comment:4 by , 16 years ago
I have OperationalError in log, and InterfaceError after i get OperationalError.
log traceback of two requests after stop/start postgresql:
16:38:56 Trac[main] DEBUG: Dispatching <Request "GET u'/'"> 16:38:56 Trac[main] ERROR: terminating connection due to administrator command server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. Traceback (most recent call last): File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/main.py", line 423, in _dispatch_request dispatcher.dispatch(req) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/main.py", line 197, in dispatch resp = chosen_handler.process_request(req) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/wiki/web_ui.py", line 114, in process_request page = WikiPage(self.env, pagename) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/wiki/model.py", line 43, in __init__ self._fetch(name, version, db) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/wiki/model.py", line 64, in _fetch (name,)) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/db/util.py", line 50, in execute return self.cursor.execute(sql_escape_percent(sql), args) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/db/util.py", line 50, in execute return self.cursor.execute(sql_escape_percent(sql), args) OperationalError: terminating connection due to administrator command server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. 16:38:56 Trac[chrome] DEBUG: Prepare chrome data for request 127.0.0.1 - - [07/Nov/2008 16:38:56] "GET /test/ HTTP/1.1" 500 - Exception psycopg2.InterfaceError: 'connection already closed' in <bound method PooledConnection.__del__ of <trac.db.pool.PooledConnection object at 0x951168c>> ignored 16:38:56 Trac[main] DEBUG: 330 unreachable objects found. 16:41:38 Trac[main] DEBUG: Dispatching <Request "GET u'/'"> 16:41:38 Trac[main] ERROR: connection already closed Traceback (most recent call last): File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/main.py", line 423, in _dispatch_request dispatcher.dispatch(req) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/web/main.py", line 197, in dispatch resp = chosen_handler.process_request(req) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/wiki/web_ui.py", line 114, in process_request page = WikiPage(self.env, pagename) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/wiki/model.py", line 43, in __init__ self._fetch(name, version, db) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/wiki/model.py", line 54, in _fetch cursor = db.cursor() File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/db/util.py", line 78, in cursor return IterableCursor(self.cnx.cursor()) File "/home/scream/work/trac-0.11.1/source/trac/trac-0.11.1/trac/db/util.py", line 78, in cursor return IterableCursor(self.cnx.cursor()) InterfaceError: connection already closed 16:41:38 Trac[chrome] DEBUG: Prepare chrome data for request 127.0.0.1 - - [07/Nov/2008 16:41:38] "GET /test/ HTTP/1.1" 500 - 16:41:39 Trac[main] DEBUG: 107 unreachable objects found.
comment:5 by , 16 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
Oh, just realized we already have a ticket for this … see #4984.
Does it also happen w/o plugins? If not, trying identifying which plugin introduces the problem.