﻿id,summary,reporter,owner,description,type,status,priority,component,severity,resolution,keywords,cc,release
8657,ProgrammingError: Cannot operate on a closed cursor,schodet,rjollos,"Seen on trac 0.11.7.

{{{
File ""/usr/lib/python2.6/dist-packages/trac/web/main.py"", line 450, in _dispatch_request
  dispatcher.dispatch(req)
File ""/usr/lib/python2.6/dist-packages/trac/web/main.py"", line 227, in dispatch
  data, content_type)
File ""/usr/lib/python2.6/dist-packages/trac/web/chrome.py"", line 773, in render_template
  stream.render(method, doctype=doctype, out=buffer)
File ""/usr/lib/pymodules/python2.6/genshi/core.py"", line 183, in render
  return encode(generator, method=method, encoding=encoding, out=out)
File ""/usr/lib/pymodules/python2.6/genshi/output.py"", line 58, in encode
  for chunk in iterator:
File ""/usr/lib/pymodules/python2.6/genshi/output.py"", line 339, in __call__
  for kind, data, pos in stream:
File ""/usr/lib/pymodules/python2.6/genshi/output.py"", line 826, in __call__
  for kind, data, pos in stream:
File ""/usr/lib/pymodules/python2.6/genshi/output.py"", line 670, in __call__
  for kind, data, pos in stream:
File ""/usr/lib/pymodules/python2.6/genshi/output.py"", line 771, in __call__
  for kind, data, pos in chain(stream, [(None, None, None)]):
File ""/usr/lib/pymodules/python2.6/genshi/output.py"", line 586, in __call__
  for ev in stream:
File ""/usr/lib/pymodules/python2.6/genshi/core.py"", line 288, in _ensure
  for event in stream:
File ""/usr/lib/pymodules/python2.6/genshi/core.py"", line 288, in _ensure
  for event in stream:
File ""/usr/lib/python2.6/dist-packages/trac/web/chrome.py"", line 838, in _strip_accesskeys
  for kind, data, pos in stream:
File ""/usr/lib/pymodules/python2.6/genshi/core.py"", line 288, in _ensure
  for event in stream:
File ""/usr/lib/python2.6/dist-packages/trac/web/chrome.py"", line 827, in _generate
  for kind, data, pos in stream:
File ""/usr/lib/pymodules/python2.6/genshi/core.py"", line 288, in _ensure
  for event in stream:
File ""/usr/lib/pymodules/python2.6/genshi/core.py"", line 288, in _ensure
  for event in stream:
File ""/usr/lib/pymodules/python2.6/genshi/filters/transform.py"", line 686, in _unmark
  for mark, event in stream:
File ""/usr/lib/pymodules/python2.6/genshi/filters/transform.py"", line 1152, in __call__
  for subevent in self._inject():
File ""/usr/lib/pymodules/python2.6/genshi/filters/transform.py"", line 1042, in _inject
  content = content()
File ""/usr/local/lib/python2.6/dist-packages/ExtendedVersionTracPlugin-0.0-py2.6.egg/extendedversion/milestone.py"", line 83, in apply_version
  return self._version_display(req, buffer.events[1][1])
File ""/usr/local/lib/python2.6/dist-packages/ExtendedVersionTracPlugin-0.0-py2.6.egg/extendedversion/milestone.py"", line 90, in _version_display
  cursor.execute(""SELECT version FROM milestone_version WHERE milestone=%s"", (milestone,))
File ""/usr/lib/python2.6/dist-packages/trac/db/util.py"", line 64, in execute
  return self.cursor.execute(sql_escape_percent(sql), args)
File ""/usr/lib/python2.6/dist-packages/trac/db/sqlite_backend.py"", line 80, in execute
  result = PyFormatCursor.execute(self, *args)
File ""/usr/lib/python2.6/dist-packages/trac/db/sqlite_backend.py"", line 59, in execute
  args or [])
File ""/usr/lib/python2.6/dist-packages/trac/db/sqlite_backend.py"", line 51, in _rollback_on_error
  return function(self, *args, **kwargs)
}}}

As a workaround, I temporarily disabled the _version_display function:

{{{
#!diff
Index: extendedversion/milestone.py
===================================================================
--- extendedversion/milestone.py        (revision 10007)
+++ extendedversion/milestone.py        (working copy)
@@ -86,6 +86,8 @@
         return stream | filter
 
     def _version_display(self, req, milestone):
+        # XXX not working.
+        return []
         cursor = self.env.get_db_cnx().cursor()
         cursor.execute(""SELECT version FROM milestone_version WHERE milestone=%s"", (milestone,))
         row = cursor.fetchone()
}}}",defect,closed,normal,ExtendedVersionPlugin,normal,fixed,,,0.11
