perf(worker): Batch testrun updates in flake processing#811
perf(worker): Batch testrun updates in flake processing#811sentry[bot] wants to merge 1 commit intomainfrom
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 6fdc95b. Configure here.
| @sentry_sdk.trace | ||
| def process_single_upload( | ||
| upload: ReportSession, curr_flakes: dict[bytes, Flake], repo_id: int | ||
| upload_id: int, |
There was a problem hiding this comment.
Unused upload_id parameter in process_single_upload
Low Severity
The upload_id parameter was added to process_single_upload but is never referenced in the function body. The function only iterates over the testruns list and uses curr_flakes and repo_id. This dead parameter adds confusion about the function's contract and could mislead future developers into thinking it's used internally.
Reviewed by Cursor Bugbot for commit 6fdc95b. Configure here.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #811 +/- ##
=======================================
Coverage 92.25% 92.25%
=======================================
Files 1306 1306
Lines 48004 48012 +8
Branches 1636 1636
=======================================
+ Hits 44286 44294 +8
Misses 3407 3407
Partials 311 311
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |


Fixes WORKER-Y7G. The issue was that: Missing eager loading of
Testrunobjects forReportSessions causes N+1 queries withinprocess_flakes_for_commitloop.get_testrunsintoget_testruns_for_uploadsto fetch testruns for multiple uploads simultaneously.process_single_uploadto accept pre-fetched testruns, eliminating individual database queries within the loop.Testrunoutcome bulk updates into a single operation withinprocess_flakes_for_commitafter all uploads have been processed.This fix was generated by Seer in Sentry, triggered automatically. 👁️ Run ID: 13305954
Not quite right? Click here to continue debugging with Seer.
Legal Boilerplate
Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. In 2022 this entity acquired Codecov and as result Sentry is going to need some rights from me in order to utilize my contributions in this PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.
Note
Medium Risk
Changes the query/update strategy for
Testrunrows during flake processing (batch fetch + deferred bulk update), which could impact correctness if upload scoping or update ordering assumptions were relied on, though overall logic is unchanged.Overview
Reduces N+1 queries in flake processing by fetching all recent
Testrunrows for a commit’s uploads in a single query (get_testruns_for_uploads) and grouping them byupload_id.Refactors
process_single_uploadto operate on pre-fetched testruns and defers allTestrun.outcomewrites into onebulk_updateafter processing all uploads, instead of updating per upload.Reviewed by Cursor Bugbot for commit 6fdc95b. Bugbot is set up for automated code reviews on this repo. Configure here.