-
Notifications
You must be signed in to change notification settings - Fork 110
Fix perf-simple-query email template crash and empty body issue #12235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Co-authored-by: juliayakovlev <[email protected]>
|
@copilot the problem is also that email body is empty. |
|
@copilot can you, please, check why the email body is empty |
The issue was that PerfSimpleQueryTest didn't override get_email_data(), causing the base class to overwrite the email_data.json file created by check_regression() with minimal data (only grafana_screenshots and reporter). Now get_email_data() reads from the existing email_data.json file created by check_regression(), preserving all the test statistics and results. Co-authored-by: juliayakovlev <[email protected]>
... Fixed in commit f98e49e. The issue was that |
The email body was empty because of this flow: Before Fix (commit 07dce1f):
After Fix:
The fix is in |
|
@copilot |
When check_regression() returns False (e.g., test not found in ES or missing statistics), it doesn't create email_data.json. This caused empty email bodies. Now the test captures the return value and creates a fallback email_data.json with basic information (test ID, job URL, N/A for stats) that will render with the user-friendly "data not available" message in the template. Co-authored-by: juliayakovlev <[email protected]>
The issue was that when |
|
I think this is similar to #12234, i.e. some fix might solve both. |
|
@copilot please, merge from master |
Merged master branch successfully. No conflicts - our changes to microbenchmarking_test.py and results_perf_simple_query.html template are preserved. |
|
@juliayakovlev do we still need this one ? |
Fix: Email for perf microbenchmark tests (perf-simple-query) sent empty
Problem
The perf-simple-query email had two related issues:
jinja2.exceptions.UndefinedError: 'str object' has no attribute 'items'{"grafana_screenshots": [], "reporter": "PerfSimpleQueryReporter"}Root Causes
Issue 1 - Template Crash: When
PerfSimpleQueryAnalyzer.check_regression()returnsFalse(test not found in ES or missing statistics), the template crashes trying to iterate over"N/A"strings.Issue 2 - Empty Email Body:
PerfSimpleQueryTestdidn't overrideget_email_data()→ base class overwrote file with minimal datacheck_regression()returningFalse→ no email_data.json created at allSolutions
Fix 1 - Template Robustness (commit bff4e61): Added conditional checks before accessing data in
results_perf_simple_query.htmlFix 2 - Email Data Preservation (commit 07dce1f): Added
get_email_data()override to read from existing email_data.jsonFix 3 - Fallback Data Creation (commit 153bd41): Capture return value from
check_regression()and create fallback email_data.json with informative content when it returnsFalseFix 4 - Merged master (this commit): Merged latest changes from master branch including related performance email fixes
Result
Emails always sent with meaningful content:
Original prompt
This section details on the original issue you should resolve
<issue_title>Email for perf microbenchmark tests (perf-simple-query) is sent empty.</issue_title>
<issue_description>Email for perf microbenchmark tests (perf-simple-query) is sent empty.
Failure :
Argus
Scylla version:
2026.1.0~dev-20251017.01bcafbe2460with build-idb2b802b8cf900a4e9e7609cdf8b205ef627c5223Kernel Version:
6.14.0-1014-awsExtra information
Installation details
Cluster size: 1 nodes (c7g.large)
Scylla Nodes used in this run:
OS / Image:
ami-06e80e987d374764d(aws: N/A)Test:
scylla-enterprise-perf-simple-query-weekly-microbenchmark_arm64Test id:
d41f34b1-90f3-4293-aa72-66e42be89d9bTest name:
scylla-enterprise/perf-regression/scylla-enterprise-perf-simple-query-weekly-microbenchmark_arm64Test config file(s):
Logs:
db-cluster-d41f34b1.tar.zst
schema-logs-d41f34b1.tar.zst
sct-runner-events-d41f34b1.tar.zst
sct-d41f34b1.log.tar.zst
parallel-timelines-report-d41f34b1.tar.zst
builder-d41f34b1.log.tar.gz
Jenkins job URL
Fixes #12232
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.