[SERVER-42787] 4.2.0 regression (vs 4.0.12): Build failure with various system packages Created: 13/Aug/19 Updated: 29/Oct/23 Resolved: 14/Aug/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Build |
| Affects Version/s: | 4.2.0 |
| Fix Version/s: | 4.2.1, 4.3.1 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | James Harvey | Assignee: | Andrew Morrow (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||
| Backwards Compatibility: | Fully Compatible | ||||
| Operating System: | ALL | ||||
| Backport Requested: |
v4.2
|
||||
| Steps To Reproduce: | Have some or all of the mentioned system packages installed, and give scons the argument(s) telling it to use them instead of bringing in their source trees and building them as part of mongoDB. |
||||
| Sprint: | Dev Tools 2019-08-26 | ||||
| Participants: | |||||
| Description |
|
As of 4.0.12, it was possible to build mongoDB using system packages of libstemmer 0+337, pcre 8.43, wiredtiger 48bf8d (the commit specified in the mongodb git repo for this version), yaml-cpp 0.6.2, snappy 1.1.7, and zlib 1.2.11. This was done by giving scons the arguments: --use-system-pcre --use-system-snappy --use-system-yaml --use-system-zlib --use-system-wiredtiger --use-system-stemmer. As of 4.2.0, each of these now fail with errors like that given below. Is this an oversight, or is it intentional that 4.2.0 no longer works with these system packages? (For some time, system package versions of asio, icu, boost, and mongo-c haven't worked, and some of these have their own tickets open with answers of mongoDB having required custom patches in these.)
|
| Comments |
| Comment by Andrew Morrow (Inactive) [ 16/Aug/19 ] | |||||||||||||||
|
jamespharvey20@gmail.com - The fix has been backported and will be available in 4.2.1. If you would like to apply the above commit locally in your build of 4.2.0 it should work fine until 4.2.1 is released. | |||||||||||||||
| Comment by Githook User [ 16/Aug/19 ] | |||||||||||||||
|
Author: {'email': 'andrew.morrow@10gen.com', 'name': 'Andrew Morrow'}Message: (cherry picked from commit dc1afe419ba54d012e20a952fd565072b150e6ba) | |||||||||||||||
| Comment by Andrew Morrow (Inactive) [ 14/Aug/19 ] | |||||||||||||||
|
jamespharvey20@gmail.com - This has been fixed on master and will get backported to the v4.2 branch soon. | |||||||||||||||
| Comment by Githook User [ 14/Aug/19 ] | |||||||||||||||
|
Author: {'name': 'Andrew Morrow', 'email': 'andrew.morrow@10gen.com'}Message: | |||||||||||||||
| Comment by James Harvey [ 13/Aug/19 ] | |||||||||||||||
|
Andrew Morris - Yes, thanks, your patch resolves the original issue I posted, of the initial configuration giving an error of "KeyError". Your patch allows using all of the "--use-system-X" flags I mentioned. I run into a much later compilation error with "--use-system-wiredtiger" which should be completely unrelated to this issue, so I'm creating a new issue for that. But, this issue seems resolved. EDIT: Apparently your system interprets the two "--" prefixes I typed as a section to strikethrough. The visual preview before posting didn't show it this way. Not sure how to prevent it from doing that. Using noformat makes it all appear on one line, so I'm not using that. | |||||||||||||||
| Comment by Andrew Morrow (Inactive) [ 13/Aug/19 ] | |||||||||||||||
|
jamespharvey20@gmail.com - Could you give the following patch a quick test and see if it resolves the issue for you:
| |||||||||||||||
| Comment by Andrew Morrow (Inactive) [ 13/Aug/19 ] | |||||||||||||||
|
jamespharvey20@gmail.com - Thanks for the bug report. This is almost certainly a regression introduced during 4.2 development. We don't test those flags ourselves, though we arguably should, because none of the builds that we ship actually use them. I've wanted for a while to overhaul this part of the build system so it would actually do smart things like enforce minimum versions when selecting system packages, and require some sort of an override flag to enable the use-system options for packages that we have modified in some way. But for now, support is best effort. We will take a look at getting this fixed for 4.2.1. |