[SERVER-67928] UBSAN builder separate-debug=off still create debugsymbols archive Created: 09/Jul/22 Updated: 02/Feb/24 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Daniel Moody | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | code-analysis | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Build
|
| Participants: |
| Description |
|
There may not exist any relationship between the --separate-debug=off and packaging of the debugsymbols archive. When --separate-debug=off, the debug symbols are in the binaries and there is nothing and no reason to package up the debugsymbols archive. Its not known what all builders are affected by this, but here is an example of empty debugsymbols archive task Looking at the compile_dist_test task dependency, it was built with --separate-debug=off. This ticket is to create some mechanism so that empty debugsymbols archives are not created as their existence is confusing and misleading. |
| Comments |
| Comment by Andrew Morrow (Inactive) [ 29/Sep/22 ] |
|
One possibility here would be to make it so that if --separate-debug=off, then the debug role would simply not exist, so there would be no x-debug targets and no associated archive. What I don't like about that is that it would complicate the evergreen setup, because certain tasks like archiving the debug symbols would fail since the target wouldn't exist, and we would then need to find a way to skip those tasks. That might be even more confusing for developers since the file they expect to obtain wouldn't even exist. Given that, I think producing the empty debug symbols archive is the right thing to do: the debug symbols archive is the stuff you need to add in order to be able to do symbolic debugging. If that happens to be nothing, an empty archive is appropriate and I don't see that it causes much harm. We could consider creating a README.debug file or something that always got staged in under the common role that explained that an empty archive means that the debug symbols were not separated and are expected to be found in the executables. That might help alleviate any confusion. But I'm not sure it is necessary. I read the discussion, and it didn't seem like it caused that much confusion in practice: just a clarifying question. I'm inclined to close this as works as designed. |