For completeness purposes, here is the stack trace of the concurrent update exception as shown in the Zope 3 logs:
2009-01-30T17:29:31 ERROR SiteError http://localhost:8080/hardware/200712-203/index.html
Traceback (most recent call last):
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/publisher/publish.py", line 136, in publish
result = publication.callObject(request, obj)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/app/publication/zopepublication.py", line 167, in callObject
return mapply(ob, request.getPositionalArguments(), request)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/publisher/publish.py", line 108, in mapply
return debug_call(obj, args)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/publisher/publish.py", line 114, in debug_call
return obj(*args)
File "/srv/trunk.certification.canonical.com/certify-web/src/canonical/certify/browser/page.py", line 61, in __call__
result = provider.render()
File "/srv/trunk.certification.canonical.com/certify-web/src/canonical/content/provider.py", line 55, in render
return self.template(*args, **kwargs)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/app/pagetemplate/viewpagetemplatefile.py", line 83, in __call__
return self.im_func(im_self, *args, **kw)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/app/pagetemplate/viewpagetemplatefile.py", line 51, in __call__
sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/pagetemplate/pagetemplate.py", line 115, in pt_render
strictinsert=0, sourceAnnotations=sourceAnnotations)()
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/tal/talinterpreter.py", line 271, in __call__
self.interpret(self.program)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/tal/talinterpreter.py", line 346, in interpret
handlers[opcode](self, args)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/tal/talinterpreter.py", line 536, in do_optTag_tal
self.do_optTag(stuff)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/tal/talinterpreter.py", line 521, in do_optTag
return self.no_tag(start, program)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/tal/talinterpreter.py", line 516, in no_tag
self.interpret(program)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/tal/talinterpreter.py", line 346, in interpret
handlers[opcode](self, args)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/tal/talinterpreter.py", line 623, in do_insertText_tal
text = self.engine.evaluateText(stuff[0])
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/tales/tales.py", line 704, in evaluateText
text = self.evaluate(expr)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/tales/tales.py", line 696, in evaluate
return expression(self)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/tales/expressions.py", line 217, in __call__
return self._eval(econtext)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/tales/expressions.py", line 194, in _eval
ob = self._subexprs[-1](econtext)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/tales/expressions.py", line 124, in _eval
ob = self._traverser(ob, element, econtext)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/app/pagetemplate/engine.py", line 68, in __call__
request=request)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/traversing/adapters.py", line 164, in traversePathElement
return traversable.traverse(nm, further_path)
File "/srv/trunk.certification.canonical.com/certify-zope3/src/zope/traversing/adapters.py", line 44, in traverse
attr = getattr(subject, name, _marker)
File "/srv/trunk.certification.canonical.com/certify-web/src/canonical/certify/browser/hardware.py", line 59, in title
return "%s %s" % (self.context.record_type.name,
File "/srv/trunk.certification.canonical.com/certify-storm/storm/references.py", line 154, in __get__
self._relation.get_local_variables(local))
File "/srv/trunk.certification.canonical.com/certify-storm/storm/store.py", line 157, in get
self.flush()
File "/srv/trunk.certification.canonical.com/certify-storm/storm/store.py", line 494, in flush
self._flush_one(obj_info)
File "/srv/trunk.certification.canonical.com/certify-storm/storm/store.py", line 556, in _flush_one
self._connection.execute(expr, noresult=True)
File "/srv/trunk.certification.canonical.com/certify-storm/storm/databases/postgres.py", line 263, in execute
return Connection.execute(self, statement, params, noresult)
File "/srv/trunk.certification.canonical.com/certify-storm/storm/database.py", line 203, in execute
raw_cursor = self.raw_execute(statement, params)
File "/srv/trunk.certification.canonical.com/certify-storm/storm/databases/postgres.py", line 293, in raw_execute
return Connection.raw_execute(self, statement, params)
File "/srv/trunk.certification.canonical.com/certify-storm/storm/database.py", line 284, in raw_execute
self._check_disconnect(raw_cursor.execute, *args)
File "/srv/trunk.certification.canonical.com/certify-storm/storm/database.py", line 325, in _check_disconnect
return function(*args, **kwargs)
ProgrammingError: could not serialize access due to concurrent update
For completeness purposes, here is the stack trace of the concurrent update exception as shown in the Zope 3 logs:
2009-01-30T17:29:31 ERROR SiteError http:// localhost: 8080/hardware/ 200712- 203/index. html certification. canonical. com/certify- zope3/src/ zope/publisher/ publish. py", line 136, in publish callObject( request, obj) certification. canonical. com/certify- zope3/src/ zope/app/ publication/ zopepublication .py", line 167, in callObject getPositionalAr guments( ), request) certification. canonical. com/certify- zope3/src/ zope/publisher/ publish. py", line 108, in mapply certification. canonical. com/certify- zope3/src/ zope/publisher/ publish. py", line 114, in debug_call certification. canonical. com/certify- web/src/ canonical/ certify/ browser/ page.py" , line 61, in __call__ certification. canonical. com/certify- web/src/ canonical/ content/ provider. py", line 55, in render *args, **kwargs) certification. canonical. com/certify- zope3/src/ zope/app/ pagetemplate/ viewpagetemplat efile.py" , line 83, in __call__ func(im_ self, *args, **kw) certification. canonical. com/certify- zope3/src/ zope/app/ pagetemplate/ viewpagetemplat efile.py" , line 51, in __call__ ations= getattr( debug_flags, 'sourceAnnotati ons', 0), certification. canonical. com/certify- zope3/src/ zope/pagetempla te/pagetemplate .py", line 115, in pt_render ns=sourceAnnota tions)( ) certification. canonical. com/certify- zope3/src/ zope/tal/ talinterpreter. py", line 271, in __call__ interpret( self.program) certification. canonical. com/certify- zope3/src/ zope/tal/ talinterpreter. py", line 346, in interpret opcode] (self, args) certification. canonical. com/certify- zope3/src/ zope/tal/ talinterpreter. py", line 536, in do_optTag_tal do_optTag( stuff) certification. canonical. com/certify- zope3/src/ zope/tal/ talinterpreter. py", line 521, in do_optTag certification. canonical. com/certify- zope3/src/ zope/tal/ talinterpreter. py", line 516, in no_tag interpret( program) certification. canonical. com/certify- zope3/src/ zope/tal/ talinterpreter. py", line 346, in interpret opcode] (self, args) certification. canonical. com/certify- zope3/src/ zope/tal/ talinterpreter. py", line 623, in do_insertText_tal evaluateText( stuff[0] ) certification. canonical. com/certify- zope3/src/ zope/tales/ tales.py" , line 704, in evaluateText certification. canonical. com/certify- zope3/src/ zope/tales/ tales.py" , line 696, in evaluate certification. canonical. com/certify- zope3/src/ zope/tales/ expressions. py", line 217, in __call__ econtext) certification. canonical. com/certify- zope3/src/ zope/tales/ expressions. py", line 194, in _eval -1](econtext) certification. canonical. com/certify- zope3/src/ zope/tales/ expressions. py", line 124, in _eval certification. canonical. com/certify- zope3/src/ zope/app/ pagetemplate/ engine. py", line 68, in __call__ request) certification. canonical. com/certify- zope3/src/ zope/traversing /adapters. py", line 164, in traversePathElement traverse( nm, further_path) certification. canonical. com/certify- zope3/src/ zope/traversing /adapters. py", line 44, in traverse certification. canonical. com/certify- web/src/ canonical/ certify/ browser/ hardware. py", line 59, in title record_ type.name, certification. canonical. com/certify- storm/storm/ references. py", line 154, in __get__ _relation. get_local_ variables( local)) certification. canonical. com/certify- storm/storm/ store.py" , line 157, in get certification. canonical. com/certify- storm/storm/ store.py" , line 494, in flush _flush_ one(obj_ info) certification. canonical. com/certify- storm/storm/ store.py" , line 556, in _flush_one _connection. execute( expr, noresult=True) certification. canonical. com/certify- storm/storm/ databases/ postgres. py", line 263, in execute execute( self, statement, params, noresult) certification. canonical. com/certify- storm/storm/ database. py", line 203, in execute execute( statement, params) certification. canonical. com/certify- storm/storm/ databases/ postgres. py", line 293, in raw_execute raw_execute( self, statement, params) certification. canonical. com/certify- storm/storm/ database. py", line 284, in raw_execute _check_ disconnect( raw_cursor. execute, *args) certification. canonical. com/certify- storm/storm/ database. py", line 325, in _check_disconnect
Traceback (most recent call last):
File "/srv/trunk.
result = publication.
File "/srv/trunk.
return mapply(ob, request.
File "/srv/trunk.
return debug_call(obj, args)
File "/srv/trunk.
return obj(*args)
File "/srv/trunk.
result = provider.render()
File "/srv/trunk.
return self.template(
File "/srv/trunk.
return self.im_
File "/srv/trunk.
sourceAnnot
File "/srv/trunk.
strictinsert=0, sourceAnnotatio
File "/srv/trunk.
self.
File "/srv/trunk.
handlers[
File "/srv/trunk.
self.
File "/srv/trunk.
return self.no_tag(start, program)
File "/srv/trunk.
self.
File "/srv/trunk.
handlers[
File "/srv/trunk.
text = self.engine.
File "/srv/trunk.
text = self.evaluate(expr)
File "/srv/trunk.
return expression(self)
File "/srv/trunk.
return self._eval(
File "/srv/trunk.
ob = self._subexprs[
File "/srv/trunk.
ob = self._traverser(ob, element, econtext)
File "/srv/trunk.
request=
File "/srv/trunk.
return traversable.
File "/srv/trunk.
attr = getattr(subject, name, _marker)
File "/srv/trunk.
return "%s %s" % (self.context.
File "/srv/trunk.
self.
File "/srv/trunk.
self.flush()
File "/srv/trunk.
self.
File "/srv/trunk.
self.
File "/srv/trunk.
return Connection.
File "/srv/trunk.
raw_cursor = self.raw_
File "/srv/trunk.
return Connection.
File "/srv/trunk.
self.
File "/srv/trunk.
return function(*args, **kwargs)
ProgrammingError: could not serialize access due to concurrent update