[SERVER-63354] fix macos dyld limit Created: 07/Feb/22  Updated: 29/Oct/23  Resolved: 08/Feb/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 5.3.0

Type: Bug Priority: Major - P3
Reporter: Benety Goh Assignee: Benety Goh
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Problem/Incident
Related
related to SERVER-63551 fix macos dyld limit Closed
is related to SERVER-62954 fix macos dyld limit Closed
is related to SERVER-61987 Change DatabaseHolder's map to be key... Closed
is related to SERVER-62391 Add "tid" field to oplog entries Closed
is related to SERVER-63058 Change StorageEngineImpl::listDatabas... Closed
is related to SERVER-62434 Implement query optimizer based on Pa... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Execution Team 2022-02-21
Participants:
Linked BF Score: 70

 Description   

The `mongod` binary under dynamically linked Mac OS build configuration recently is failing to start up due to an OS limitation on the size of the link graph. This is causing test suites in the CI system to fail (eg. jsCore). We can get dynamic builds on macOS to work again by reviewing some of the recent additions to the LIBDEPS edges in the SConscript files.



 Comments   
Comment by Githook User [ 08/Feb/22 ]

Author:

{'name': 'Benety Goh', 'email': 'benety@mongodb.com', 'username': 'benety'}

Message: SERVER-63354 make multitenancy library dependency private in collection_catalog, views, and storage_wiredtiger_core

This reduces the link graph size to stay under the macos dyld limit.
Changes LIBDEPS edges added in commit c81c668189f7c7a933661d1e225aacfdbc33840d.
Branch: master
https://github.com/mongodb/mongo/commit/07aa849de910187530cee7b89bc4954923ecbbf9

Comment by Githook User [ 08/Feb/22 ]

Author:

{'name': 'Benety Goh', 'email': 'benety@mongodb.com', 'username': 'benety'}

Message: SERVER-63354 make query/optimizer library dependency private in pipeline

This reduces the link graph size to stay under the macos dyld limit.
Changes LIBDEPS edges added in commit 50db8e9573e191ba2c193b4ef3dba6b5c6488f82.
Branch: master
https://github.com/mongodb/mongo/commit/1de25c244acce3fdb97e8b9c864b83c71bf3309a

Comment by Githook User [ 08/Feb/22 ]

Author:

{'name': 'Benety Goh', 'email': 'benety@mongodb.com', 'username': 'benety'}

Message: SERVER-63354 make multitenancy library dependency private in storage_engine_impl

This reduces the link graph size to stay under the macos dyld limit.
Changes LIBDEPS edges added in commit 1b18cd9b5dcb352c6fdd6b15d4bd0a40c0da35c3.
Branch: master
https://github.com/mongodb/mongo/commit/83ecd46379e8c73fe7753e14e7d98fde24981442

Comment by Githook User [ 08/Feb/22 ]

Author:

{'name': 'Benety Goh', 'email': 'benety@mongodb.com', 'username': 'benety'}

Message: SERVER-63354 make multitenancy library dependency private in oplog_entry

This reduces the link graph size to stay under the macos dyld limit.
Changes LIBDEPS edges added in commit f3b5c8b7ab5b2301a95cf588d9f20daf6c3df601.
Branch: master
https://github.com/mongodb/mongo/commit/930157fad364a870c6b0c7534958bd59e0a10da8

Comment by Benety Goh [ 07/Feb/22 ]

We can reduce the libraries in the link graph to get under the macOS dyld limit if we convert some of the LIBDEPS edges from these recent tickets into LIBDEPS_PRIVATE:

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