SERVER-119298: disable streams everywhere unless flag is present (#48696)

GitOrigin-RevId: a2ecd7c871bddbeb762bffbd6b4009f86d397aab
This commit is contained in:
Nathan Frank 2026-03-17 13:31:35 -05:00 committed by MongoDB Bot
parent 0adf06d394
commit 67d49e46ed
18 changed files with 187 additions and 155 deletions

View File

@ -153,7 +153,6 @@ common --flag_alias=build_otel=//bazel/config:build_otel
common --flag_alias=shared_archive=//bazel/config:shared_archive
common --flag_alias=skip_archive=//bazel/config:skip_archive
common --flag_alias=streams_release_build=//bazel/config:streams_release_build
common --flag_alias=disable_streams=//bazel/config:disable_streams
common --flag_alias=release=//bazel/config:release
common --flag_alias=build_enterprise=//bazel/config:build_enterprise
common --flag_alias=visibility_support=//bazel/config:visibility_support

View File

@ -21,7 +21,6 @@ load(
"dbg_level",
"debug_symbols",
"dev_stacktrace",
"disable_streams",
"disable_warnings_as_errors",
"dtlto",
"dwarf_version",
@ -2003,22 +2002,6 @@ selects.config_setting_group(
],
)
# --------------------------------------
# streams non release options
# --------------------------------------
disable_streams(
name = "disable_streams",
build_setting_default = False,
)
config_setting(
name = "streams_enabled",
flag_values = {
"//bazel/config:disable_streams": "False",
},
)
# --------------------------------------
# stream_release_build
# --------------------------------------
@ -2050,8 +2033,8 @@ selects.config_setting_group(
],
)
# The streams_release_build flag is effectively a guard to assure streams are not
# built on release builds. For non-release builds, it's not required.
# The streams_release_build flag is required to build streams for both release
# and non-release builds. This ensures streams are only built when explicitly enabled.
selects.config_setting_group(
name = "_streams_for_release_build",
match_all = [
@ -2066,9 +2049,9 @@ selects.config_setting_group(
name = "_streams_for_non_release_build",
match_all = [
":release_disabled",
":streams_release_build_enabled",
":platform_for_streaming_build",
":ssl_enabled_linux",
":streams_enabled",
],
)
@ -2764,7 +2747,7 @@ selects.config_setting_group(
)
selects.config_setting_group(
name = "enterprise_feature_streams_and_streams_build_enabled",
name = "enterprise_feature_queryable_and_streams_build_enabled",
match_all = [
":enterprise_feature_queryable_enabled",
":streams_release_build_required_setting",

View File

@ -433,19 +433,6 @@ streams_release_build = rule(
build_setting = config.bool(flag = True),
)
# =========
# disable-streams
# =========
disable_streams_provider = provider(
doc = """If set, will exclude the enterprise streams module in a non-release build.""",
fields = ["enabled"],
)
disable_streams = rule(
implementation = lambda ctx: disable_streams_provider(enabled = ctx.build_setting_value),
build_setting = config.bool(flag = True),
)
# =========
# visibility-support
# =========

View File

@ -31,3 +31,7 @@
- featureFlagTimeseriesUpdatesSupport
# TODO SERVER-112823 Enable featureFlagGetExecutorDeferredEngineChoice feature flag when fully compatible.
- featureFlagGetExecutorDeferredEngineChoice
# Streams feature flag is excluded by default because streams requires a separate build flag
# (--streams_release_build=True) to compile the streams code into the binary. Variants that
# support streams should explicitly enable this flag.
- featureFlagStreams

View File

@ -167,10 +167,25 @@ rules:
forbidden_task_tag: "experimental"
ignored_tasks: [
# TODO: remove this exception when SERVER-94572 is resolved
"benchmarks_streams",
"streams_gen",
"streams_kafka_gen",
"streams_kafka_gwproxy",
"streams_kafka_benchmark",
"streams_https",
"streams_lambda",
"streams_s3",
"streams_kinesis",
"streams_aspio",
"streams_aspio_iceberg_0",
"streams_aspio_iceberg_1",
"streams_aspio_iceberg_2",
"streams_aspio_iceberg_3",
"streams_aspio_iceberg_large",
"streams_aspio_iceberg_5",
"streams_aspio_utilities",
"streams_externaljs",
"streams_aspio_pubsub",
# TODO: remove these exceptions when SERVER-94573 is resolved
"selinux_rhel9_enterprise",
"selinux_rhel8_org",

View File

@ -244,7 +244,8 @@ tasks:
- <<: *gen_task_template
name: streams_gen
tags: ["assigned_to_jira_team_streams", "default", "streams_release_test"]
tags:
["assigned_to_jira_team_streams", "experimental", "streams_release_test"]
commands:
- func: "generate resmoke tasks"
vars:
@ -283,7 +284,8 @@ tasks:
- <<: *task_template
name: streams_https
tags: ["assigned_to_jira_team_streams", "default", "streams_release_test"]
tags:
["assigned_to_jira_team_streams", "experimental", "streams_release_test"]
commands:
- func: "do setup"
- func: "run tests"
@ -319,7 +321,7 @@ tasks:
tags:
[
"assigned_to_jira_team_streams",
"default",
"experimental",
"streams_release_test",
"requires_extra_system_deps",
]
@ -334,7 +336,7 @@ tasks:
tags:
[
"assigned_to_jira_team_streams",
"default",
"experimental",
"streams_release_test",
"requires_extra_system_deps",
]
@ -349,7 +351,7 @@ tasks:
tags:
[
"assigned_to_jira_team_streams",
"default",
"experimental",
"streams_release_test",
"requires_extra_system_deps",
]
@ -364,7 +366,7 @@ tasks:
tags:
[
"assigned_to_jira_team_streams",
"default",
"experimental",
"streams_release_test",
"requires_extra_system_deps",
]
@ -379,7 +381,7 @@ tasks:
tags:
[
"assigned_to_jira_team_streams",
"default",
"experimental",
"streams_release_test",
"requires_extra_system_deps",
]
@ -394,7 +396,7 @@ tasks:
tags:
[
"assigned_to_jira_team_streams",
"default",
"experimental",
"streams_release_test",
"requires_extra_system_deps",
]
@ -409,7 +411,7 @@ tasks:
tags:
[
"assigned_to_jira_team_streams",
"default",
"experimental",
"streams_release_test",
"requires_extra_system_deps",
]
@ -424,7 +426,7 @@ tasks:
tags:
[
"assigned_to_jira_team_streams",
"default",
"experimental",
"streams_release_test",
"requires_extra_system_deps",
]
@ -439,7 +441,7 @@ tasks:
tags:
[
"assigned_to_jira_team_streams",
"default",
"experimental",
"streams_release_test",
"requires_extra_system_deps",
]
@ -455,7 +457,7 @@ tasks:
tags:
[
"assigned_to_jira_team_streams",
"default",
"experimental",
"streams_release_test",
"requires_extra_system_deps",
]

View File

@ -4,6 +4,12 @@
# should NOT run on a new rapid release (v7.1, v7.2 etc.)
# and LTS release (v7.0, v6.0 etc.) branch projects
variables:
- &sys_perf_compile_expansions
platform: linux
project_dir: dsi
has_packages: false
buildvariants:
- name: enterprise-amazon2023-streams
display_name: "Amazon Linux 2023 enterprise streams"
@ -23,12 +29,14 @@ buildvariants:
multiversion_edition: enterprise-streams
compile_variant: enterprise-amazon2023-streams
large_distro_name: amazon2023.3-c5-24xlarge
packager_distro: amazon2023
tasks:
- name: compile_and_archive_dist_test_TG
distros:
- amazon2023.3-c5-24xlarge
- name: aggregation
- name: .streams_release_test
- name: streams_build_only_gen
- name: generate_buildid_to_debug_symbols_mapping
- name: enterprise-amazon2023-streams-arm64
@ -51,12 +59,14 @@ buildvariants:
multiversion_edition: enterprise-streams
compile_variant: enterprise-amazon2023-streams-arm64
large_distro_name: amazon2023.3-arm64-xxxlarge
packager_distro: amazon2023
tasks:
- name: compile_and_archive_dist_test_TG
distros:
- amazon2023.3-arm64-xxxlarge
- name: aggregation
- name: .streams_release_test
- name: streams_build_only_gen
- name: generate_buildid_to_debug_symbols_mapping
# TODO(SERVER-120489): There are issues with these variants that need to be investigated/fixed
@ -165,8 +175,7 @@ buildvariants:
- name: run_unit_tests_TG
distros:
- rhel8.8-xlarge
- name: streams_gen
- name: streams_https
- name: .streams_release_test !.requires_extra_system_deps !streams_kafka_gen !streams_kafka_benchmark !streams_kafka_gwproxy !streams_s3
- name: generate_buildid_to_debug_symbols_mapping
- name: enterprise-rhel8-streams-aubsan
@ -204,6 +213,43 @@ buildvariants:
- name: run_unit_tests_TG
distros:
- rhel8.8-xlarge
- name: streams_gen
- name: streams_https
- name: .streams_release_test !.requires_extra_system_deps !streams_kafka_gen !streams_kafka_benchmark !streams_kafka_gwproxy
- name: generate_buildid_to_debug_symbols_mapping
# DSI perf harness variant
- name: amazon2023-x86-streams-compile
display_name: "* Compile Streams Amazon Linux 2023 x86 for sys-perf"
tags: ["suggested"]
cron: "0 1,5,9,13,17,21 * * *" # From the ${project_required_suggested_cron} parameter
expansions:
<<: *sys_perf_compile_expansions
compile_variant: amazon2023-x86-streams-compile
bazel_compile_flags: >-
--define=MONGO_DISTMOD=amazon2023
--release=True
--streams_release_build=True
skip_debug_link: true
run_on:
- amazon2023.3-xlarge
tasks:
- name: compile_and_package_serial_no_unittests_TG
- name: package_supplementary_data
# DSI perf harness variant
- name: amazon2023-arm64-streams-compile
display_name: "* Compile Streams Amazon Linux 2023 arm64 for sys-perf"
tags: ["suggested"]
cron: "0 1,5,9,13,17,21 * * *" # From the ${project_required_suggested_cron} parameter
expansions:
<<: *sys_perf_compile_expansions
compile_variant: amazon2023-arm64-streams-compile
bazel_compile_flags: >-
--define=MONGO_DISTMOD=amazon2023
--release=True
--streams_release_build=True
skip_debug_link: true
run_on:
- amazon2023.3-arm64-xlarge
tasks:
- name: compile_and_package_serial_no_unittests_TG
- name: package_supplementary_data

View File

@ -48,24 +48,7 @@ buildvariants:
distros:
- amazon2023.3-c5-24xlarge
- name: aggregation
- name: streams_gen
- name: streams_kafka_gen
- name: streams_kafka_gwproxy
- name: streams_kafka_benchmark
- name: streams_https
- name: streams_lambda
- name: streams_s3
- name: streams_kinesis
- name: streams_aspio
- name: streams_aspio_iceberg_0
- name: streams_aspio_iceberg_1
- name: streams_aspio_iceberg_2
- name: streams_aspio_iceberg_3
- name: streams_aspio_iceberg_large
- name: streams_aspio_iceberg_5
- name: streams_aspio_utilities
- name: streams_externaljs
- name: streams_aspio_pubsub
- name: .streams_release_test
- name: streams_build_and_push_gen
- name: streams_build_and_push_break_glass_gen
activate: false # Only run on manual patches
@ -116,25 +99,7 @@ buildvariants:
- name: compile_and_archive_dist_test_TG
distros:
- amazon2023.3-arm64-xxxlarge
- name: streams_gen
- name: streams_kafka_gen
- name: streams_kafka_gwproxy
- name: streams_kafka_benchmark
- name: streams_kinesis
- name: streams_https
- name: streams_lambda
- name: streams_s3
- name: aggregation
- name: streams_aspio
- name: streams_aspio_iceberg_0
- name: streams_aspio_iceberg_1
- name: streams_aspio_iceberg_2
- name: streams_aspio_iceberg_3
- name: streams_aspio_iceberg_large
- name: streams_aspio_iceberg_5
- name: streams_aspio_utilities
- name: streams_externaljs
- name: streams_aspio_pubsub
- name: .streams_release_test
- name: streams_build_and_push_gen
- name: streams_build_and_push_break_glass_gen
activate: false # Only run on manual patches

View File

@ -117,6 +117,7 @@ buildvariants:
--remote_execution_priority=3
--jobs=1600
--build_atlas=True
--streams_release_build=True
tasks:
- name: run_unit_tests_TG
- name: compile_test_parallel_core_stream_and_pretty_printer_tests_TG
@ -579,39 +580,3 @@ buildvariants:
- amazon2023.3-arm64-xlarge
tasks:
- name: .crypt
- name: amazon2023-x86-streams-compile
display_name: "* Compile Streams Amazon Linux 2023 x86 for sys-perf"
tags: ["suggested"]
cron: "0 1,5,9,13,17,21 * * *" # From the ${project_required_suggested_cron} parameter
expansions:
<<: *sys_perf_compile_expansions
compile_variant: amazon2023-x86-streams-compile
bazel_compile_flags: >-
--define=MONGO_DISTMOD=amazon2023
--release=True
--streams_release_build=True
skip_debug_link: true
run_on:
- amazon2023.3-xlarge
tasks:
- name: compile_and_package_serial_no_unittests_TG
- name: package_supplementary_data
- name: amazon2023-arm64-streams-compile
display_name: "* Compile Streams Amazon Linux 2023 arm64 for sys-perf"
tags: ["suggested"]
cron: "0 1,5,9,13,17,21 * * *" # From the ${project_required_suggested_cron} parameter
expansions:
<<: *sys_perf_compile_expansions
compile_variant: amazon2023-arm64-streams-compile
bazel_compile_flags: >-
--define=MONGO_DISTMOD=amazon2023
--release=True
--streams_release_build=True
skip_debug_link: true
run_on:
- amazon2023.3-arm64-xlarge
tasks:
- name: compile_and_package_serial_no_unittests_TG
- name: package_supplementary_data

View File

@ -84,7 +84,6 @@ buildvariants:
bazel_compile_flags: >-
--define=MONGO_DISTMOD=amazon2023
--config=local
--disable_streams=True
compile_variant: *amazon-linux2023-arm64-local-compile
tasks:
- name: run_unit_tests_TG
@ -164,6 +163,7 @@ buildvariants:
distros:
- amazon2023-arm64-atlas-latest-m8g-2xlarge
- name: .fuzzer_deterministic
- name: .streams_release_test !.requires_extra_system_deps !streams_kafka_gen !streams_kafka_benchmark !streams_kafka_gwproxy !streams_kinesis
- <<: *enterprise-amazon-linux2023-arm64-all-feature-flags-template
name: enterprise-amazon-linux2023-arm64-all-feature-flags-extra-system-deps
@ -176,8 +176,10 @@ buildvariants:
tss_enabled: false
large_distro_name: amazon2023-arm64-latest-m8g-4xlarge
core_analyzer_distro_name: amazon2023-arm64-latest-xlarge
# featureFlagStreams is added to support streams commands and aggregations in auth test suites
test_flags: >-
--runAllFeatureFlagTests
--additionalFeatureFlags=featureFlagStreams
--excludeWithAnyTags=incompatible_with_amazon_linux,requires_ldap_pool,requires_external_data_source
tasks:
- name: .requires_extra_system_deps .development_critical !.requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_all_feature_flags !.suggested_excluding_required__for_devprod_mitigation_only
@ -194,8 +196,9 @@ buildvariants:
- amazon2023-arm64-latest-m8g-4xlarge
- name: query_golden_disagg_gen
- name: query_golden_sharding_disagg_gen
- name: streams_build_only_gen
- name: no_passthrough_disagg_override_gen
- name: streams_build_only_gen
- name: .streams_release_test .requires_extra_system_deps
- name: amazon-linux2023-arm64-tests-lto-pgo-bolt
display_name: "Amazon Linux 2023 arm64 Atlas Enterprise (all feature flags) LTO/PGO/BOLT"

View File

@ -27,7 +27,6 @@ buildvariants:
bazel_compile_flags: >-
--define=MONGO_DISTMOD=amazon2
--build_enterprise=False
--disable_streams=True
compile_all_but_not_unittests_flags: >-
--linkopt=-s
multiversion_platform: amazon2
@ -82,7 +81,6 @@ buildvariants:
mciuploads_binary_visibility_push: public
bazel_compile_flags: >-
--define=MONGO_DISTMOD=amazon2
--disable_streams=True
compile_all_but_not_unittests_flags: >-
--linkopt=-s
multiversion_platform: amazon2
@ -136,7 +134,6 @@ buildvariants:
bazel_compile_flags: >-
--define=MONGO_DISTMOD=amazon2
--build_enterprise=False
--disable_streams=True
compile_all_but_not_unittests_flags: >-
--linkopt=-s
multiversion_platform: amazon2
@ -191,7 +188,6 @@ buildvariants:
mciuploads_binary_visibility_push: public
bazel_compile_flags: >-
--define=MONGO_DISTMOD=amazon2
--disable_streams=True
compile_all_but_not_unittests_flags: >-
--linkopt=-s
multiversion_platform: amazon2

View File

@ -19,6 +19,7 @@ buildvariants:
--linkstatic=False
--gcov=True
--collect_code_coverage
--streams_release_build=True
${coverage_bazel_tags}
large_distro_name: amazon2023.3-arm64-m8g-4xlarge
resmoke_jobs_factor: 0.5 # Avoid starting too many mongod's
@ -53,7 +54,7 @@ buildvariants:
- name: change_streams_mongos_sessions_passthrough
- name: fle2_sharding
# All streams jstest tasks excluding some that are not compatible at the moment.
- name: .streams_release_test !streams_aspio_iceberg_large !streams_externaljs
- name: .streams_release_test !.requires_extra_system_deps
# Variant to support Code Coverage on amd64/x86_64
- name: &rhel-93-64-bit-coverage rhel-93-64-bit-coverage

View File

@ -317,13 +317,7 @@ buildvariants:
name: enterprise-rhel-8-64-bit-dynamic-all-feature-flags-experimental
display_name: "* Enterprise RHEL 8 (all feature flags) Experimental"
tags: ["suggested"]
tasks:
&experimental-task-list # TODO(SERVER-90936): Remove streams_kafka* and streams_lambda tests when they work with the "default" tag.
- name: streams_kafka_gen
- name: streams_kafka_gwproxy
- name: streams_lambda
- name: streams_s3
- name: streams_kinesis
tasks: &experimental-task-list
- name: product_limits
cron: "0 4 * * 0" # From the ${project_weekly_cron} parameter

View File

@ -250,6 +250,7 @@ variables:
--opt=on
--fission=no
--jobs=800
--streams_release_build=True
# Avoid starting too many mongod's under TSAN build.
resmoke_jobs_factor: 0.3
@ -348,6 +349,7 @@ buildvariants:
--opt=on
--fission=no
--jobs=800
--streams_release_build=True
build_mongot: true
download_mongot_release: true
evergreen_remote_exec: on

View File

@ -158,6 +158,7 @@ variables:
--opt=on
--fission=no
--jobs=800
--streams_release_build=True
# Avoid starting too many mongod's under TSAN build.
resmoke_jobs_factor: 0.3
large_distro_name: &enterprise-rhel8-debug-tsan-large-distro-name rhel8.8-xlarge
@ -462,6 +463,7 @@ buildvariants:
- <<: *rhel8_debug_aubsan_compile_variant_dependency
name: rhel8-debug-aubsan-all-feature-flags
display_name: "* Shared Library {A,UB}SAN Enterprise RHEL 8 DEBUG (all feature flags)"
modules: ["asp-js-engine"]
tags:
[
"suggested",
@ -480,11 +482,12 @@ buildvariants:
# operations from making progress on slow sanitizer variants.
test_flags: >-
--runAllFeatureFlagTests
--additionalFeatureFlags=featureFlagStreams
--excludeWithAnyTags=incompatible_aubsan
--mongodSetParameters="{internalQueryEnableAggressiveSpillsInGroup: true, fassertOnLockTimeoutForStepUpDown: 180}"
--mongosSetParameters="{maxRoundsWithoutProgressParameter: 20}"
--mongosSetParameters="{findShardsOnConfigTimeoutMS: 30000}"
tasks: &rhel8-debug-aubsan-task-list
tasks:
- name: .development_critical !.requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_aubsan !.incompatible_system_allocator !.incompatible_all_feature_flags
- name: .development_critical .requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_aubsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
@ -501,6 +504,9 @@ buildvariants:
- name: .non_deterministic .requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_aubsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- rhel8.8-xlarge
- name: .streams_release_test !.requires_extra_system_deps !streams_kafka_gen !streams_kafka_benchmark !streams_kafka_gwproxy
distros:
- rhel8.8-xlarge
- <<: *rhel8_debug_aubsan_compile_variant_dependency
name: rhel8-debug-aubsan-experimental-all-feature-flags
@ -544,7 +550,23 @@ buildvariants:
--mongodSetParameters="{internalQueryEnableAggressiveSpillsInGroup: true, fassertOnLockTimeoutForStepUpDown: 180}"
--mongosSetParameters="{maxRoundsWithoutProgressParameter: 20}"
--mongosSetParameters="{findShardsOnConfigTimeoutMS: 30000}"
tasks: *rhel8-debug-aubsan-task-list
tasks:
- name: .development_critical !.requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_aubsan !.incompatible_system_allocator !.incompatible_all_feature_flags
- name: .development_critical .requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_aubsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- rhel8.8-xlarge
- name: .release_critical !.requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_aubsan !.incompatible_system_allocator !.incompatible_all_feature_flags
- name: .release_critical .requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_aubsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- rhel8.8-xlarge
- name: .default !.requires_large_host !.requires_extra_system_deps !.requires_compile_variant !.incompatible_development_variant !.incompatible_aubsan !.incompatible_system_allocator !.incompatible_all_feature_flags
- name: .default .requires_large_host !.requires_extra_system_deps !.requires_compile_variant !.incompatible_development_variant !.incompatible_aubsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- rhel8.8-xlarge
- name: .non_deterministic !.requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_aubsan !.incompatible_system_allocator !.incompatible_all_feature_flags
- name: .non_deterministic .requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_aubsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- rhel8.8-xlarge
- name: &rhel8-debug-aubsan-benchmarks rhel8-debug-aubsan-benchmarks
display_name: "* {A,UB}SAN Enterprise RHEL 8 DEBUG (Benchmarks)"
@ -559,6 +581,7 @@ buildvariants:
--config=dbg_aubsan
--opt=on
--fission=no
--streams_release_build=True
test_flags: >-
--benchmarkRepetitions=1
--excludeWithAnyTags=incompatible_aubsan
@ -574,6 +597,7 @@ buildvariants:
- <<: *enterprise-rhel8-debug-tsan-compile-dependency
name: enterprise-rhel8-debug-tsan-all-feature-flags
display_name: "* TSAN Enterprise RHEL 8 DEBUG (all feature flags)"
modules: ["asp-js-engine"]
tags:
[
"suggested",
@ -594,7 +618,8 @@ buildvariants:
--mongosSetParameters="{maxRoundsWithoutProgressParameter: 20}"
--excludeWithAnyTags=tsan_incompatible
--runAllFeatureFlagTests
tasks: &enterprise-rhel8-debug-tsan-task-list
--additionalFeatureFlags=featureFlagStreams
tasks:
- name: .development_critical !.requires_large_host !.requires_compile_variant !.requires_large_host_tsan !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
- name: .development_critical .requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
@ -623,6 +648,9 @@ buildvariants:
- name: .non_deterministic .requires_large_host_tsan !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- *enterprise-rhel8-debug-tsan-large-distro-name
- name: .streams_release_test !.requires_extra_system_deps !streams_kafka_gen !streams_kafka_benchmark !streams_kafka_gwproxy !streams_s3
distros:
- *enterprise-rhel8-debug-tsan-large-distro-name
- <<: *enterprise-rhel8-debug-tsan-compile-dependency
name: enterprise-rhel8-debug-tsan-all-non-rollback-feature-flags
@ -642,7 +670,35 @@ buildvariants:
--mongosSetParameters="{maxRoundsWithoutProgressParameter: 20}"
--excludeWithAnyTags=tsan_incompatible
--runAllFeatureFlagTests --disableUnreleasedIFRFlags
tasks: *enterprise-rhel8-debug-tsan-task-list
tasks:
- name: .development_critical !.requires_large_host !.requires_compile_variant !.requires_large_host_tsan !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
- name: .development_critical .requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- *enterprise-rhel8-debug-tsan-large-distro-name
- name: .development_critical .requires_large_host_tsan !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- *enterprise-rhel8-debug-tsan-large-distro-name
- name: .release_critical !.requires_large_host !.requires_large_host_tsan !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
- name: .release_critical .requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- *enterprise-rhel8-debug-tsan-large-distro-name
- name: .release_critical .requires_large_host_tsan !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- *enterprise-rhel8-debug-tsan-large-distro-name
- name: .default !.requires_large_host !.requires_large_host_tsan !.requires_extra_system_deps !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
- name: .default .requires_large_host !.requires_extra_system_deps !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- *enterprise-rhel8-debug-tsan-large-distro-name
- name: .default .requires_large_host_tsan !.requires_extra_system_deps !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- *enterprise-rhel8-debug-tsan-large-distro-name
- name: .non_deterministic !.requires_large_host !.requires_large_host_tsan !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
- name: .non_deterministic .requires_large_host !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- *enterprise-rhel8-debug-tsan-large-distro-name
- name: .non_deterministic .requires_large_host_tsan !.requires_compile_variant !.incompatible_development_variant !.incompatible_tsan !.incompatible_system_allocator !.incompatible_all_feature_flags
distros:
- *enterprise-rhel8-debug-tsan-large-distro-name
- name: &linux-debug-aubsan-compile-grpc linux-debug-aubsan-compile-grpc
display_name: "~ Linux x86 Shared Library {A,UB}SAN Enterprise Compile with Ingress GRPC"

View File

@ -310,7 +310,6 @@ buildvariants:
bazel_compile_flags: >-
--define=MONGO_DISTMOD=ubuntu2204
--allocator=tcmalloc-gperf
--disable_streams=True
compile_all_but_not_unittests_flags: >-
--linkopt=-s
large_distro_name: ubuntu2204-large

View File

@ -91,13 +91,13 @@ one argument, the connection object.
*/
import {testOnlyCommands} from "jstests/auth/test_only_commands_list.js";
import {getUriForColl} from "jstests/disk/libs/wt_file_helper.js";
import {FeatureFlagUtil} from "jstests/libs/feature_flag_util.js";
import {
storageEngineIsWiredTigerOrInMemory,
storageEngineIsWiredTiger,
storageEngineIsWiredTigerOrInMemory,
} from "jstests/libs/storage_engine/storage_engine_utils.js";
import {getUriForColl} from "jstests/disk/libs/wt_file_helper.js";
import {testOnlyCommands} from "jstests/auth/test_only_commands_list.js";
// constants
@ -236,8 +236,11 @@ const skippedAuthTestingAggStages = [
"$merge", // Already covered in 'aggregate_merge_insert_documents' and
// 'aggregate_merge_replace_documents'.
"$set", // Alias for "$addFields" and already covered.
];
// The following stages are required to be tested in stream processors.
// The following stages are required to be tested in stream processors.
// Only included in skip list when streams feature is available.
const streamsSkippedAuthTestingAggStages = [
"$hoppingWindow",
"$tumblingWindow",
"$sessionWindow",
@ -247,7 +250,7 @@ const skippedAuthTestingAggStages = [
// The following commands are skipped in 'authCommandsLib' because they are unable to be
// tested here and already have auth tests elsewhere.
//TODO SERVER-112286: Audit commands skipped.
// TODO SERVER-112286: Audit commands skipped.
const skippedAuthTestingCommands = [
"analyzeShardKey",
"authenticate",
@ -9660,12 +9663,22 @@ function checkAggStageCoverage(conn) {
.aggregate([{$listMqlEntities: {entityType: "aggregationStages"}}])
.toArray()
.map((obj) => obj.name);
// Only skip streams stages when the feature flag is disabled. When enabled, they should
// be tested. When not compiled in, they won't appear anyway.
let skipList = skippedAuthTestingAggStages;
if (
streamsSkippedAuthTestingAggStages.some((stage) => aggStages.includes(stage)) &&
!FeatureFlagUtil.isPresentAndEnabled(adminDb, "Streams")
) {
skipList = skipList.concat(streamsSkippedAuthTestingAggStages);
}
adminDb.logout();
const unvisited = {};
for (let aggStage of aggStages) {
// Tracks 'aggStage' unless listed in the exception list 'skippedAuthTestingAggStages'.
if (!skippedAuthTestingAggStages.includes(aggStage)) {
// Tracks 'aggStage' unless listed in the exception list 'skipList'.
if (!skipList.includes(aggStage)) {
unvisited[aggStage] = 1;
}
}
@ -9702,6 +9715,9 @@ function checkCommandCoverage(conn) {
const res = assert.commandWorked(adminDb.runCommand({listCommands: 1}));
const allCommands = Object.keys(res.commands);
// Don't skip streams commands. When the feature flag is disabled, streams commands
// are hidden from listCommands (they have requiresFeatureFlag). When enabled, they
// appear and should be tested.
adminDb.logout();
const unvisited = {};
@ -9724,9 +9740,8 @@ function checkCommandCoverage(conn) {
assert.eq(
unvisitedList.length,
0,
`'authCommandsLib.tests' misses auth testing for ${
unvisitedList.length
} commands: ${unvisitedList.join(", ")}. ` +
`Add tests for these commands or add them to 'skippedAuthTestingCommands' with justification.`,
`'authCommandsLib.tests' misses auth testing for ${unvisitedList.length} commands: ${unvisitedList.join(
", ",
)}. ` + `Add tests for these commands or add them to 'skippedAuthTestingCommands' with justification.`,
);
}

View File

@ -2624,7 +2624,7 @@ mongo_cc_library(
],
"//conditions:default": [],
}) + select({
"//bazel/config:enterprise_feature_streams_and_streams_build_enabled": [
"//bazel/config:enterprise_feature_queryable_and_streams_build_enabled": [
"//src/mongo/db/modules/enterprise/src/streams/commands:streams_commands",
],
"//conditions:default": [],