← Back to team overview

launchpad-dev team mailing list archive

Re: What does SQL-nostore means?

 

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".

Attachment: signature.asc
Description: OpenPGP digital signature


Follow ups

References