Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[7.1.0] Cherry-pick recent changes to fix CI flakiness and breakages #21349

Merged
merged 7 commits into from
Feb 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ genrule(
# Instead of `bazel mod deps`, we run a simpler command like `bazel query :all` here
# so that we only trigger module resolution, not extension eval.
# Also use `--batch` so that Bazel doesn't keep a server process alive.
"$(location //src:bazel) --batch --output_user_root=$$PWD/tmp_bazel_root query --check_direct_dependencies=error --lockfile_mode=update :all && " +
"$(location //src:bazel) --batch --host_jvm_args=-Djava.net.preferIPv6Addresses=true --output_user_root=$$PWD/tmp_bazel_root query --check_direct_dependencies=error --lockfile_mode=update :all && " +
"mv MODULE.bazel.lock $@",
tags = ["requires-network"],
tools = ["//src:bazel"],
Expand Down Expand Up @@ -174,9 +174,6 @@ pkg_tar(
remap_paths = {
"MODULE.bazel.lock.dist": "MODULE.bazel.lock",
"WORKSPACE.bzlmod.filtered": "WORKSPACE.bzlmod",
# Rewrite paths coming from local repositories back into third_party.
"external/googleapis~override": "third_party/googleapis",
"external/remoteapis~override": "third_party/remoteapis",
},
strip_prefix = ".",
# Public but bazel-only visibility.
Expand Down
6 changes: 3 additions & 3 deletions MODULE.bazel.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions src/test/py/bazel/test_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -584,6 +584,14 @@ def _EnvMap(self, env_remove=None, env_add=None):
# that by checking for TEST_TMPDIR.
env['TEST_TMPDIR'] = TestBase.GetEnv('TEST_TMPDIR')
env['TMP'] = self._temp

if TestBase.IsDarwin():
# Make sure rules_jvm_external works in ipv6 only environment
# https://github.com/bazelbuild/rules_jvm_external?tab=readme-ov-file#ipv6-support
env['COURSIER_OPTS'] = TestBase.GetEnv(
'COURSIER_OPTS', '-Djava.net.preferIPv6Addresses=true'
)

if env_remove:
for e in env_remove:
if e in env:
Expand Down
10 changes: 7 additions & 3 deletions src/test/shell/bazel/bazel_test_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -705,8 +705,12 @@ exit 1
EOF
chmod +x true.sh flaky.sh false.sh

# The next two lines ensure that the test passes in IPv6-only networks.
export JAVA_TOOL_OPTIONS="-Djava.net.preferIPv6Addresses=true"
export STARTUP_OPTS="--host_jvm_args=-Djava.net.preferIPv6Addresses=true"

# We do not use sandboxing so we can trick to be deterministically flaky
bazel --ignore_all_rc_files test --experimental_ui_debug_all_events \
bazel --ignore_all_rc_files "$STARTUP_OPTS" test --experimental_ui_debug_all_events \
--spawn_strategy=standalone //:flaky &> $TEST_log \
|| fail "//:flaky should have passed with flaky support"
[ -f "${FLAKE_FILE}" ] || fail "Flaky test should have created the flake-file!"
Expand All @@ -720,7 +724,7 @@ EOF
cat bazel-testlogs/flaky/test.log &> $TEST_log
assert_equals "pass" "$(awk "NR == $(wc -l < $TEST_log)" $TEST_log)"

bazel --ignore_all_rc_files test --experimental_ui_debug_all_events //:pass \
bazel --ignore_all_rc_files "$STARTUP_OPTS" test --experimental_ui_debug_all_events //:pass \
&> $TEST_log || fail "//:pass should have passed"
expect_log_once "PASS.*: //:pass"
expect_log_once "PASSED"
Expand All @@ -729,7 +733,7 @@ EOF
cat bazel-testlogs/flaky/test.log &> $TEST_log
assert_equals "pass" "$(tail -1 bazel-testlogs/flaky/test.log)"

bazel --ignore_all_rc_files test --experimental_ui_debug_all_events //:fail \
bazel --ignore_all_rc_files "$STARTUP_OPTS" test --experimental_ui_debug_all_events //:fail \
&> $TEST_log && fail "//:fail should have failed" \
|| true
expect_log_n "FAIL.*: //:fail (.*/fail/test_attempts/attempt_..log)" 2
Expand Down
5 changes: 5 additions & 0 deletions src/tools/bzlmod/utils.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -135,4 +135,9 @@ def _module_repo_name(module):
module_name = module["name"]
if module_name in _WELL_KNOWN_MODULES:
return module_name

# TODO(pcloudy): Simplify the following logic after we upgrade to 7.1
if get_canonical_repo_name("rules_cc").endswith("~"):
return "{}~".format(module_name)

return "{}~{}".format(module_name, module["version"])
4 changes: 2 additions & 2 deletions third_party/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ filegroup(
"//third_party/android_dex:srcs",
"//third_party/cncf_udpa:srcs",
"//third_party/def_parser:srcs",
"//third_party/googleapis:srcs",
"//third_party/grpc:srcs",
"//third_party/grpc-java:srcs",
"//third_party/ijar:srcs",
Expand All @@ -33,9 +34,8 @@ filegroup(
"//third_party/py/frozendict:srcs",
"//third_party/py/mock:srcs",
"//third_party/py/six:srcs",
"//third_party/remoteapis:srcs",
"//third_party/zlib:srcs",
"@googleapis//:srcs",
"@remoteapis//:srcs",
],
)

Expand Down
Loading