[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.

Generated at Thu Feb 08 06:09:25 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.