Make --experimental_keep_config_nodes_on_analysis_discard a no-op.
PiperOrigin-RevId: 448013907
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisOptions.java
index 162bdcf..837c89d 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisOptions.java
@@ -64,19 +64,6 @@
public int maxConfigChangesToShow;
@Option(
- name = "experimental_keep_config_nodes_on_analysis_discard",
- // TODO(b/230646046): remove this flag once the "false" default value has settled in safely
- defaultValue = "false",
- documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.LOSES_INCREMENTAL_STATE},
- help =
- "When discarding the analysis cache due to a change in the build options, whether to"
- + " keep the 'BuildConfigurationValue' nodes in the Skyframe graph. Keeping them"
- + " uses additional memory but allows the `config` command to operate on configs"
- + " from previous builds.")
- public boolean keepConfigNodes;
-
- @Option(
name = "experimental_extra_action_filter",
defaultValue = "",
converter = RegexFilter.RegexFilterConverter.class,
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java
index 540fda2..be572b8 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java
@@ -85,10 +85,7 @@
defaultValue = "true",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
- metadataTags = {
- OptionMetadataTag.DEPRECATED,
- OptionMetadataTag.INCOMPATIBLE_CHANGE
- },
+ metadataTags = {OptionMetadataTag.DEPRECATED, OptionMetadataTag.INCOMPATIBLE_CHANGE},
help = "Deprecated no-op.")
public boolean disableCrosstool;
@@ -153,10 +150,7 @@
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
effectTags = {OptionEffectTag.AFFECTS_OUTPUTS, OptionEffectTag.LOADING_AND_ANALYSIS},
- metadataTags = {
- OptionMetadataTag.DEPRECATED,
- OptionMetadataTag.INCOMPATIBLE_CHANGE
- },
+ metadataTags = {OptionMetadataTag.DEPRECATED, OptionMetadataTag.INCOMPATIBLE_CHANGE},
help = "Deprecated no-op.")
public boolean incompatibleDisableInMemoryToolsDefaultsPackage;
@@ -222,10 +216,7 @@
defaultValue = "true",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
- metadataTags = {
- OptionMetadataTag.INCOMPATIBLE_CHANGE,
- OptionMetadataTag.DEPRECATED
- },
+ metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE, OptionMetadataTag.DEPRECATED},
help =
"Flag for disabling the legacy cc_toolchain Starlark API for accessing legacy "
+ "CROSSTOOL fields.")
@@ -236,10 +227,7 @@
defaultValue = "true",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
effectTags = {OptionEffectTag.UNKNOWN},
- metadataTags = {
- OptionMetadataTag.INCOMPATIBLE_CHANGE,
- OptionMetadataTag.DEPRECATED
- },
+ metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE, OptionMetadataTag.DEPRECATED},
help = "Obsolete, no effect.")
public boolean enableLegacyToolchainStarlarkApi;
@@ -248,10 +236,7 @@
defaultValue = "true",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
effectTags = {OptionEffectTag.UNKNOWN},
- metadataTags = {
- OptionMetadataTag.INCOMPATIBLE_CHANGE,
- OptionMetadataTag.DEPRECATED
- },
+ metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE, OptionMetadataTag.DEPRECATED},
help = "Obsolete, no effect.")
public boolean disableLegacyToolchainStarlarkApi;
@@ -357,10 +342,7 @@
OptionEffectTag.UNKNOWN,
},
oldName = "experimental_cc_coverage",
- metadataTags = {
- OptionMetadataTag.INCOMPATIBLE_CHANGE,
- OptionMetadataTag.DEPRECATED
- },
+ metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE, OptionMetadataTag.DEPRECATED},
help = "Obsolete, no effect.")
public boolean useGcovCoverage;
@@ -525,6 +507,14 @@
metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE},
help = "No-op.")
public boolean useDistinctHostConfiguration;
+
+ @Option(
+ name = "experimental_keep_config_nodes_on_analysis_discard",
+ defaultValue = "false",
+ documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+ effectTags = {OptionEffectTag.NO_OP},
+ help = "No-op")
+ public boolean keepConfigNodes;
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index 5706be1..f0c9d2c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -332,8 +332,6 @@
*/
private boolean analysisCacheInvalidated = false;
- private boolean keepBuildConfigurationNodesWhenDiscardingAnalysis = false;
-
/** True if loading and analysis nodes were cleared (discarded) after analysis to save memory. */
private boolean analysisCacheCleared;
@@ -1123,35 +1121,24 @@
protected final void deleteAnalysisNodes() {
memoizingEvaluator.delete(
- keepBuildConfigurationNodesWhenDiscardingAnalysis
- ? shouldDeleteActionNodesWhenDroppingAnalysis()
- ? SkyframeExecutor::basicAnalysisInvalidatingPredicateWithActions
- : SkyframeExecutor::basicAnalysisInvalidatingPredicate
- : shouldDeleteActionNodesWhenDroppingAnalysis()
- ? SkyframeExecutor::fullAnalysisInvalidatingPredicateWithActions
- : SkyframeExecutor::fullAnalysisInvalidatingPredicate);
+ shouldDeleteActionNodesWhenDroppingAnalysis()
+ ? SkyframeExecutor::analysisInvalidatingPredicateWithActions
+ : SkyframeExecutor::analysisInvalidatingPredicate);
}
// We delete any value that can hold an action -- all subclasses of ActionLookupKey.
// Also remove ArtifactNestedSetValues to prevent memory leak (b/143940221).
- private static boolean basicAnalysisInvalidatingPredicate(SkyKey key) {
- return key instanceof ArtifactNestedSetKey || key instanceof ActionLookupKey;
+ // Also BuildConfigurationKey to prevent memory leak (b/191875929).
+ private static boolean analysisInvalidatingPredicate(SkyKey key) {
+ return key instanceof ArtifactNestedSetKey
+ || key instanceof ActionLookupKey
+ || key instanceof BuildConfigurationKey;
}
// Also remove ActionLookupData since all such nodes depend on ActionLookupKey nodes and deleting
// en masse is cheaper than deleting via graph traversal (b/192863968).
- private static boolean basicAnalysisInvalidatingPredicateWithActions(SkyKey key) {
- return basicAnalysisInvalidatingPredicate(key) || key instanceof ActionLookupData;
- }
-
- // We may also want to remove BuildConfigurationKey to fix a minor memory leak there.
- private static boolean fullAnalysisInvalidatingPredicate(SkyKey key) {
- return basicAnalysisInvalidatingPredicate(key) || key instanceof BuildConfigurationKey;
- }
-
- private static boolean fullAnalysisInvalidatingPredicateWithActions(SkyKey key) {
- return basicAnalysisInvalidatingPredicateWithActions(key)
- || key instanceof BuildConfigurationKey;
+ private static boolean analysisInvalidatingPredicateWithActions(SkyKey key) {
+ return analysisInvalidatingPredicate(key) || key instanceof ActionLookupData;
}
private WorkspaceStatusAction makeWorkspaceStatusAction(String workspaceName) {
@@ -2676,9 +2663,6 @@
RemoteOptions remoteOptions = options.getOptions(RemoteOptions.class);
setRemoteExecutionEnabled(remoteOptions != null && remoteOptions.isRemoteExecutionEnabled());
updateSkyFunctionsSemaphoreSize(options);
- AnalysisOptions analysisOptions = options.getOptions(AnalysisOptions.class);
- keepBuildConfigurationNodesWhenDiscardingAnalysis =
- analysisOptions == null || analysisOptions.keepConfigNodes;
syncPackageLoading(pathPackageLocator, commandId, clientEnv, tsgm, options);
if (lastAnalysisDiscarded) {