Conversation
|
GNU testsuite comparison: |
Too many benchmarks in a single uploadThe performance report could not be generated because there were too many benchmarks in a single upload to CodSpeed. We recommend sharding your benchmarks into smaller uploads, with max 1000 benchmarks per upload. See the documentation for more information. |
|
I think |
|
I've incorporated these changed into #11893 |
|
Is it able to reduce 15 lines at your PR? |
|
@codspeedbot why have we started getting "Too many benchmarks in a single upload" error when number of benchmarks haven't changed? |
Based on my investigation, here's what I found: Your repository currently has 310 benchmarks in total (155 unique benchmarks × 2 modes: simulation + memory), spread across 62 matrix jobs (31 packages × 2 modes). Each individual shard contains only 5–20 benchmarks, which is well under the 1,000 per-upload recommendation. Looking at recent CodSpeed runs for this repository:
Since the same benchmark configuration succeeds for some runs and fails for others — and the total count is far below the 1,000 limit — this is an intermittent issue on the CodSpeed platform side, not a problem with your repository configuration. I've flagged this for the CodSpeed engineering team to investigate. In the meantime, re-running the benchmark workflow should resolve the error for this PR. Summary
|
|
11893 was trying to dedup write and flush previously and use match and not merging flush.
This merges flush only and I don't want to use match.
|
| self.writers.retain_mut(|writer| { | ||
| writer | ||
| .write_all(buf) | ||
| .and_then(|_| writer.flush()) // avoid buffering |
There was a problem hiding this comment.
Would you provide more detail?
There was a problem hiding this comment.
Specifically the unused arg for and_then
There was a problem hiding this comment.
But this very reasonable way to chain flush. Is there any alternative without a bunch of dupes?
There was a problem hiding this comment.
let res = (|| {
writer.write_all(buf)?;
writer.flush()?;
Ok(())
})();
is long...
There was a problem hiding this comment.
Can be reduced to:
(|| {
writer.write_all(buf)?;
writer.flush()
})()Once try_blocks are stabilised, this becomes cleaner:
try {
writer.write_all(buf)?;
writer.flush()?;
}There was a problem hiding this comment.
Can we keep chain with the form?
@xtqqczze the codspeed failures are due to something that changed on our end. We have temporarily reverted the changes while we fix the issue. Retrying your runs should now succeed. Sorry for this |
This comment is an informational update from the CodSpeed team — no code or configuration changes are needed in the repository. To summarize for @xtqqczze: the "Too many benchmarks in a single upload" error was caused by a temporary change on the CodSpeed platform side and has since been reverted. Re-running the CI workflows on this PR should now produce the performance report successfully. Summary
|
|
@GuillaumeLagrange thanks for the quick "fix"! |
|
@xtqqczze Ok. @cakebaker Please ignore this PR and merge #11893 . Sorry for confusing you. |
We always flush() after write. So we don't need 2 functions.
Closes #11893 .