[SERVER-29331] Ensure pre-generated wiredtiger_config.h files are updated Created: 23/May/17  Updated: 06/Feb/23  Resolved: 06/Feb/23

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

Type: Bug Priority: Major - P3
Reporter: Alexander Gorrod Assignee: [DO NOT ASSIGN] Backlog - Server Development Platform Team (SDP) (Inactive)
Resolution: Won't Do Votes: 0
Labels: sdp-backlog-purge
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Server Development Platform
Operating System: ALL
Participants:

 Description   

The WiredTiger project uses autoconf to generate header files that enable and disable some functionality. Since MongoDB uses scons the MongoDB tree contains pre-generated versions of those files.

When a new variable is added that appears in wiredtiger_config.h the MongoDB files will be out of date, and there is no mechanism in place to monitor when they are out of date.

The particular files are (currently):
https://github.com/mongodb/mongo/tree/master/src/third_party/wiredtiger/build_darwin
https://github.com/mongodb/mongo/tree/master/src/third_party/wiredtiger/build_freebsd
https://github.com/mongodb/mongo/tree/master/src/third_party/wiredtiger/build_linux
https://github.com/mongodb/mongo/tree/master/src/third_party/wiredtiger/build_openbsd
https://github.com/mongodb/mongo/tree/master/src/third_party/wiredtiger/build_solaris



 Comments   
Comment by Iryna Zhuravlova [ 16/Nov/22 ]

After a careful backlog refinement, the team decided to close this ticket because of its low priority and limited resource capacity. If you believe that this ticket requires additional attention from the team and should be re-opened, feel free to change the status to "Needs Scheduling" and ping me or alexander.neben@mongodb.com 

Comment by Andrew Morrow (Inactive) [ 05/Jun/17 ]

This is a problem we face, in general, with all of our vendored packages, for which we pre-generate their configurations on our target platforms. The alternative would be that SCons would need to run autogen/autoconf/configure/make for each third party package on each build if it hadn't done it already. There would be some upsides to that, as we would get more faithful execution of the target build systems intended behavior, and we would no longer need to generate configurations ourselves, but we would need to translate our build options into equivalents for the target system, and it isn't always possible to do so with full fidelity. The downside would be a significant increase in cost for a first time build if anything in your build (debug vs opt, CCFLAGS, etc.) changed.

I'm not sure we should attempt this now, and we should probably just continue with the current approach, even though it does have some adverse effects, like needing to periodically regenerate configurations.

Comment by Alexander Gorrod [ 05/Jun/17 ]

It is usually built by autoconf/configure.

Comment by Andrew Morrow (Inactive) [ 05/Jun/17 ]

How is the wiredtiger_config.h file generated now? Is it a template that is interpolated (if so, what is the input file)? Some other mechanism?

Comment by Alexander Gorrod [ 23/May/17 ]

This will become even more relevant when the timestamp changes in WT-3181 are pulled into MongoDB

Generated at Thu Feb 08 04:20:32 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.