OpenSearch 3.3.2 → 3.9.0
6 releases · 6 breaking changes · 10 security fixes · 0 advisories fixed
10security6breaking14deprecated176feature34fix
Breaking changes
- breaking Remove obsolete OS packaging tests () in 3.9.0
- breaking Remove OpenSearchYamlFactory / OpenSearchYamlParser after Jackson 3.2.0 update () in 3.8.0
- breaking Remove Unsafe class injection from Java agent () in 3.7.0
- breaking Remove identity-shiro from plugins folder () in 3.5.0
- breaking Remove MultiCollectorWrapper and use MultiCollector in Lucene instead () in 3.4.0
- breaking Remove FeatureFlag.MERGED_SEGMENT_WARMER_EXPERIMENTAL_FLAG. () in 3.4.0
Security changes
- security Bound completion suggester max_determinized_states to prevent heap exhaustion (CVE-2026-63136) () in 3.9.0
- security Update log4j to 2.25.5 (CVE-2026-49844) () in 3.9.0
- security Bump bc-fips to 2.1.3 to fix CVE-2026-8149 () in 3.8.0
- security Upgrade Jackson 2 to 2.22.1 to resolve CVE-2026-54515 () in 3.8.0
- security Bump Hadoop from 3.4.2 to 3.5.0 to resolve CVE-2026-2332 () in 3.8.0
- security Pin GitHub Actions to commit SHAs for supply chain security () in 3.7.0
- security Install demo security information when running ./gradlew run -PinstalledPlugins="['opensearch-security']" () in 3.5.0
- security Replace java.security.AccessController with org.opensearch.secure_sm.AccessController in sub projects with SocketAccess class () in 3.4.0
- security Replace java.security.AccessController with org.opensearch.secure_sm.AccessController in discovery plugins () in 3.4.0
- security Update Hadoop to 3.4.2 and enable security (Kerberos) integration tests under JDK-24 and above () in 3.4.0
Deprecations
- deprecated Replace deprecated AccessController in core libraries and plugins () in 3.9.0
- deprecated Deprecated existing constructors in ThreadPoolStats.Stats in favor of the new Builder () in 3.4.0
- deprecated Deprecated existing constructors in IndexingStats.Stats in favor of the new Builder () in 3.4.0
- deprecated Deprecated existing constructors in RefreshStats in favor of the new Builder () in 3.4.0
- deprecated Deprecated existing constructors in DocStats and StoreStats in favor of the new Builder () in 3.4.0
- deprecated Deprecated existing constructors in Condition.Stats and DirectoryFileTransferTracker.Stats in favor of the new Builder () in 3.4.0
- deprecated Deprecated existing constructors in RemoteTranslogTransferTracker.Stats and RemoteSegmentTransferTracker.Stats in favor of the new Builder () in 3.4.0
- deprecated Deprecated existing constructors in GetStats, FlushStats and QueryCacheStats in favor of the new Builder () in 3.4.0
- deprecated Deprecated existing constructors in FieldDataStats and CompletionStats in favor of the new Builder () in 3.4.0
- deprecated Deprecated existing constructors in TranslogStats and RequestCacheStats in favor of the new Builder () in 3.4.0
- deprecated Deprecated existing constructors in IndexPressutreStats, DeviceStats and TransportStats in favor of the new Builder () in 3.4.0
- deprecated Deprecated existing constructors in Cache.CacheStats in favor of the new Builder () in 3.4.0
- deprecated Deprecated existing constructors in HttpStats, ScriptStats, AdaptiveSelectionStats and OsStats in favor of the new Builder () in 3.4.0
- deprecated Deprecated existing constructors in ShardStats, WarmerStats and IndexingPressureStats in favor of the new Builder () in 3.4.0
Every release in between
featureAdd DELETE task API for removing stored completed task results ()
featureAdd deployment drain and finish APIs for zero-downtime node deployments ()
featureAdd adaptive per-action concurrency limiting module with Vegas, Gradient2, and AIMD algorithms ()
featureAdd virtual thread-per-task executor support to ThreadPool ()
featureAdd extensible payload decoder framework for pull-based ingestion ()
featureAdd plugin SPI for dynamic field-type inference and dynamic-template types ()
featureAdd pluggable PrimaryOperationPolicy to EngineConfig for cross-cluster replication ()
featureAdd object-store fencing token for remote store primary term validation ()
featureAuto-restore remote store primaries on node loss when no valid copy survives ()
featureAdd FieldDomain metadata producer API for enhanced can_match shard pruning ()
featureAdd intra-segment search support for histogram, auto_date_histogram, and range aggregations ()
featureAdd MPP-style distributed join and aggregation execution for the analytics engine ()
featureAdd cluster.blocks.read.auto_release setting to prevent unconditional auto-release of user-set index read blocks ()
featureAdd cluster-level remote-store flush settings for uncommitted segments ()
featureRestore size-based periodic flush on remote-store shards ()
featureApply index.periodic_flush_interval changes to running shards dynamically ()
featureUse ordinals instead of byte values for bucket keys in multi-term aggregations ()
featureOptimize bucket counting and tracking in LongKeyedBucketOrds with O(1) lookups ()
featureSpeed up reading history operations from Lucene via sequential stored-fields reader ()
featureUse prefixQuery to speed up wildcardQuery and regexpQuery for wildcard field type ()
featurePreserve constant_score through filtered aliases to maintain Lucene no-scoring fast path ()
featurePromote lowest-version replica on document-replication failover to prevent stuck replicas during rolling upgrades ()
featureAvoid cancellation checks on every advance() call for posting enums to reduce CPU overhead ()
featureAvoid quadratic identifier scan when removing snapshots ()
featureStream translog parts instead of buffering the whole file for upload ()
featureChange tiered cache default partition count to 16 for improved hit rates on high-core instances ()
featureBound Arrow native memory pools when node.native_memory.limit is unknown ()
featureLower default arrow.flight.channel.outbound_buffer_threshold from 64 MB to 512 KB ()
featureDeprecate RestHighLevelClient in favor of opensearch-java client ()
featureRemove Jackson 2.x dependencies from OpenSearch core ()
featureRemove legacy client benchmark and noop API plugin modules ()
featurePreserve routing in Translog.Delete for CDC-based replication ()
featureExempt server-injected preferences from strict weighted routing check and scope them per index ()
featureReject out-of-range WLM node threshold updates at validation time ()
featureReturn HTTP 400 for too_many_clauses and too_many_nested_clauses errors ()
featureRefactor forPattern if-else chains to switch on FormatNames enum for O(1) dispatch ()
securityBound completion suggester max_determinized_states to prevent heap exhaustion (CVE-2026-63136) ()
securityUpdate log4j to 2.25.5 (CVE-2026-49844) ()
breakingRemove obsolete OS packaging tests ()
deprecatedReplace deprecated AccessController in core libraries and plugins ()
+49 more items in the release notesfeatureAdd API to modify a data stream's backing indices (POST /_data_stream/_modify) ()
featureAdd multivalue_doc_count aggregation that returns the number of documents with two or more values ()
featureAdd pull-based ingestion from Hive tables via new ingestion-hive plugin ()
featureAdd support for HTTP/3 on the client side via JDK HttpClient ()
featureAdd gRPC support for Point-in-Time (PIT) create and delete operations ()
featureAdd gRPC API support for extra_field_values in bulk requests ()
featureAdd cross-cluster streaming support to the remote cluster client via Arrow Flight ()
featureAdd coordinator-side index-level field domain pruning before can_match for faster time-range queries ()
featureAdd bulkscorer script processing interface in ScriptScore query for bulk scoring optimizations ()
featureAdd process-wide ObjectInputFilter to reject Java deserialization by default, gated behind bootstrap.serial_filter setting ()
featureAdd cluster-level default setting for delayed shard allocation timeout (cluster.routing.allocation.unassigned.node_left.delayed_timeout) ()
featureAdd HTTP request body decompression (gzip/deflate) to reactor-netty4 transport ()
featureAdd cross-setting validator to prevent cluster-manager crash loop when both balance factors are set to zero ()
featureAdd support for double, int, and long types in ExtraFieldValue for gRPC bulk indexing ()
featureAdd timing logs for repository create, update, and delete operations ()
featureAdd parent action name to ProcessorGenerationContext for conditional system-generated processor logic ()
featureAdd getter for remote translog transfer tracker to enable plugin access to tracking metrics ()
featureDeprecate RestClient in favor of the internal HTTP client ()
featureDisable Mustache partial template resolution in search templates ()
featureUse binary serialization for resource usage headers to reduce CPU overhead on the search path ()
featurePreserve resolved search pipeline id and inline pipeline source through query rewrite ()
featureFork GET _aliases serialization to MANAGEMENT thread pool to avoid blocking transport threads ()
featureStrengthen scroll_id validation to prevent OOM from crafted scroll IDs ()
featureAdd depth tracking to recursive deserialization to prevent StackOverflowError ()
featureValidate base_path in FsRepository to prevent path traversal outside path.repo ()
featureAdd path boundary validation in resolveAnalyzerPath to prevent directory traversal ()
featureRegister snapshot resilience settings (snapshot.repository.io_timeout, max_outstanding_ops, cleanup_stale_blobs) ()
featureWire request_timeout into S3 sync client to prevent indefinite hangs on degraded stores ()
featureSeparate internal ignore settings from user ignore settings during snapshot restore ()
featureValidate total_primary_shards_per_node on index templates against the cluster instead of index-local flag ()
featureRollover checkBlock now scoped to write index only, skipping non-write alias members ()
fixFix OpenSearchTimeoutException to return HTTP 504 instead of 500 ()
fixFix ClassCastException on malformed mappings in create index to return 400 instead of 500 ()
fixFix NPE for search-only indices without primaries in cluster allocation explain and bulk shard selection ()
fixFix NPE in S3 multipart upload when provideStream() throws, and fix shared segment array corruption ()
fixFix ReplicationCheckpoint.compareTo to return 0 for equal checkpoints, preventing TimSort crash during shard allocation ()
securityBump bc-fips to 2.1.3 to fix CVE-2026-8149 ()
securityUpgrade Jackson 2 to 2.22.1 to resolve CVE-2026-54515 ()
securityBump Hadoop from 3.4.2 to 3.5.0 to resolve CVE-2026-2332 ()
breakingRemove OpenSearchYamlFactory / OpenSearchYamlParser after Jackson 3.2.0 update ()
+20 more items in the release notesfeatureAdd dynamic properties support for pattern-based field definitions without cluster state mapping updates ()
featureAdd pluggable data format engine with DataFormatAwareEngine for multi-format indexing ()
featureAdd Lucene engine implementation for pluggable data formats ()
featureAdd merge support for Parquet data format plugin via streaming k-way merge sort ()
featureAdd directory and IndexInput layers for WritableWarm tiered storage ()
featureAdd server-side implementation for tiering status APIs (GetTieringStatus and ListTieringStatus) ()
featureAdd server-side implementation for HotToWarm, WarmToHot, and CancelTiering APIs ()
featureAdd prefetch settings and stored fields prefetch for WritableWarm tiered storage ()
featureAdd slow logs, per-query metrics, and migration metrics for WritableWarm tiered storage ()
featureAdd module wiring and integration tests for WritableWarm tiered storage ()
featureAdd tiered object storage crate for warm node file routing ()
featureAdd event-driven scheduler and stage execution for analytics engine ()
featureAdd coordinator-side DataFusion reduce with streaming Arrow batches ()
featureAdd distributed aggregation with partial/final mode for analytics engine ()
featureAdd distributed join planning and execution for analytics engine ()
featureAdd PPL append command support with multi-child stage runtime for Union ()
featureAdd PPL dedup command support via ROW_NUMBER window function ()
featureAdd PPL eventstats and streamstats window function support ()
featureAdd PPL top and rare command support via window functions ()
featureAdd PPL parse command with regex mode via Rust UDFs ()
featureAdd PPL rex command with sed and extract modes ()
featureAdd PPL spath command with auto-extract mode via json_extract_all UDF ()
featureAdd 7 PPL JSON scalar functions to analytics engine route ()
featureAdd 23 PPL datetime scalar functions to analytics engine route ()
featureAdd 14 additional PPL datetime functions (Wave A) including strftime, date_format, maketime ()
featureAdd 30+ PPL math scalar functions to analytics engine ()
featureAdd PPL string scalar functions to analytics engine (18 functions) ()
featureAdd PPL conditional functions (coalesce, isempty, isblank, case, if, ifnull) to analytics engine ()
featureAdd PPL conversion scalar functions (num, auto, memk, rmcomma, dur2sec, ctime, mktime) to analytics engine ()
featureAdd PPL cryptographic functions (md5, sha1, sha2, crc32) to analytics engine ()
featureAdd PPL array constructor and 8 multivalue functions to analytics engine ()
featureAdd PPL bucketing scalars (span_bucket, width_bucket, minspan_bucket, range_bucket) ()
featureAdd PPL TAKE, FIRST, LAST, LIST, VALUES aggregate functions ()
featureAdd Lucene filter delegation from DataFusion for full-text search predicates ()
featureAdd performance delegation to Lucene for selective filter predicates ()
featureAdd native Arrow transport path with zero-copy transfer for stream transport ()
featureStream Arrow batches on data-node fragment execution path ()
featureAdd support for extra_fields outside _source indexing for improved vector ingestion throughput ()
breakingRemove Unsafe class injection from Java agent ()
securityPin GitHub Actions to commit SHAs for supply chain security ()
+105 more items in the release notesfeatureAdd bitmap64 query support ()
featureAdd warmup phase for pull-based ingestion to prevent serving stale data before catching up with the streaming source ()
featureImplement field_mapping ingestion message mapper for pull-based ingestion ()
featureAdd mapper_settings support and field_mapping mapper type for pull-based ingestion ()
featureRemove experimental tag for pull-based ingestion, marking it as public API ()
featureAdd index warmer support for replica shards using segment replication ()
featureAdd indices to search request slow log for easier request identification ()
featureAdd node-level JVM and CPU runtime metrics following OpenTelemetry semantic conventions ()
featureAdd new Sensitive setting property for tiering dynamic settings authorization ()
featureAdd adaptive shard selection for bulk writes on append-only indices ()
featureAdd support for expected remote cluster name validation in CCS sniff mode ()
featureAdd search_settings support to WLM workload groups with initial timeout setting ()
featureAdd scroll API support for workload management rule-based autotagging ()
featureAdd stream request flag to SearchRequestContext for plugin consumption ()
featureSupport Docker distribution builds for ppc64le, arm64, and s390x architectures ()
featureFallback to Netty HTTP client when AWS CRT client is unavailable on the target platform ()
featureAdd intra-segment support for single-value metric aggregations (sum, min, max, avg, stats, cardinality, value_count) ()
featureExpose wrapped scorer in ProfileScorer for plugin access to custom scorer methods ()
featureFix ProfileScorer.getChildren() to expose wrapped scorer in the scorer tree hierarchy ()
featureRemove X-Request-Id format restrictions and make maximum length configurable ()
featureMake telemetry Tags immutable with allocation-efficient factories and content-based equality ()
featureAdd ref_path support for package-based Hunspell dictionary loading with multi-tenant isolation ()
featurePrevent criteria field updates for context-aware indices to simplify version management ()
featureAdd indexer interface to decouple IndexShard from Engine for pluggable engine architectures ()
featureUse ReadAdviseByContext for MMapDirectory instead of Lucene default read advise ()
fixFix copy_to functionality for geo_point fields with object and array values ()
fixFix field_caps returning empty results for disable_objects mappings and field name corruption ()
fixFix terms lookup subquery to use cluster max_clause_count setting instead of hardcoded fallback ()
fixFix terms aggregation performance regression on high-cardinality fields by adding a max cardinality setting ()
fixFix terms aggregation performance regression using segment-to-global ordinals mapping ()
fixFix array_index_out_of_bounds_exception with wildcard and aggregations under concurrent access ()
fixAdd range validations in query builder and field mapper ()
fixFix synonym_graph filter failure with word_delimiter_graph by handling analyzer dependency ordering ()
fixFix index template pattern collision false positives for multi-wildcard patterns ()
fixFix SecurityException when using opensearch.cgroups.hierarchy.override setting ()
fixFix SLF4J component error caused by slf4j-api version mismatch with log4j binding ()
fixFix JSON escaping in task details log metadata ()
fixFix listBlobsByPrefixInSortedOrder in EncryptedBlobContainer to respect limit and prevent JVM exhaustion ()
fixFix batched deletion of stale cluster metadata manifests to prevent remote storage pile-up ()
fixFix segment replication infinite retry caused by stale metadata checkpoint ()
+31 more items in the release notesfeatureAdd support for fields containing dots in their name as literals ()
featureAdd support for forward translog reading ()
featureAdded public getter method in SourceFieldMapper to return excluded field ()
featureAdd integ test for simulating node join left event when data node cluster state publication lag because the cluster applier thread being busy ().
featureRelax jar hell check when extended plugins share transitive dependencies ()
featureAdded public getter method in SourceFieldMapper to return included field ()
featureSupport for HTTP/3 (server side) ()
featureAdd circuit breaker support for gRPC transport to prevent out-of-memory errors ()
featureAdd index-level-encryption support for snapshots and remote-store ()
featureAdding BackWardCompatibility test for remote publication enabled cluster ()
featureSupport for hll field mapper to support cardinality rollups ()
featureAdd tracing support for StreamingRestChannel ()
featureIntroduce new libs/netty4 module to share common implementation between netty-based plugins and modules (transport-netty4, transport-reactor-netty4) ()
featureAdd validation to make crypto store settings immutable ()
featureIntroduce concurrent translog recovery to accelerate segment replication primary promotion ()
featureUpdate to almalinux:10 ()
featureAdd X-Request-Id to uniquely identify a search request ()
featureAdded TopN selection logic for streaming terms aggregations ()
featureAdded support for Intra Segment Search ()
featureIntroduce AdditionalCodecs and EnginePlugin::getAdditionalCodecs hook to allow additional Codec registration ()
featureAdd support for missing proto fields in GRPC FunctionScore and Highlight ()
featureAdd cluster.initial_cluster_manager_nodes to testClusters OVERRIDABLE_SETTINGS ()
featureAdd BigInteger support for unsigned_long fields in gRPC transport ()
securityInstall demo security information when running ./gradlew run -PinstalledPlugins="['opensearch-security']" ()
featureAdd Alt-Svc header support to advertise HTTP/3 availability ()
fixFix Snapshot rename replacement unbounded length rename ()
fixFix segment replication failure during rolling restart ()
fixFix bug of warm index: FullFileCachedIndexInput was closed error ()
fixFix flaky test ClusterMaxMergesAtOnceIT.testClusterLevelDefaultUpdatesMergePolicy ()
fixFix bug in Assertion framework(Yaml Rest test): numeric comparison fails when comparing Integer vs Long (or Float vs Double) ()
fixFix Netty deprecation warnings in transport-netty4 module ()
fixFix snapshot restore when an index sort is present ()
fixFix SearchPhaseExecutionException to properly initCause ()
fix[repository-s3] remove endpointOverride and let AWS SDK V2 S3 determine the s3 url based on bucket name or arn provided ()
fixFix cluster.remote..server_name setting no populating SNI ()
fixFix X-Opaque-Id header propagation (along with other response headers) for streaming Reactor Netty 4 transport ()
fixAllow removing plugin that's optionally extended ()
fixFix indexing regression and bug fixes for grouping criteria. (20145)
fixLeafReader should not remove SubReaderWrappers incase IndexWriter encounters a non aborting Exception ()
breakingRemove identity-shiro from plugins folder ()
+47 more items in the release notesfeatureAllow setting index.creation_date on index creation and restore for plugin compatibility and migrations ()
featureAdd support for a ForkJoinPool type ()
featureAdd seperate shard limit validation for local and remote indices ()
featureUse Lucene pack method for half_float and unsigned_long when using ApproximatePointRangeQuery ()
featureNew cluster setting search.query.max_query_string_length_monitor_only ()
featureAdd a mapper for context aware segments grouping criteria ()
featureReturn full error for GRPC error response ()
featureAdd support for repository with Server side encryption enabled and client side encryption as well based on a flag ()
featureAdd pluggable gRPC interceptors with explicit ordering()
featureAdd BindableServices extension point to transport-grpc-spi ()
featureAdd metrics for the merged segment warmer feature ()
featureHandle deleted documents for filter rewrite sub-aggregation optimization ()
featureAdd bulk collect API for filter rewrite sub-aggregation optimization ()
featureAllow collectors take advantage of preaggregated data using collectRange API ()
featureBulk collection logic for metrics and cardinality aggregations ()
featureAdd pointer based lag metric in pull-based ingestion ()
featureIntroduced internal API for retrieving metadata about requested indices from transport actions ()
featureAdd cluster defaults for merge autoThrottle, maxMergeThreads, and maxMergeCount; Add segment size filter to the merged segment warmer ()
featureAdd build-tooling to run in FIPS environment ()
featureAdd SMILE/CBOR/YAML document format support to Bulk GRPC endpoint ()
featureMake test-suite runnable under FIPS compliance support ()
featureImplement GRPC Search params Highlightand Sort ()
breakingRemove MultiCollectorWrapper and use MultiCollector in Lucene instead ()
breakingRemove FeatureFlag.MERGED_SEGMENT_WARMER_EXPERIMENTAL_FLAG. ()
securityReplace java.security.AccessController with org.opensearch.secure_sm.AccessController in sub projects with SocketAccess class ()
securityReplace java.security.AccessController with org.opensearch.secure_sm.AccessController in discovery plugins ()
securityUpdate Hadoop to 3.4.2 and enable security (Kerberos) integration tests under JDK-24 and above ()
deprecatedDeprecated existing constructors in ThreadPoolStats.Stats in favor of the new Builder ()
deprecatedDeprecated existing constructors in IndexingStats.Stats in favor of the new Builder ()
deprecatedDeprecated existing constructors in RefreshStats in favor of the new Builder ()
deprecatedDeprecated existing constructors in DocStats and StoreStats in favor of the new Builder ()
deprecatedDeprecated existing constructors in Condition.Stats and DirectoryFileTransferTracker.Stats in favor of the new Builder ()
deprecatedDeprecated existing constructors in RemoteTranslogTransferTracker.Stats and RemoteSegmentTransferTracker.Stats in favor of the new Builder ()
deprecatedDeprecated existing constructors in GetStats, FlushStats and QueryCacheStats in favor of the new Builder ()
deprecatedDeprecated existing constructors in FieldDataStats and CompletionStats in favor of the new Builder ()
deprecatedDeprecated existing constructors in TranslogStats and RequestCacheStats in favor of the new Builder ()
deprecatedDeprecated existing constructors in IndexPressutreStats, DeviceStats and TransportStats in favor of the new Builder ()
deprecatedDeprecated existing constructors in Cache.CacheStats in favor of the new Builder ()
deprecatedDeprecated existing constructors in HttpStats, ScriptStats, AdaptiveSelectionStats and OsStats in favor of the new Builder ()
deprecatedDeprecated existing constructors in ShardStats, WarmerStats and IndexingPressureStats in favor of the new Builder ()
+105 more items in the release notes