Two of the three time out while checking for a valid person in ObjectImageDisplayPersonAPI(person)._get_custom_icon_url. Eliding some of these evaluations would help. But they don't seem to be the biggest time sink. The big one happens earlier on:
Each of the three oopses' query log shows a gap of about 5 seconds (!) between the join that fetches Bugs and BugBranches for the batch, and the query that gets its SpecificationBranches. Something big and costly is going on inbetween.
The two queries seem to be coming from adjacent calls to branch_ids_with_bug_links and branch_ids_with_spec_links respectively in BranchListingItemsMixin._createItem.
Only two things happen between those two queries: marshaling, and:
set(bug_branch.branch.id for bug_branch in bug_branches)
All the example oopses here occur at about the same point in the template, branch-listing.pt:
Two of the three time out while checking for a valid person in ObjectImageDisp layPersonAPI( person) ._get_custom_ icon_url. Eliding some of these evaluations would help. But they don't seem to be the biggest time sink. The big one happens earlier on:
Each of the three oopses' query log shows a gap of about 5 seconds (!) between the join that fetches Bugs and BugBranches for the batch, and the query that gets its SpecificationBr anches. Something big and costly is going on inbetween.
The two queries seem to be coming from adjacent calls to branch_ ids_with_ bug_links and branch_ ids_with_ spec_links respectively in BranchListingIt emsMixin. _createItem.
Only two things happen between those two queries: marshaling, and: