I tried the last ZODBBrowser release (0.10.3) on a ZODB-3.10.5 database (using Python 2.6).
When trying to display any object contents, I get the following error :
URL: /var/local/eggs/zodbbrowser-0.10.3-py2.7.egg/zodbbrowser/templates/zodbinfo.pt
File '/var/local/eggs/Paste-1.7.5.1-py2.7.egg/paste/evalexception/middleware.py', line 306 in respond
app_iter = self.application(environ, detect_start_response)
File '/var/local/eggs/WebOb-1.2b2-py2.7.egg/webob/dec.py', line 132 in __call__
resp = self.call_func(req, *args, **self.kwargs)
File '/var/local/eggs/WebOb-1.2b2-py2.7.egg/webob/dec.py', line 197 in call_func
return self.func(req, *args, **kwargs)
File '/var/local/eggs/fanstatic-0.11.3-py2.7.egg/fanstatic/publisher.py', line 234 in __call__
return request.get_response(self.app)
File '/var/local/eggs/WebOb-1.2b2-py2.7.egg/webob/request.py', line 1149 in get_response
application, catch_exc_info=False)
File '/var/local/eggs/WebOb-1.2b2-py2.7.egg/webob/request.py', line 1118 in call_application
app_iter = application(self.environ, start_response)
File '/var/local/eggs/WebOb-1.2b2-py2.7.egg/webob/dec.py', line 132 in __call__
resp = self.call_func(req, *args, **self.kwargs)
File '/var/local/eggs/WebOb-1.2b2-py2.7.egg/webob/dec.py', line 197 in call_func
return self.func(req, *args, **kwargs)
File '/var/local/eggs/fanstatic-0.11.3-py2.7.egg/fanstatic/injector.py', line 52 in __call__
response = request.get_response(self.app)
File '/var/local/eggs/WebOb-1.2b2-py2.7.egg/webob/request.py', line 1149 in get_response
application, catch_exc_info=False)
File '/var/local/eggs/WebOb-1.2b2-py2.7.egg/webob/request.py', line 1118 in call_application
app_iter = application(self.environ, start_response)
File '/var/local/eggs/Paste-1.7.5.1-py2.7.egg/paste/translogger.py', line 68 in __call__
return self.application(environ, replacement_start_response)
File '/var/local/env/ztfy/src/webapp/startup.py', line 32 in wrapper
return app(environ, start_response)
File '/var/local/eggs/zope.app.wsgi-3.10.0-py2.7.egg/zope/app/wsgi/__init__.py', line 59 in __call__
request = publish(request, handle_errors=handle_errors)
File '/var/local/eggs/zope.publisher-3.12.6-py2.7.egg/zope/publisher/publish.py', line 132 in publish
result = publication.callObject(request, obj)
File '/var/local/eggs/zope.app.publication-3.12.0-py2.7.egg/zope/app/publication/zopepublication.py', line 207 in callObject
return mapply(ob, request.getPositionalArguments(), request)
<bound method ZodbInfoView.__call__ of <zope.browserpage.metaconfigure.ZodbInfoView object at 0x6251850>>
File '/var/local/eggs/zope.publisher-3.12.6-py2.7.egg/zope/publisher/publish.py', line 107 in mapply
return debug_call(obj, args)
File '/var/local/eggs/zope.publisher-3.12.6-py2.7.egg/zope/publisher/publish.py', line 113 in debug_call
return obj(*args)
File '/var/local/eggs/zodbbrowser-0.10.3-py2.7.egg/zodbbrowser/browser.py', line 91 in __call__
return self.render()
File '/var/local/eggs/zodbbrowser-0.10.3-py2.7.egg/zodbbrowser/browser.py', line 149 in render
return self.template()
File '/var/local/eggs/zope.browserpage-3.12.2-py2.7.egg/zope/browserpage/viewpagetemplatefile.py', line 83 in __call__
return self.im_func(im_self, *args, **kw)
File '/var/local/eggs/zope.browserpage-3.12.2-py2.7.egg/zope/browserpage/viewpagetemplatefile.py', line 51 in __call__
sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
File '/var/local/eggs/zope.pagetemplate-3.6.3-py2.7.egg/zope/pagetemplate/pagetemplate.py', line 132 in pt_render
strictinsert=0, sourceAnnotations=sourceAnnotations
File '/var/local/eggs/zope.pagetemplate-3.6.3-py2.7.egg/zope/pagetemplate/pagetemplate.py', line 240 in __call__
interpreter()
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 271 in __call__
self.interpret(self.program)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 343 in interpret
handlers[opcode](self, args)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 888 in do_useMacro
self.interpret(macro)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 343 in interpret
handlers[opcode](self, args)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 533 in do_optTag_tal
self.do_optTag(stuff)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 518 in do_optTag
return self.no_tag(start, program)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 513 in no_tag
self.interpret(program)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 343 in interpret
handlers[opcode](self, args)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 858 in do_defineMacro
self.interpret(macro)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 343 in interpret
handlers[opcode](self, args)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 946 in do_defineSlot
self.interpret(slot)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 343 in interpret
handlers[opcode](self, args)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 533 in do_optTag_tal
self.do_optTag(stuff)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 518 in do_optTag
return self.no_tag(start, program)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 513 in no_tag
self.interpret(program)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 343 in interpret
handlers[opcode](self, args)
File '/var/local/eggs/zope.tal-3.5.2-py2.7.egg/zope/tal/talinterpreter.py', line 583 in do_setLocal_tal
self.engine.setLocal(name, self.engine.evaluateValue(expr))
Line 87, Column 2
In expression: <PathExpr standard:u'view/listHistory'>
- Names:
{'args': (),
'context': <onf.medialib.media.folder.MediaFolder object at 0x508c938>,
'default': <object object at 0xb3c450>,
'loop': {},
'nothing': None,
'options': {},
'repeat': {},
'request': <zope.publisher.browser.BrowserRequest instance URL=http://172.23.109.204:8080/++skin++ZMI/medias/++medias++/2012/@@zodbbrowser>,
'template': <zope.browserpage.viewpagetemplatefile.ViewPageTemplateFile object at 0x54eb3d0>,
'view': <zope.browserpage.metaconfigure.ZodbInfoView object at 0x6251850>,
'views': <zope.browserpage.viewpagetemplatefile.ViewMapper object at 0x61e0810>}
File '/var/local/eggs/zope.tales-3.5.2-py2.7.egg/zope/tales/tales.py', line 696 in evaluate
return expression(self)
File '/var/local/eggs/zope.tales-3.5.2-py2.7.egg/zope/tales/expressions.py', line 217 in __call__
return self._eval(econtext)
File '/var/local/eggs/zope.tales-3.5.2-py2.7.egg/zope/tales/expressions.py', line 211 in _eval
return ob()
File '/var/local/eggs/zodbbrowser-0.10.3-py2.7.egg/zodbbrowser/browser.py', line 380 in listHistory
diff = compareDictsHTML(curState, oldState, d['tid'])
File '/var/local/eggs/zodbbrowser-0.10.3-py2.7.egg/zodbbrowser/diff.py', line 118 in compareDictsHTML
html.append(IValueRenderer(value).render(tid))
File '/var/local/eggs/zodbbrowser-0.10.3-py2.7.egg/zodbbrowser/value.py', line 241 in render
value = self.delegate_to(obj).render(tid, can_link=False)
File '/var/local/eggs/zodbbrowser-0.10.3-py2.7.egg/zodbbrowser/value.py', line 79 in render
text = self._repr()
File '/var/local/eggs/zodbbrowser-0.10.3-py2.7.egg/zodbbrowser/value.py', line 69 in _repr
u64(self.context._p_oid))
File '/var/local/eggs/ZODB3-3.10.5-py2.7-linux-x86_64.egg/ZODB/utils.py', line 82 in u64
return unpack(">Q", v)[0]
error: unpack requires a string argument of length 8
CGI Variables
-------------
CONTENT_LENGTH: '0'
HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_CHARSET: 'UTF-8,*;q=0.5'
HTTP_ACCEPT_ENCODING: 'gzip,deflate,sdch'
HTTP_ACCEPT_LANGUAGE: 'fr,en-US;q=0.8,en;q=0.6,en-GB;q=0.4'
HTTP_CACHE_CONTROL: 'max-age=0'
HTTP_CONNECTION: 'keep-alive'
HTTP_COOKIE: 'zope3_cs_15272f7b=fr1-jvnwVQpWaX6mw9r8j2dHy1wLElupkS2mkdNtIao8VN.qOF4Q7E; LibraryLayout=%7B%22west%22%3A%7B%22size%22%3A250%2C%22initClosed%22%3Afalse%2C%22initHidden%22%3Afalse%7D%7D; InnerLayout=%7B%22north%22%3A%7B%22size%22%3A80%2C%22initClosed%22%3Afalse%2C%22initHidden%22%3Afalse%7D%2C%22south%22%3A%7B%22size%22%3A230%2C%22initClosed%22%3Afalse%2C%22initHidden%22%3Afalse%7D%7D'
HTTP_HOST: '172.23.109.204:8080'
HTTP_REFERER: 'http://172.23.109.204:8080/++skin++ZMI/medias/++medias++/2012/@@introspector.html'
HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4'
PATH_INFO: '/++skin++ZMI/medias/++medias++/2012/@@zodbbrowser'
REMOTE_ADDR: '172.23.109.204'
REQUEST_METHOD: 'GET'
SERVER_NAME: '172.23.109.204'
SERVER_PORT: '8080'
SERVER_PROTOCOL: 'HTTP/1.1'
WSGI Variables
--------------
application: <fanstatic.publisher.Delegator object at 0x2a19dd0>
fanstatic.needed: <fanstatic.core.NeededResources object at 0x3ab03d0>
paste.evalexception: <z3c.evalexception.ZopeEvalException object at 0x2a03390>
paste.evalexception.debug_count: 1355844767
paste.httpserver.thread_pool: <paste.httpserver.ThreadPool object at 0x3946210>
paste.throw_errors: True
webob.adhoc_attrs: {'response': <Response at 0x29fdf50 200 OK>}
wsgi process: 'Multithreaded'
wsgi.handleErrors: False
Best regards,
Thierry
Can you test if this patch is sufficient to make this problem go away?