Timeout in product +rdf page

Bug #360699 reported by Diogo Matsubara
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Launchpad itself
Fix Released
High
Unassigned

Bug Description

As seen in OOPS-1199EC113 the Product:+rdf page is timing out with a high statement count (> 1600)

see also bug 30793 for code duplication issues - the same issue probably (does?) turn up on Person:+rdf for teams and very active people.

Related branches

tags: added: timeout
tags: added: registry-projects
Curtis Hovey (sinzui)
Changed in launchpad-registry:
importance: Undecided → High
milestone: none → 2.2.4
status: New → Triaged
Revision history for this message
Curtis Hovey (sinzui) wrote :

I'm lower this because this page is a low priority. This will be fixed when we work on the new project page. We will also examine what we want to do with the rdf pages.

Changed in launchpad-registry:
importance: High → Low
milestone: 2.2.4 → 2.2.7
Curtis Hovey (sinzui)
Changed in launchpad-registry:
milestone: 2.2.7 → none
Revision history for this message
Curtis Hovey (sinzui) wrote :

There are about 10 projects with more than 10 series. The series loops should exclude obsolete series, but that is not possible though the model object.

The main cause of timeouts is the expansion of the project owner team to all its members. The view/buildMemberData does a tremndous amount of work collecting member data. Can we only return admins, or provide links to each member's rdf?

Can we remove +rdf?

Revision history for this message
Robert Collins (lifeless) wrote : Re: [Bug 360699] Re: Timeout in product +rdf page

How many sql queries are we issuing? Even for pretty large teams we
should be able to get a couple thousand entries back and rendering in
a couple of seconds.

Revision history for this message
Curtis Hovey (sinzui) wrote :

The most recent report (OOPS-1686C911) shows 1424 queries. The view is trying to gather all the gpg keys of the members.

    SQL time: 8753 ms
    Non-sql time: 10027 ms

The report states there is only one repeated query (true), but you can see that after we get what appears to all the gpgkeys, from the library, they are gotten again. The buildMemberData is building cached data, but the template that iterates over it does not gain any benefit.

    def buildMemberData(self):
...
        for key in sshkeyset.getByPeople(members):
            members_by_id[key.personID].addSSHKey(key)
        for key in gpgkeyset.getGPGKeysForPeople(members):
            members_by_id[key.ownerID].addGPGKey(key)
        for email in emailset.getPreferredEmailForPeople(members):
            members_by_id[email.person.id].setPreferredEmail(email)
        return members

Revision history for this message
Curtis Hovey (sinzui) wrote :

bug 30793 suggests that Lp link to the user, do not embed the data. Fixing that bug may address this one. If we do not want to switch to linking to users, then we should close the older bug. I favor switching to links because we cannot batch projects and teams with huge data. Our only option is to allow the rdf client to construct the full data it wants from the reference links in the base data.

There is also the option of removing the RDF link because it is very disappointing. Users want DOAP and FOAF,

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

Linking would be fine, and in the rdf spirit.
DOAP and FOAF are rdf too; we can - and likely should - change our rdf
to be doap or foaf depending on the context.

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

High as per zero oops policy.

description: updated
Changed in launchpad-registry:
importance: Low → High
description: updated
Curtis Hovey (sinzui)
Changed in launchpad-registry:
assignee: nobody → Curtis Hovey (sinzui)
status: Triaged → In Progress
Curtis Hovey (sinzui)
Changed in launchpad-registry:
status: In Progress → Fix Committed
Curtis Hovey (sinzui)
Changed in launchpad-registry:
milestone: none → 10.10
Revision history for this message
Launchpad QA Bot (lpqabot) wrote : Bug fixed by a commit
tags: added: qa-needstesting
Curtis Hovey (sinzui)
tags: added: qa-ok
removed: qa-needstesting registry-projects
Curtis Hovey (sinzui)
Changed in launchpad-registry:
status: Fix Committed → Fix Released
Curtis Hovey (sinzui)
Changed in launchpad:
assignee: Curtis Hovey (sinzui) → nobody
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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