ProductSeries:+index timeouts
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
Critical
|
Robert Collins |
Bug Description
Summary
=======
A quadratic-in-teams scaling function was added during the new subscriptions work. This regressed page performance on pages that trigger expose_
lp.registry.
expose_
expose_
So each milestone view created is running the function and the function is slow (foo in a-list triggers quadratic lookup overhead). Fixing the repeated-
Details
=======
Attempting to access the page for a series on a project can timeout; https:/
Here is a few of the OOPs:
OOPS-1970DT594
OOPS-1970AX602
OOPS-1970J656
The oopses consistently show very high python time:
SQL time: 1221 ms
Non-sql time: 7942 ms
Total time: 9163 ms
Statement Count: 103
Things to look at:
* per-driver / milestone owner code paths
* get cody to generate a profile on https:/
15 0 7.6386 0.1779 lp.bugs.
+64305 0 4.1135 0.7071 +canonical.
+795 0 0.7276 0.0290 +canonical.
+2130 0 1.3259 0.0115 +storm.
+795 0 0.9399 0.0064 +zope.traversin
+795 0 0.0193 0.0031 +lp.registry.
+795 0 0.0011 0.0011 +<method 'append' of 'list' objects>
+15 0 0.0026 0.0004 +lp.registry.
+15 0 0.0003 0.0003 +<method 'providedBy' of '_interface_
+15 0 0.2975 0.0001 +lp.services.
+30 0 0.0330 0.0001 +zope.site.
drilling in:
67563 0 4.1408 0.7228 canonical.
+190530 0 3.2106 1.3876 +storm.
+135126 0 0.2074 0.2074 +<zope.
195453 0 3.3104 1.4272 storm.propertie
+195453 0 1.0463 0.7612 +storm.
+195395 0 0.4867 0.4779 +<method 'get' of 'storm.
+195395 0 0.3503 0.3503 +<storm.
So death-by linear-lookups in expose_
Related branches
- Gavin Panella (community): Approve
-
Diff: 74 lines (+25/-16)2 files modifiedlib/lp/bugs/browser/structuralsubscription.py (+23/-15)
lib/lp/bugs/browser/tests/test_expose.py (+2/-1)
summary: |
- Project series page can timeout + ProductSeries:+index timeouts |
description: | updated |
description: | updated |
description: | updated |
tags: | added: regression |
description: | updated |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |
tags: | added: critical-analysis |
I can't replicate this now, but OOPS-1970DT594 has some queries worth looking at (esp. a couple of often repeated ones that could be done in bulk instead).