BugNomination:+editstatus timeout for bugs with many tasks
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
Critical
|
Curtis Hovey |
Bug Description
Symptoms
========
When trying to approve nominations on bugs that have a large number of projects, launchpad times out.
For example, bug #706999 or bug #732628.
This is preventing the security team and kernel team's workflow from accurately tracking kernel issues.
Analysis
========
death by sql: multiple heat lookup calls, each of which is slow (30ms) for a very large aggregate. The high sql time is commonly correlated with poor sql utilisation, so I would ignore it until the sql statement count is sane (< 100 queries).
Also see bug 724080 which may show up as soon as this particular code path is fixed.
3. 45 1322 29 1293 SQL-main-master
SELECT MAX(Bug.heat), SUM(Bug.heat), COUNT(Bug.id)
FROM Bug,
BugTask
WHERE BugTask.bug = Bug.id
AND BugTask.
AND BugTask.
AND Bug.duplicateof IS NULL
AND BugTask.status IN ($INT ... $INT)
Related branches
- Raphaël Badin (community): Approve
-
Diff: 367 lines (+287/-14)2 files modifiedlib/lp/registry/model/distributionsourcepackage.py (+97/-13)
lib/lp/registry/tests/test_distributionsourcepackage.py (+190/-1)
- Raphaël Badin (community): Approve
-
Diff: 151 lines (+76/-17)2 files modifiedlib/lp/bugs/model/bugtarget.py (+10/-17)
lib/lp/bugs/tests/test_bugnomination.py (+66/-0)
- Brad Crittenden (community): Approve (code)
-
Diff: 151 lines (+17/-76)2 files modifiedlib/lp/bugs/model/bugtarget.py (+17/-10)
lib/lp/bugs/tests/test_bugnomination.py (+0/-66)
- Gavin Panella (community): Approve
-
Diff: 151 lines (+76/-17)2 files modifiedlib/lp/bugs/model/bugtarget.py (+10/-17)
lib/lp/bugs/tests/test_bugnomination.py (+66/-0)
- Graham Binns (community): Approve (code)
-
Diff: 1594 lines (+722/-269)10 files modifiedlib/lp/bugs/configure.zcml (+13/-0)
lib/lp/bugs/doc/bugsubscription.txt (+4/-4)
lib/lp/bugs/interfaces/bug.py (+3/-2)
lib/lp/bugs/interfaces/bugtask.py (+1/-1)
lib/lp/bugs/model/bug.py (+180/-100)
lib/lp/bugs/model/structuralsubscription.py (+84/-41)
lib/lp/bugs/model/tests/test_bug.py (+82/-8)
lib/lp/bugs/model/tests/test_bugsubscriptioninfo.py (+239/-99)
lib/lp/bugs/tests/test_structuralsubscription.py (+100/-2)
lib/lp/registry/model/distributionsourcepackage.py (+16/-12)
- Jeroen T. Vermeulen (community): Approve
-
Diff: 1541 lines (+706/-257)9 files modifiedlib/lp/bugs/configure.zcml (+13/-0)
lib/lp/bugs/doc/bugsubscription.txt (+4/-4)
lib/lp/bugs/interfaces/bug.py (+3/-2)
lib/lp/bugs/interfaces/bugtask.py (+1/-1)
lib/lp/bugs/model/bug.py (+180/-100)
lib/lp/bugs/model/structuralsubscription.py (+84/-41)
lib/lp/bugs/model/tests/test_bug.py (+82/-8)
lib/lp/bugs/model/tests/test_bugsubscriptioninfo.py (+239/-99)
lib/lp/bugs/tests/test_structuralsubscription.py (+100/-2)
- Curtis Hovey (community): Approve (code)
-
Diff: 655 lines (+22/-484)9 files modifiedlib/lp/bugs/doc/bug-heat.txt (+0/-82)
lib/lp/bugs/interfaces/bug.py (+2/-2)
lib/lp/bugs/model/bug.py (+13/-37)
lib/lp/bugs/model/bugtask.py (+7/-14)
lib/lp/bugs/model/tests/test_bugtask.py (+0/-11)
lib/lp/bugs/tests/test_bugheat.py (+0/-220)
lib/lp/bugs/tests/test_bugnomination.py (+0/-52)
lib/lp/bugs/tests/test_duplicate_handling.py (+0/-64)
lib/lp/codehosting/scanner/tests/test_buglinks.py (+0/-2)
- j.c.sackett (community): Approve
-
Diff: 218 lines (+88/-21)6 files modifiedlib/lp/bugs/doc/bugtask.txt (+15/-0)
lib/lp/bugs/interfaces/bug.py (+3/-0)
lib/lp/bugs/interfaces/bugtask.py (+4/-0)
lib/lp/bugs/model/bug.py (+4/-0)
lib/lp/bugs/model/bugnomination.py (+2/-2)
lib/lp/bugs/model/bugtask.py (+60/-19)
- Ian Booth (community): Approve
-
Diff: 277 lines (+154/-5)7 files modifiedlib/lp/bugs/doc/bugsubscription.txt (+1/-0)
lib/lp/bugs/interfaces/bug.py (+8/-0)
lib/lp/bugs/model/bug.py (+41/-3)
lib/lp/bugs/model/bugtask.py (+5/-2)
lib/lp/bugs/model/tests/test_bugtask.py (+36/-0)
lib/lp/bugs/tests/test_bug_notification_recipients.py (+62/-0)
lib/lp/bugs/tests/test_bugchanges.py (+1/-0)
Changed in launchpad: | |
status: | Confirmed → Triaged |
tags: | added: timeout |
description: | updated |
description: | updated |
summary: |
- Nominations stop working when bugs have large number of projects + BugNomination:+editstatus timeout for bugs with many tasks |
tags: | added: escalated |
Changed in launchpad: | |
assignee: | nobody → Gavin Panella (allenap) |
status: | Triaged → In Progress |
tags: |
added: qa-ok removed: qa-needstesting |
Changed in launchpad: | |
status: | Fix Committed → In Progress |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |
Changed in launchpad: | |
status: | Fix Released → Triaged |
Changed in launchpad: | |
assignee: | Gavin Panella (allenap) → William Grant (wgrant) |
status: | Triaged → In Progress |
tags: |
added: qa-ok removed: qa-needstesting |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |
Changed in launchpad: | |
status: | Fix Released → Triaged |
Changed in launchpad: | |
assignee: | William Grant (wgrant) → nobody |
Changed in launchpad: | |
assignee: | nobody → Richard Harding (rharding) |
status: | Triaged → In Progress |
tags: |
added: qa-ok removed: qa-needstesting |
Changed in launchpad: | |
status: | Fix Committed → Triaged |
Changed in launchpad: | |
assignee: | Richard Harding (rharding) → nobody |
tags: | added: bug-nomination |
Changed in launchpad: | |
assignee: | nobody → Curtis Hovey (sinzui) |
status: | Triaged → In Progress |
tags: |
added: qa-ok removed: qa-needstesting |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |
This should be marked with Importance 'High' as this is affecting Ubuntu's ability and effectiveness in maintaining the kernel cadence.