[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: SERVER-75380 archive integration test binaries on failure
Branch: master
https://github.com/mongodb/mongo/commit/293535c6e1dc7a07035b91f7e46a6ca60a4b62d9

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.

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