Branch:+huge-vocabulary timeout (Person and team AJAX picker fails)

Bug #655802 reported by Francis J. Lacoste
24
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Launchpad itself
Fix Released
High
Edwin Grubbs

Bug Description

https://lp-oops.canonical.com/oops.py/?oopsid=1740EC788

https://code.edge.launchpad.net/%7Elaunchpad-pqm/lp-production-configs/trunk/@@+huge-vocabulary?name=ValidPersonOrTeam&search_text=john%20Arbash%20Meinel&batch=6&start=0

Branch: launchpad-rev-9783.5
Revno: 11676
SQL time: 12913 ms
Non-sql time: 94 ms
Total time: 13007 ms
Statement Count: 26

Long SQL Statements (Shows up to five statements) top

Time Reps Database id Statement
1 8903.0 1 SQL-launchpad-main-slave SELECT COUNT(*) FROM (SELECT Person.account, Person.creation_comment, Person.creation_rationale, Person.datecreated, Person.defaultmembershipperiod, Person.defaultrenewalperiod, Person.displayname, Person.hide_email_addresses, Person.homepage_content, Person.icon, Person.id, Person.logo, Person.mailing_list_auto_subscribe_policy, Person.merged, Person.mugshot, Person.name, Person.personal_standing, Person.personal_standing_reason, Person.registrant, Person.renewal_policy, Person.subscriptionpolicy, Person.teamdescription, Person.teamowner, Person.verbose_bugnotifications, Person.visibility FROM (SELECT DISTINCT Person.account, Person.creation_comment, Person.creation_rationale, Person.datecreated, Person.defaultmembershipperiod, Person.defaultrenewalperiod, Person.displayname, Person.hide_email_addresses, Person.homepage_content, Person.icon, Person.id, Person.logo, Person.mailing_list_auto_subscribe_policy, Person.merged, Person.mugshot, Person.name, Person.personal_standing, Person.personal_standing_reason, Person.registrant, Person.renewal_policy, Person.subscriptionpolicy, Person.teamdescription, Person.teamowner, Person.verbose_bugnotifications, Person.visibility, Person.name = %s FROM ((SELECT Person.account, Person.creation_comment, Person.creation_rationale, Person.datecreated, Person.defaultmembershipperiod, Person.defaultrenewalperiod, Person.displayname, Person.hide_email_addresses, Person.homepage_content, Person.icon, Person.id, Person.logo, Person.mailing_list_auto_subscribe_policy, Person.merged, Person.mugshot, Person.name, Person.personal_standing, Person.personal_standing_reason, Person.registrant, Person.renewal_policy, Person.subscriptionpolicy, Person.teamdescription, Person.teamowner, Person.verbose_bugnotifications, Person.visibility FROM Person LEFT JOIN EmailAddress ON EmailAddress.person = Person.id LEFT JOIN Account ON EmailAddress.account = Account.id WHERE Person.id IN ( SELECT id FROM ( SELECT Person.id, 100 AS rank FROM Person WHERE name = %s UNION ALL SELECT Person.id, rank(fti, ftq(%s)) FROM Person WHERE Person.fti @@ ftq(%s) UNION ALL SELECT Person.id, 10 AS rank FROM Person, IrcId WHERE IrcId.person = Person.id AND lower(IrcId.nickname) = %s UNION ALL SELECT Person.id, 1 AS rank FROM Person, EmailAddress WHERE EmailAddress.person = Person.id AND lower(email) LIKE %s || '%%' ) AS public_subquery ORDER BY rank DESC LIMIT %s ) AND Person.visibility = %s AND Person.merged IS NULL AND (NOT (Person.teamowner IS NULL) OR Account.status = %s AND EmailAddress.status IN (%s, %s)) AND %s) UNION (SELECT Person.account, Person.creation_comment, Person.creation_rationale, Person.datecreated, Person.defaultmembershipperiod, Person.defaultrenewalperiod, Person.displayname, Person.hide_email_addresses, Person.homepage_content, Person.icon, Person.id, Person.logo, Person.mailing_list_auto_subscribe_policy, Person.merged, Person.mugshot, Person.name, Person.personal_standing, Person.personal_standing_reason, Person.registrant, Person.renewal_policy, Person.subscriptionpolicy, Person.teamdescription, Person.teamowner, Person.verbose_bugnotifications, Person.visibility FROM Person JOIN TeamParticipation ON TeamParticipation.team = Person.id WHERE Person.id IN ( SELECT Person.id FROM Person WHERE Person.fti @@ ftq(%s) LIMIT %s ) AND TeamParticipation.person = %s AND NOT (Person.teamowner IS NULL) AND Person.visibility = %s)) AS Person) AS Person ORDER BY (Person.name = %s) DESC, Person.displayname, Person.name LIMIT 100) AS "_tmp"
2 3899.0 1 SQL-launchpad-main-slave SELECT Person.account, Person.creation_comment, Person.creation_rationale, Person.datecreated, Person.defaultmembershipperiod, Person.defaultrenewalperiod, Person.displayname, Person.hide_email_addresses, Person.homepage_content, Person.icon, Person.id, Person.logo, Person.mailing_list_auto_subscribe_policy, Person.merged, Person.mugshot, Person.name, Person.personal_standing, Person.personal_standing_reason, Person.registrant, Person.renewal_policy, Person.subscriptionpolicy, Person.teamdescription, Person.teamowner, Person.verbose_bugnotifications, Person.visibility FROM (SELECT DISTINCT Person.account, Person.creation_comment, Person.creation_rationale, Person.datecreated, Person.defaultmembershipperiod, Person.defaultrenewalperiod, Person.displayname, Person.hide_email_addresses, Person.homepage_content, Person.icon, Person.id, Person.logo, Person.mailing_list_auto_subscribe_policy, Person.merged, Person.mugshot, Person.name, Person.personal_standing, Person.personal_standing_reason, Person.registrant, Person.renewal_policy, Person.subscriptionpolicy, Person.teamdescription, Person.teamowner, Person.verbose_bugnotifications, Person.visibility, Person.name = %s FROM ((SELECT Person.account, Person.creation_comment, Person.creation_rationale, Person.datecreated, Person.defaultmembershipperiod, Person.defaultrenewalperiod, Person.displayname, Person.hide_email_addresses, Person.homepage_content, Person.icon, Person.id, Person.logo, Person.mailing_list_auto_subscribe_policy, Person.merged, Person.mugshot, Person.name, Person.personal_standing, Person.personal_standing_reason, Person.registrant, Person.renewal_policy, Person.subscriptionpolicy, Person.teamdescription, Person.teamowner, Person.verbose_bugnotifications, Person.visibility FROM Person LEFT JOIN EmailAddress ON EmailAddress.person = Person.id LEFT JOIN Account ON EmailAddress.account = Account.id WHERE Person.id IN ( SELECT id FROM ( SELECT Person.id, 100 AS rank FROM Person WHERE name = %s UNION ALL SELECT Person.id, rank(fti, ftq(%s)) FROM Person WHERE Person.fti @@ ftq(%s) UNION ALL SELECT Person.id, 10 AS rank FROM Person, IrcId WHERE IrcId.person = Person.id AND lower(IrcId.nickname) = %s UNION ALL SELECT Person.id, 1 AS rank FROM Person, EmailAddress WHERE EmailAddress.person = Person.id AND lower(email) LIKE %s || '%%' ) AS public_subquery ORDER BY rank DESC LIMIT %s ) AND Person.visibility = %s AND Person.merged IS NULL AND (NOT (Person.teamowner IS NULL) OR Account.status = %s AND EmailAddress.status IN (%s, %s)) AND %s) UNION (SELECT Person.account, Person.creation_comment, Person.creation_rationale, Person.datecreated, Person.defaultmembershipperiod, Person.defaultrenewalperiod, Person.displayname, Person.hide_email_addresses, Person.homepage_content, Person.icon, Person.id, Person.logo, Person.mailing_list_auto_subscribe_policy, Person.merged, Person.mugshot, Person.name, Person.personal_standing, Person.personal_standing_reason, Person.registrant, Person.renewal_policy, Person.subscriptionpolicy, Person.teamdescription, Person.teamowner, Person.verbose_bugnotifications, Person.visibility FROM Person JOIN TeamParticipation ON TeamParticipation.team = Person.id WHERE Person.id IN ( SELECT Person.id FROM Person WHERE Person.fti @@ ftq(%s) LIMIT %s ) AND TeamParticipation.person = %s AND NOT (Person.teamowner IS NULL) AND Person.visibility = %s)) AS Person) AS Person ORDER BY (Person.name = %s) DESC, Person.displayname, Person.name LIMIT 7 OFFSET 0

Related branches

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

OOPS-1740EC788 OOPS-1740EC59 @@+huge-vocabulary. This is similar to the binaryAndSourcePackageName vocabulary issue. but the fixes will be separate.

Curtis Hovey (sinzui)
Changed in launchpad-registry:
milestone: none → series-future
summary: - Person and team AJAX pciker fails
+ Person and team AJAX picker fails
Revision history for this message
Robert Collins (lifeless) wrote : Re: Person and team AJAX picker fails

Is this a dup with either of
618356 Sprint:+huge-vocabulary takes a very long time consistently
or
618366 Question:+huge-vocabulary is often slow (10% of requests)
?

summary: - Person and team AJAX picker fails
+ Branch:+huge-vocabulary timeout (Person and team AJAX picker fails)
Revision history for this message
Curtis Hovey (sinzui) wrote :

I think this is just about getting persons and teams, but the sprint bug do not say which vocabulary is slow.

The slow question vocabulary issue is different code and a different kind of widget.

description: updated
tags: added: pg83
Changed in launchpad-registry:
assignee: nobody → Edwin Grubbs (edwin-grubbs)
status: Triaged → In Progress
Revision history for this message
Martin Pool (mbp) wrote :

This also seems to affect project search, eg when retargeting a task.

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

Projects (product or pillars) is a separate vocabulary.

Changed in launchpad-registry:
milestone: series-future → 10.11
Changed in launchpad-registry:
status: In Progress → Fix Committed
Revision history for this message
Launchpad QA Bot (lpqabot) wrote : Bug fixed by a commit
tags: added: qa-needstesting
tags: added: qa-ok
removed: qa-needstesting
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.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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