[SERVER-73168] diminish the ServiceExecutor benchmark under ASAN Created: 21/Jan/23 Updated: 27/Oct/23 Resolved: 07/Feb/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Billy Donahue | Assignee: | Billy Donahue |
| Resolution: | Gone away | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Backport Requested: |
v6.2
|
||||||||||||||||
| Sprint: | Service Arch 2023-01-23, Service Arch 2023-02-06, Service Arch 2023-02-20 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Linked BF Score: | 21 | ||||||||||||||||
| Description |
|
Since the service_executor_bm benchmark was introduced in This comment on that BF explains the situation. Under ASAN, the benchmark has trouble allocating threads quickly.
ASAN builds are extremely slow, and they don't generate useful benchmark results. We would run a benchmark under ASAN to find correctness issues in the benchmark, but the benchmark's generated numbers aren't representative of production and not really useful. I think it would be prudent to have the benchmark's code detect ASAN with a preprocessor ifdef. If it's an ASAN build, it would run the benchmark loop once instead of the full amount that the benchmark library specifies. This should fix the ASAN mapping problem as we won't be generating an inordinate number of threads anymore. This small tweak to the benchmark should be backported to v6.2 as well. |
| Comments |
| Comment by Billy Donahue [ 07/Feb/23 ] |
|
The BF that prompted this ticket hasn't seen a recurrence on master branch since November and we've changed the relevant code and target platform since then. I think we can just put this one down with no further action. The session_workflow_bm seems to be running successfully on relevant buildvariants. |
| Comment by Billy Donahue [ 28/Jan/23 ] |
|
> In ASAN we can just have the whole benchmark ifdef away. That also failed because resmoke fails if there are no benchmarks to run. Also tried defining a "Dummy" benchmark to work around this. That also failed for resmoke-related reasons. |
| Comment by Billy Donahue [ 26/Jan/23 ] |
|
I'm seeing hangs in the benchmark even with a pretty conservative patch to suppress the looping under ASAN. There may even be a bug in the benchmark library happening here. I tried 3 different ways to do this and ended up with something that hangs, produces infinite logs, and that I can't locally reproduce. I feel this ticket isn't worth more investigation. In ASAN we can just have the whole benchmark ifdef away. |
| Comment by Billy Donahue [ 25/Jan/23 ] |
|
Needs another tweak. Last commit failed on an ASAN builders with DEBUG on. |
| Comment by Githook User [ 25/Jan/23 ] |
|
Author: {'name': 'Billy Donahue', 'email': 'billy.donahue@mongodb.com', 'username': 'BillyDonahue'}Message: |