On 15/10/11 09:03, Francis J. Lacoste wrote: > Hi, > > I'm investigating bug 823473: AttributeError getting archive > subscriptions for a given person > > The attribute error happens in ArchiveSubscriptionSet._getBySubscriber(). > > The None is the store, results of: > > store = Store.of(subscriber) > > There is no way that subscriber can be None here as it's passed in by > the caller, and the call site has an explicit check against the person > not existing.
The person doesn't exist, and traverse_subscription's check for that case is buggy. Our *Sets are very inconsistent -- PersonSet.getByName returns None when the person exists, rather than raising a NotFoundError. So it calls getBySubscriber(None, archive=some_archive), and boom. > So how can Store.of(subscriber) returns None when it was fetched from > the DB? > > If you look at the OOPS (2045DV1) SQL logs, you'll see that the two last > statements are the retrieving of the person and then a mysterious: > > SQL-nostore Transaction completed, > status: Active > > What does that mean? That's unrelated. Zope transactions transcend store boundaries, so commits are global. That line you quote represents an "import transaction; transaction.commit".
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Mailing list: https://launchpad.net/~launchpad-dev Post to : launchpad-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-dev More help : https://help.launchpad.net/ListHelp