← Back to team overview

launchpad-dev team mailing list archive

Re: What does SQL-nostore means?

 

Hi William,

On 11-10-14 07:50 PM, William Grant wrote:
> 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.

Ah right! I wasn't looking at the right traverse_subscription
implementation (was looking actually at the one in Code!)

Thanks for the clarifications!

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

-- 
Francis J. Lacoste
francis.lacoste@xxxxxxxxxxxxx

Attachment: signature.asc
Description: OpenPGP digital signature


References