summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Moody <daniel.moody@mongodb.com>2022-04-04 20:33:46 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-04-04 21:37:48 +0000
commit0493b83069d0a2597e8be9023afb480efb507c09 (patch)
treebc6275c1ea0372cb9d80aa5590ba0a10b841a6f3
parent6fe4ec2625b638abb709a002c765d23cfe9e4fd6 (diff)
downloadmongo-0493b83069d0a2597e8be9023afb480efb507c09.tar.gz
SERVER-64999 added icecc sanitizer build guard rail about SERVER-59243.
-rw-r--r--SConstruct20
1 files changed, 20 insertions, 0 deletions
diff --git a/SConstruct b/SConstruct
index e9815de0358..1d93db8371d 100644
--- a/SConstruct
+++ b/SConstruct
@@ -635,6 +635,12 @@ add_option('visibility-support',
type='choice',
)
+# TODO Remove this flag once SERVER-64999 is complete
+add_option("force-icecc-sanitizers",
+ help="Force the use of icecream with sanitizer builds, ignoring denylist issues from SERVER-59243.",
+ nargs=0,
+)
+
try:
with open("version.json", "r") as version_fp:
version_data = json.load(version_fp)
@@ -3538,6 +3544,20 @@ def doConfigure(myenv):
# Unconditionally using the full path can affect SCons cached builds, so we only do
# this in cases where we know it's going to matter.
if 'ICECC' in env and env['ICECC']:
+ # We impose some guard rails to make sure users are aware of the issues around
+ # using icecream and sanitizers in networks which may have older iceccd remotes
+ # part of the network. Refer to SERVER-59243 for related issues.
+ # TODO Remove this flag once SERVER-64999 is complete
+ if not has_option("force-icecc-sanitizers"):
+ env.FatalError(textwrap.dedent("""
+ ERROR: Using icecream with sanitizers that use denylist files has known issues
+ which cause the denylist to fail to be correctly applied. This will occur
+ if the network you are building in contains remote icecream hosts which
+ are older than icecc version 1.3. This will cause failures during
+ exectution of the code. If you are aware of the risks, you can force
+ icecream sanitizer builds with the '--force-icecc-sanitizers' option.
+ """))
+
# Make these files available to remote icecream builds if requested.
# These paths *must* be absolute to match the paths in the remote
# toolchain archive.