Launchpad gets bogus data from memcached

Bug #954232 reported by Aaron Bentley
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Launchpad itself
Fix Released
Critical
Deryck Hodge

Bug Description

As seen in the following oopses: OOPS-d2bb7e643b3bec12048bc7bb6b8fdd01 OOPS-c65580688f20f2ecc14f478d296a326e

  TypeError: 'NoneType' object is unsubscriptable

    Traceback (most recent call last):
  Module zope.publisher.publish, line 134, in publish
    result = publication.callObject(request, obj)
  Module lp.services.webapp.publication, line 499, in callObject
    return mapply(ob, request.getPositionalArguments(), request)
  Module zope.publisher.publish, line 109, in mapply
    return debug_call(obj, args)
   - __traceback_info__: <security proxied zope.browserpage.metaconfigure.SimpleViewClass from /srv/launchpad.net/production/launchpad-rev-14933/lib/lp/app/browser/../templates/root-index.pt instance at 0x17bd5bd0>
  Module zope.publisher.publish, line 115, in debug_call
    return obj(*args)
  Module lp.services.webapp.publisher, line 392, in __call__
    return self.render()
  Module lp.services.webapp.publisher, line 377, in render
    return self.template()
  Module zope.app.pagetemplate.viewpagetemplatefile, line 83, in __call__
    return self.im_func(im_self, *args, **kw)
  Module zope.app.pagetemplate.viewpagetemplatefile, line 51, in __call__
    sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
  Module zope.pagetemplate.pagetemplate, line 113, in pt_render
    strictinsert=0, sourceAnnotations=sourceAnnotations)()
  Module zope.tal.talinterpreter, line 271, in __call__
    self.interpret(self.program)
  Module zope.tal.talinterpreter, line 343, in interpret
    handlers[opcode](self, args)
  Module zope.tal.talinterpreter, line 888, in do_useMacro
    self.interpret(macro)
  Module zope.tal.talinterpreter, line 343, in interpret
    handlers[opcode](self, args)
  Module zope.tal.talinterpreter, line 533, in do_optTag_tal
    self.do_optTag(stuff)
  Module zope.tal.talinterpreter, line 518, in do_optTag
    return self.no_tag(start, program)
  Module zope.tal.talinterpreter, line 513, in no_tag
    self.interpret(program)
  Module zope.tal.talinterpreter, line 343, in interpret
    handlers[opcode](self, args)
  Module zope.tal.talinterpreter, line 531, in do_optTag_tal
    self.no_tag(stuff[-2], stuff[-1])
  Module zope.tal.talinterpreter, line 513, in no_tag
    self.interpret(program)
  Module zope.tal.talinterpreter, line 343, in interpret
    handlers[opcode](self, args)
  Module zope.tal.talinterpreter, line 852, in do_condition
    self.interpret(block)
  Module zope.tal.talinterpreter, line 343, in interpret
    handlers[opcode](self, args)
  Module zope.tal.talinterpreter, line 533, in do_optTag_tal
    self.do_optTag(stuff)
  Module zope.tal.talinterpreter, line 518, in do_optTag
    return self.no_tag(start, program)
  Module zope.tal.talinterpreter, line 513, in no_tag
    self.interpret(program)
  Module zope.tal.talinterpreter, line 343, in interpret
    handlers[opcode](self, args)
  Module zope.tal.talinterpreter, line 946, in do_defineSlot
    self.interpret(slot)
  Module zope.tal.talinterpreter, line 343, in interpret
    handlers[opcode](self, args)
  Module lp.services.memcache.tales, line 319, in do_insertText_tal
    text = self.engine.evaluateText(stuff[0])
  Module lp.services.memcache.tales, line 361, in evaluateText
    text = self.evaluate(expr)
  Module zope.tales.tales, line 696, in evaluate
    return expression(self)
   - /srv/launchpad.net/production/launchpad-rev-14933/lib/lp/app/browser/../templates/root-index.pt
   - Line 147, Column 12
   - Expression: <MemcacheExpr public, 1 hour>
   - Names:
      {'args': (),
       'context': <lp.services.webapp.publisher.RootObject object at 0x4533a90>,
       'default': <object object at 0x2b4f2c2bc490>,
       'loop': {},
       'nothing': None,
       'options': {},
       'repeat': {},
       'request': <lp.services.webapp.servers.LaunchpadBrowserRequest instance URL=https://launchpad.net/index.html>,
       'template': <z3c.ptcompat.ViewPageTemplateFile object at 0x9018150>,
       'view': <zope.browserpage.metaconfigure.SimpleViewClass from /srv/launchpad.net/production/launchpad-rev-14933/lib/lp/app/browser/../templates/root-index.pt object at 0x17bd5bd0>,
       'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper object at 0x15711bd0>}
  Module lp.services.memcache.tales, line 262, in __call__
    cached_chunk = getUtility(IMemcacheClient).get(key)
  Module lp.services.memcache.client, line 50, in get
    return memcache.Client.get(self, key)
  Module memcache, line 779, in get
    return self._get('get', key)
  Module memcache, line 762, in _get
    rkey, flags, rlen, = self._expectvalue(server)
  Module memcache, line 874, in _expectvalue
    if line[:5] == 'VALUE':
TypeError: 'NoneType' object is unsubscriptable

Related branches

Revision history for this message
Robert Collins (lifeless) wrote :

From the dupe: 'This looks to me an awful lot like bug 728359, which is fixed in latest python-memcached.' - just upgrading our python-memcached version should fix things.

Deryck Hodge (deryck)
Changed in launchpad:
assignee: nobody → Deryck Hodge (deryck)
status: Triaged → In Progress
Revision history for this message
Launchpad QA Bot (lpqabot) wrote :
tags: added: qa-needstesting
Changed in launchpad:
status: In Progress → Fix Committed
Deryck Hodge (deryck)
tags: added: qa-untestable
removed: qa-needstesting
William Grant (wgrant)
Changed in launchpad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.