[SERVER-63685] Make the symbolizer more patch build friendly Created: 15/Feb/22  Updated: 29/Oct/23  Resolved: 29/Aug/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 6.0 Desired, 7.1.0-rc0

Type: Improvement Priority: Major - P3
Reporter: Tausif Rahman (Inactive) Assignee: Zack Winter
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Server Development Platform
Backwards Compatibility: Fully Compatible
Participants:

 Description   

I tried running the symbolizer on a patch build backtrace. The patch build did not include the generate_buildid_to_debug_symbols_mapping task, so the symbolizer failed. It would be nice if the symbolizer worked on most/all PB backtraces so that SERVER engineers can confidently use the symbolizer for any backtrace.

This could be achieved by adding the generate_buildid_to_debug_symbols_mapping functionality to "generate resmoke tasks", or something similar.



 Comments   
Comment by Githook User [ 28/Aug/23 ]

Author:

{'name': 'Zack Winter', 'email': 'zack.winter@mongodb.com', 'username': 'zackwintermdb'}

Message: SERVER-63685 Add symbolizer mapping generator to the dependency of all compile variants
Branch: master
https://github.com/mongodb/mongo/commit/d03a09765c0109e462d7df4b444c323c0634993b

Comment by Tausif Rahman (Inactive) [ 22/Aug/23 ]

Hey zack.winter@mongodb.com. It's been a while since I've looked at some of this `generate_buildid_to_debug_symbols_mapping` stuff & I think my original idea to do this at the "task level" isn't really necessary. Here are some of my thoughts:

  • If `generate_buildid_to_debug_symbols_mapping` works at variant level (which I think it should because a "build" typically happens once per variant) maybe we can just add the `generate_buildid_to_debug_symbols_mapping` task to one of the "compile variant dependency" variants?
    • "compile variant dependency": Variants can share compiles for the same architectures so we have the "variants dependency" to share compiles and speed up patch builds. I "think" if we just add the debug symbols task here, we are essentially adding it at the top level, so that all other variants naturally inherit this task.
  • The "generate resmoke tasks" task is a bit nuanced & related to the task-generator. I wrote this ticket a long time ago and didn't know much about how it worked so my apologies if that was misleading.
    • Another problem with my initial idea of putting this in a test  related "task" is that it doesn't really make sense because we really only need this mapping on "build" tasks.

Let me know if that helps, happy to discuss further.

Comment by Zack Winter [ 18/Aug/23 ]

Hey tausif.rahman@mongodb.com

After looking at generate_buildid_to_debug_symbols_mapping I thought of a few possible ways to invoke it from “generate resmoke tasks”:

  1. Convert “generate resmoke tasks” from a function into a task group and then add “generate_buildid_to_debug_symbols_mapping” in as a task
  2. Call “generate_buildid_debug_symbols_mapping.sh” directly from “generate resmoke tasks”
  3. "generate resmoke tasks” ends up calling “gen_tasks_activate.sh”. Update that script to invoke “generate_buildid_debug_symbols_mapping.sh” if it’s called with a flag (like “—generate-buildid-mappings” or something)

#1 seems like the cleanest but I don’t know how much of a pain it’ll be to convert a function to a task group, whereas the other two are simpler but involve some minor duplication. I’m leaning towards #2 right now.

Also, if I understand correctly, “debugsymb_mapper.py” takes in a variant name as a parameter and performs a mapping on all of the debug symbols associated with it. For this ticket, will I have to convert it to instead take in a task name as a parameter and perform a mapping on only the debug symbols associated with that task?

Comment by Alex Neben [ 14/Aug/23 ]

Would this be related to trevor.guidry@mongodb.com 's work of the hang analyzer? I don't think so but just want to confirm we are not stepping on toes here.

Generated at Thu Feb 08 05:58:23 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.