You have been subscribed to a public bug:

https://code.launchpad.net/maas-project/+activereviews times out with
OOPS-e35685f694a2d3e2a03d3a9c3598c04b.  EXPLAIN (ANALYZE, BUFFERS) of
the slow query says:

 Sort  (cost=22784.36..22784.36 rows=2 width=864) (actual 
time=8487.022..8487.023 rows=7 loops=1)
   Sort Key: branchmergeproposal.date_created DESC, branchmergeproposal.id
   Sort Method: quicksort  Memory: 31kB
   Buffers: shared hit=1636424
   ->  Unique  (cost=22784.18..22784.33 rows=2 width=864) (actual 
time=8486.988..8487.009 rows=7 loops=1)
         Buffers: shared hit=1636424
         ->  Sort  (cost=22784.18..22784.18 rows=2 width=864) (actual 
time=8486.987..8486.987 rows=7 loops=1)
               Sort Key: branchmergeproposal.commit_message, 
branchmergeproposal.date_created, branchmergeproposal.date_merged, 
branchmergeproposal.date_review_requested, branchmergeproposal.date_reviewed, 
branchmergeproposal.description, branchmergeproposal.id, 
branchmergeproposal.merge_reporter, branchmergeproposal.merged_revision_id, 
branchmergeproposal.merged_revno, branchmergeproposal.dependent_branch, 
branchmergeproposal.dependent_git_commit_sha1, 
branchmergeproposal.dependent_git_path, 
branchmergeproposal.dependent_git_repository, branchmergeproposal.queue_status, 
branchmergeproposal.registrant, branchmergeproposal.reviewed_revision_id, 
branchmergeproposal.reviewer, branchmergeproposal.root_message_id, 
branchmergeproposal.source_branch, branchmergeproposal.source_git_commit_sha1, 
branchmergeproposal.source_git_path, branchmergeproposal.source_git_repository, 
branchmergeproposal.superseded_by, branchmergeproposal.target_branch, 
branchmergeproposal.target_git_commit_sha1, 
branchmergeproposal.target_git_path, branchmergeproposal.target_git_repository, 
branchmergeproposal.whiteboard
               Sort Method: quicksort  Memory: 31kB
               Buffers: shared hit=1636424
               ->  Append  (cost=636.84..22784.17 rows=2 width=864) (actual 
time=8486.947..8486.950 rows=7 loops=1)
                     Buffers: shared hit=1636424
                     ->  Sort  (cost=636.84..636.85 rows=1 width=944) (actual 
time=59.592..59.592 rows=0 loops=1)
                           Sort Key: branchmergeproposal.date_created DESC, 
branchmergeproposal.id
                           Sort Method: quicksort  Memory: 25kB
                           Buffers: shared hit=44221
                           CTE candidate_branches
                             ->  Nested Loop  (cost=26.63..356.32 rows=69 
width=4) (actual time=0.036..17.506 rows=8557 loops=1)
                                   Buffers: shared hit=10099
                                   InitPlan 4 (returns $5)
                                     ->  Aggregate  (cost=4.25..4.26 rows=1 
width=32) (actual time=0.072..0.072 rows=1 loops=1)
                                           Buffers: shared hit=35
                                           ->  Index Scan using 
teamparticipation_person_idx on teamparticipation teamparticipation_2  
(cost=0.43..4.24 rows=2 width=4) (actual time=0.013..0.052 rows=42 loops=1)
                                                 Index Cond: (person = 862235)
                                                 Buffers: shared hit=35
                                   InitPlan 5 (returns $7)
                                     ->  Aggregate  (cost=21.65..21.66 rows=1 
width=32) (actual time=1.749..1.749 rows=1 loops=1)
                                           Buffers: shared hit=1461
                                           ->  Nested Loop  (cost=0.85..21.64 
rows=1 width=4) (actual time=0.024..1.432 rows=1931 loops=1)
                                                 Buffers: shared hit=1461
                                                 ->  Index Scan using 
teamparticipation_person_idx on teamparticipation teamparticipation_3  
(cost=0.43..4.24 rows=2 width=4) (actual time=0.008..0.031 rows=42 loops=1)
                                                       Index Cond: (person = 
862235)
                                                       Buffers: shared hit=35
                                                 ->  Index Only Scan using 
accesspolicygrant__grantee__policy__key on accesspolicygrant 
accesspolicygrant_1  (cost=0.42..8.66 rows=4 width=8) (actual time=0.004..0.027 
rows=46 loops=42)
                                                       Index Cond: (grantee = 
teamparticipation_3.team)
                                                       Heap Fetches: 1931
                                                       Buffers: shared hit=1426
                                   ->  Index Scan using product_project_idx on 
product product_1  (cost=0.29..9.36 rows=4 width=4) (actual time=0.016..0.018 
rows=3 loops=1)
                                         Index Cond: (project = 698)
                                         Buffers: shared hit=5
                                   ->  Index Scan using 
branch__product__owner__name__key on branch  (cost=0.42..79.82 rows=44 width=8) 
(actual time=0.009..5.432 rows=2852 loops=3)
                                         Index Cond: (product = product_1.id)
                                         Filter: ((information_type = ANY 
('{1,2}'::integer[])) OR COALESCE((access_grants && $5), false) OR 
COALESCE((ARRAY[access_policy] && $7), false))
                                         Buffers: shared hit=10094
                           ->  Hash Semi Join  (cost=4.22..280.52 rows=1 
width=944) (actual time=59.586..59.586 rows=0 loops=1)
                                 Hash Cond: (branchmergeproposal.target_branch 
= candidate_branches_1.id)
                                 Buffers: shared hit=44221
                                 ->  Nested Loop  (cost=1.98..278.27 rows=3 
width=944) (actual time=37.029..37.029 rows=0 loops=1)
                                       Buffers: shared hit=34122
                                       ->  HashAggregate  (cost=1.55..2.24 
rows=69 width=4) (actual time=3.878..6.003 rows=8557 loops=1)
                                             Group Key: candidate_branches.id
                                             ->  CTE Scan on candidate_branches 
 (cost=0.00..1.38 rows=69 width=4) (actual time=0.001..0.807 rows=8557 loops=1)
                                       ->  Index Scan using 
branchmergeproposal__source_branch__idx on branchmergeproposal  
(cost=0.42..3.99 rows=1 width=944) (actual time=0.003..0.003 rows=0 loops=8557)
                                             Index Cond: (source_branch = 
candidate_branches.id)
                                             Filter: (queue_status = ANY 
('{3,2}'::integer[]))
                                             Rows Removed by Filter: 1
                                             Buffers: shared hit=34122
                                 ->  Hash  (cost=1.38..1.38 rows=69 width=4) 
(actual time=22.543..22.543 rows=8557 loops=1)
                                       Buckets: 16384 (originally 1024)  
Batches: 1 (originally 1)  Memory Usage: 429kB
                                       Buffers: shared hit=10099
                                       ->  CTE Scan on candidate_branches 
candidate_branches_1  (cost=0.00..1.38 rows=69 width=4) (actual 
time=0.038..20.592 rows=8557 loops=1)
                                             Buffers: shared hit=10099
                     ->  Sort  (cost=22147.29..22147.30 rows=1 width=944) 
(actual time=8427.353..8427.354 rows=7 loops=1)
                           Sort Key: branchmergeproposal_1.date_created DESC, 
branchmergeproposal_1.id
                           Sort Method: quicksort  Memory: 31kB
                           Buffers: shared hit=1592203
                           CTE candidate_repositories
                             ->  Nested Loop  (cost=28.33..78.49 rows=1 
width=4) (actual time=0.040..2.588 rows=89 loops=1)
                                   Buffers: shared hit=1595
                                   InitPlan 1 (returns $0)
                                     ->  Aggregate  (cost=4.25..4.26 rows=1 
width=32) (actual time=0.063..0.063 rows=1 loops=1)
                                           Buffers: shared hit=35
                                           ->  Index Scan using 
teamparticipation_person_idx on teamparticipation  (cost=0.43..4.24 rows=2 
width=4) (actual time=0.013..0.049 rows=42 loops=1)
                                                 Index Cond: (person = 862235)
                                                 Buffers: shared hit=35
                                   InitPlan 2 (returns $2)
                                     ->  Aggregate  (cost=21.65..21.66 rows=1 
width=32) (actual time=1.745..1.745 rows=1 loops=1)
                                           Buffers: shared hit=1461
                                           ->  Nested Loop  (cost=0.85..21.64 
rows=1 width=4) (actual time=0.016..1.444 rows=1931 loops=1)
                                                 Buffers: shared hit=1461
                                                 ->  Index Scan using 
teamparticipation_person_idx on teamparticipation teamparticipation_1  
(cost=0.43..4.24 rows=2 width=4) (actual time=0.006..0.029 rows=42 loops=1)
                                                       Index Cond: (person = 
862235)
                                                       Buffers: shared hit=35
                                                 ->  Index Only Scan using 
accesspolicygrant__grantee__policy__key on accesspolicygrant  (cost=0.42..8.66 
rows=4 width=8) (actual time=0.003..0.027 rows=46 loops=42)
                                                       Index Cond: (grantee = 
teamparticipation_1.team)
                                                       Heap Fetches: 1931
                                                       Buffers: shared hit=1426
                                   ->  Index Scan using product_project_idx on 
product  (cost=0.29..9.36 rows=4 width=4) (actual time=0.008..0.011 rows=3 
loops=1)
                                         Index Cond: (project = 698)
                                         Buffers: shared hit=5
                                   ->  Bitmap Heap Scan on gitrepository  
(cost=2.12..10.77 rows=4 width=8) (actual time=0.022..0.850 rows=30 loops=3)
                                         Recheck Cond: (project = product.id)
                                         Filter: ((information_type = ANY 
('{1,2}'::integer[])) OR COALESCE((access_grants && $0), false) OR 
COALESCE((ARRAY[access_policy] && $2), false))
                                         Heap Blocks: exact=87
                                         Buffers: shared hit=1590
                                         ->  Bitmap Index Scan on 
gitrepository__project__id__idx  (cost=0.00..2.12 rows=5 width=0) (actual 
time=0.008..0.008 rows=30 loops=3)
                                               Index Cond: (project = 
product.id)
                                               Buffers: shared hit=7
                           ->  Nested Loop Semi Join  (cost=0.02..22068.79 
rows=1 width=944) (actual time=1528.623..8427.311 rows=7 loops=1)
                                 Join Filter: 
(branchmergeproposal_1.target_git_repository = candidate_repositories_1.id)
                                 Rows Removed by Join Filter: 406
                                 Buffers: shared hit=1592203
                                 ->  Nested Loop  (cost=0.02..22068.76 rows=1 
width=944) (actual time=1528.606..8427.197 rows=7 loops=1)
                                       Join Filter: 
(branchmergeproposal_1.source_git_repository = candidate_repositories.id)
                                       Rows Removed by Join Filter: 1071286
                                       Buffers: shared hit=1592203
                                       ->  HashAggregate  (cost=0.02..0.03 
rows=1 width=4) (actual time=2.670..2.956 rows=89 loops=1)
                                             Group Key: 
candidate_repositories.id
                                             Buffers: shared hit=1595
                                             ->  CTE Scan on 
candidate_repositories  (cost=0.00..0.02 rows=1 width=4) (actual 
time=0.043..2.624 rows=89 loops=1)
                                                   Buffers: shared hit=1595
                                       ->  Seq Scan on branchmergeproposal 
branchmergeproposal_1  (cost=0.00..21917.71 rows=12081 width=944) (actual 
time=0.033..92.441 rows=12037 loops=89)
                                             Filter: (queue_status = ANY 
('{3,2}'::integer[]))
                                             Rows Removed by Filter: 311620
                                             Buffers: shared hit=1590608
                                 ->  CTE Scan on candidate_repositories 
candidate_repositories_1  (cost=0.00..0.02 rows=1 width=4) (actual 
time=0.001..0.007 rows=59 loops=7)
 Planning time: 12.965 ms
 Execution time: 8487.565 ms
(118 rows)

This appears to be due to missing indexes on
BranchMergeProposal(*_git_repository).

** Affects: ubuntu
     Importance: Critical
     Assignee: martin (mukamuka)
         Status: Fix Released


** Tags: code-review lp-code oops timeout
-- 
/maas-project/+activereviews times out
https://bugs.launchpad.net/bugs/1847090
You received this bug notification because you are a member of Ubuntu Bugs, 
which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to