[SERVER-75380] C++ Integration Test Binaries are not archived on failure/when core-dumps are taken Created: 28/Mar/23 Updated: 29/Oct/23 Resolved: 23/Jun/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 7.1.0-rc0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | George Wangensteen | Assignee: | Trevor Guidry |
| Resolution: | Fixed | Votes: | 1 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Server Development Platform
|
| Backwards Compatibility: | Fully Compatible |
| Operating System: | ALL |
| Participants: |
| Description |
|
In tasks like this one, which run C++ integration tests, core dumps are correctly collected on crashes and hangs. However, because the C++ integration tests binaries are not archived independently, and because they are skipped by this condition in failed_unittest_gather.sh , the integration test binaries from which the core dumps are taken are not archived anywhere. This means they aren't accessible on spawnhosts for the task, etc, and means that the core dumps are essentially useless unless a server engineer can rebuild the binary from source on the spawnhost. I would like if we archived the integration test binaries so they fit into the same debugging workflow used for coredumps from server binaries and unittest binaries. |
| Comments |
| Comment by Githook User [ 23/Jun/23 ] |
|
Author: {'name': 'Trevor Guidry', 'email': 'trevor.guidry@mongodb.com', 'username': ''}Message: |
| Comment by Max Hirschhorn [ 01/Jun/23 ] |
|
I recently encountered this same limitation while working on BF-28919 and resorted to rebuilding the C++ integration tests on the same commit with the same compiler options. I wanted to mention uploading the executable file to S3 as the executable file exists now isn't sufficient as a change here because the compile_integration_test Evergreen task uses --separate-debug when compiling the C++ integration tests. That is to say the executable file is stripped. I think it would be fine to add separate_debug: off to the Evergreen task definition because on test failure we would want to package both the executable and debug symbols anyway. When the Evergreen task succeeds neither the executable nor debug symbols would be archived in S3. The alternative to omitting --separate-debug would be to have the compile_integration_test Evergreen task additional include the install-integration-tests-debug target to have the separate .debug files also installed into the build/install/ directory so they can be archived as well. |