401 Unauthorized OOPSes in the XMLRPC layer

Bug #364628 reported by Barry Warsaw
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Launchpad itself
Fix Released
Critical
Barry Warsaw

Bug Description

Every few days, we get a bunch of OOPSes from the internal XMLRPC server,
related to getMessageDispositions(). The OOPSes seem random and I can't
figure out why we're getting them, let alone why only occasionally.

For the record, here are a few representative OOPSes.

OOPS-1205MMX1

OOPS-867S560

Note that the first OOPS is on the Mailman side of the XMLRPC interface. It's
telling us the server is getting a 401 Unauthorized, but unfortunately it does
not tell us where or why.

The second OOPS is on the server side and its even more cryptic.

Traceback (innermost last):
  Module zope.publisher.publish, line 138, in publish
    result = publication.callObject(request, object)
  Module canonical.launchpad.webapp.publication, line 342, in callObject
    return mapply(ob, request.getPositionalArguments(), request)
  Module zope.publisher.publish, line 113, in mapply
    return debug_call(object, args)
   - __traceback_info__: <security proxied zope.app.publisher.xmlrpc.metaconfigure.MailingListAPIView instance at 0xbbb1e10>
  Module zope.publisher.publish, line 119, in debug_call
    return object(*args)
  Module canonical.launchpad.xmlrpc.mailinglist, line 216, in getMessageDispositions
    for held_message in message_set.getHeldMessagesWithStatus(status):
  Module sqlobject.main, line 1674, in __iter__
    return conn.iterSelect(self)
  Module sqlobject.dbconnection, line 903, in iterSelect
    select, keepConnection=True)))
  Module sqlobject.dbconnection, line 809, in __init__
    self.cursor = rawconn.cursor()
  Module canonical.launchpad.webapp.adapter, line 250, in cursor
    return super(ReconnectingPsycopgConnection, self).cursor()
  Module psycopgda.adapter, line 388, in cursor
    return PsycopgCursor(self.conn.cursor(), self)
  Module canonical.launchpad.webapp.adapter, line 446, in cursor
    return LaunchpadCursor(self)
  Module canonical.launchpad.webapp.adapter, line 215, in __init__
    self._ensureCursor()
  Module canonical.launchpad.webapp.adapter, line 218, in _ensureCursor
    self.connection._ensureConnected()
  Module canonical.launchpad.webapp.adapter, line 123, in _ensureConnected
    raise DisconnectionError('Already disconnected')
DisconnectionError: Already disconnected

Perhaps this isn't a mailing list problem, but just manifests itself in the
XMLRPC interface?

Barry Warsaw (barry)
affects: launchpad → launchpad-registry
Changed in launchpad-registry:
status: New → Triaged
tags: added: mailing-lists oops
summary: - Inexplicable OOPSes in getMessageDisposition()
+ Inexplicable OOPSes in getMessageDispositions()
Barry Warsaw (barry)
summary: - Inexplicable OOPSes in getMessageDispositions()
+ Inexplicable 401 Unauthorized OOPSes in the XMLRPC layer
Revision history for this message
Barry Warsaw (barry) wrote : Re: Inexplicable 401 Unauthorized OOPSes in the XMLRPC layer

This is caused by the permission change surrounding private membership teams. The XMLRPC server needs to unwrap mailing list teams to get to their .name attribute.

Revision history for this message
Barry Warsaw (barry) wrote :

Critical because it's leading to service outages.

Changed in launchpad-registry:
assignee: nobody → Barry Warsaw (barry)
importance: Undecided → Critical
milestone: none → 2.2.4
Barry Warsaw (barry)
summary: - Inexplicable 401 Unauthorized OOPSes in the XMLRPC layer
+ 401 Unauthorized OOPSes in the XMLRPC layer
Barry Warsaw (barry)
Changed in launchpad-registry:
status: Triaged → Fix Committed
Barry Warsaw (barry)
Changed in launchpad-registry:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related questions

Remote bug watches

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