diff --git a/server/src/main/java/org/elasticsearch/cluster/metadata/DataStreamLifecycle.java b/server/src/main/java/org/elasticsearch/cluster/metadata/DataStreamLifecycle.java index 042debf848566..5a0699dbf07bd 100644 --- a/server/src/main/java/org/elasticsearch/cluster/metadata/DataStreamLifecycle.java +++ b/server/src/main/java/org/elasticsearch/cluster/metadata/DataStreamLifecycle.java @@ -383,8 +383,7 @@ public void writeTo(StreamOutput out) throws IOException { if (out.getTransportVersion().supports(ADD_SAMPLE_METHOD_DOWNSAMPLE_DLM)) { out.writeOptionalWriteable(downsamplingMethod); } - if (out.getTransportVersion().supports(DLM_FROZEN_TIER_GA_TV) - || (DLM_SEARCHABLE_SNAPSHOTS_FEATURE_FLAG.isEnabled() && out.getTransportVersion().supports(SEARCHABLE_SNAPSHOTS_DLM_TV))) { + if (out.getTransportVersion().supports(DLM_FROZEN_TIER_GA_TV) || out.getTransportVersion().supports(SEARCHABLE_SNAPSHOTS_DLM_TV)) { out.writeOptionalTimeValue(frozenAfter); } } @@ -405,8 +404,11 @@ public DataStreamLifecycle(StreamInput in) throws IOException { downsamplingMethod = in.getTransportVersion().supports(ADD_SAMPLE_METHOD_DOWNSAMPLE_DLM) ? in.readOptionalWriteable(DownsampleConfig.SamplingMethod::read) : null; - frozenAfter = ((DLM_SEARCHABLE_SNAPSHOTS_FEATURE_FLAG.isEnabled() && in.getTransportVersion().supports(SEARCHABLE_SNAPSHOTS_DLM_TV)) - || in.getTransportVersion().supports(DLM_FROZEN_TIER_GA_TV)) ? in.readOptionalTimeValue() : null; + if (in.getTransportVersion().supports(SEARCHABLE_SNAPSHOTS_DLM_TV) || in.getTransportVersion().supports(DLM_FROZEN_TIER_GA_TV)) { + frozenAfter = in.readOptionalTimeValue(); + } else { + frozenAfter = null; + } } /** @@ -790,8 +792,8 @@ public void writeTo(StreamOutput out) throws IOException { if (out.getTransportVersion().supports(ADD_SAMPLE_METHOD_DOWNSAMPLE_DLM)) { ResettableValue.write(out, downsamplingMethod, StreamOutput::writeWriteable); } - if ((DLM_SEARCHABLE_SNAPSHOTS_FEATURE_FLAG.isEnabled() && out.getTransportVersion().supports(SEARCHABLE_SNAPSHOTS_DLM_TV) - || out.getTransportVersion().supports(DLM_FROZEN_TIER_GA_TV))) { + if (out.getTransportVersion().supports(SEARCHABLE_SNAPSHOTS_DLM_TV) + || out.getTransportVersion().supports(DLM_FROZEN_TIER_GA_TV)) { ResettableValue.write(out, frozenAfter, StreamOutput::writeTimeValue); } } @@ -854,9 +856,8 @@ public static Template read(StreamInput in) throws IOException { .supports(ADD_SAMPLE_METHOD_DOWNSAMPLE_DLM) ? ResettableValue.read(in, DownsampleConfig.SamplingMethod::read) : ResettableValue.undefined(); - ResettableValue frozenAfter = (DLM_SEARCHABLE_SNAPSHOTS_FEATURE_FLAG.isEnabled() - && in.getTransportVersion().supports(SEARCHABLE_SNAPSHOTS_DLM_TV) - || in.getTransportVersion().supports(DLM_FROZEN_TIER_GA_TV)) + ResettableValue frozenAfter = in.getTransportVersion().supports(SEARCHABLE_SNAPSHOTS_DLM_TV) + || in.getTransportVersion().supports(DLM_FROZEN_TIER_GA_TV) ? ResettableValue.read(in, StreamInput::readTimeValue) : ResettableValue.undefined(); return new Template(lifecycleTarget, enabled, dataRetention, downsamplingRounds, downsamplingMethod, frozenAfter); diff --git a/x-pack/plugin/esql/qa/server/mixed-cluster/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/mixed/Clusters.java b/x-pack/plugin/esql/qa/server/mixed-cluster/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/mixed/Clusters.java index aa1804d15e31e..ac1d6015ebaa2 100644 --- a/x-pack/plugin/esql/qa/server/mixed-cluster/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/mixed/Clusters.java +++ b/x-pack/plugin/esql/qa/server/mixed-cluster/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/mixed/Clusters.java @@ -37,11 +37,7 @@ public static ElasticsearchCluster mixedVersionCluster(Path csvDataPath, boolean .configFile("ingest-geoip/GeoLite2-City.mmdb", Resource.fromClasspath("GeoLite2-City.mmdb")) .configFile("ingest-geoip/GeoLite2-Country.mmdb", Resource.fromClasspath("GeoLite2-Country.mmdb")) .configFile("ingest-geoip/GeoLite2-ASN.mmdb", Resource.fromClasspath("GeoLite2-ASN.mmdb")) - .setting("ingest.geoip.downloader.enabled", "false") - // DLM frozen tier serialization is gated on both a feature flag and a transport version, so nodes in a mixed cluster can - // disagree on the wire format when their build types differ (snapshot vs release). Disable the flag on every node so - // serialization is consistent regardless of build type. See https://github.com/elastic/elasticsearch/issues/153679. - .systemProperty("es.dlm_searchable_snapshots_feature_flag_enabled", "false"); + .setting("ingest.geoip.downloader.enabled", "false"); if (supportRetryOnShardFailures(oldVersion) == false) { cluster.setting("cluster.routing.rebalance.enable", "none"); }