Elasticsearch version 7.0.0

edit

Elasticsearch version 7.0.0

edit

These release notes include all changes made in the alpha, beta, and RC releases of 7.0.0.

Also see Breaking changes in 7.0.

Known issues

edit
  • Applying deletes or updates on an index after it has been shrunk may corrupt the index. In order to prevent this issue, it is recommended to stop shrinking read-write indices. For read-only indices, it is recommended to force-merge indices after shrinking, which significantly reduces the likeliness of this corruption in the case that deletes/updates would be applied by mistake. This bug is fixed in Elasticsearch 7.7 and later versions. More details can be found on the corresponding issue.
  • Indices created in 6.x with date and date_nanos fields using formats that are incompatible with java.time patterns will cause parsing errors, incorrect date calculations or wrong search results. https://github.com/elastic/elasticsearch/pull/52555 This is fixed in Elasticsearch 7.7 and later versions.
  • Java based formats (created in 7.x or prefixed with 8) - week based parsing and calculations are using JDK default calendar data provider which is Sunday,1. Sunday is considered first day of a week and it requires only 1 day in a week for the first week of the year. It can be worked around by using locale which is based on ISO8601 rule (Monday,4) - for instance en-GB This issue is fixed in Elasticsearch 7.7 with JDK9+ https://github.com/elastic/elasticsearch/pull/48209

Breaking changes

edit
Aggregations
  • Remove support for deprecated params._agg/_aggs for scripted metric aggregations #32979 (issues: #29328, #31597)
  • Percentile/Ranks should return null instead of NaN when empty #30460 (issue: #29066)
  • Render sum as zero if count is zero for stats aggregation #27193 (issue: #26893)
Analysis
Audit
  • Logfile auditing settings remove after deprecation #35205
  • Remove index audit output type #37707 (issues: #29881, #37301)
Authentication
  • Security: remove wrapping in put user response #33512 (issue: #32332)
  • Remove bwc logic for token invalidation #36893 (issue: #36727)
Authorization
  • Remove aliases resolution limitations when security is enabled #31952 (issue: #31516)
  • Remove implicit index monitor privilege #37774
Circuit Breakers
  • Lower fielddata circuit breaker’s default limit #27162 (issue: #27130)
CRUD
  • Version conflict exception message enhancement #29432 (issue: #21278)
  • Using ObjectParser in UpdateRequest #29293 (issue: #28740)
  • Remove support for internal versioning for concurrency control #38254 (issue: #1078)
Distributed
  • Remove undocumented action.master.force_local setting #29351
  • Remove tribe node support #28443
  • Forbid negative values for index.unassigned.node_left.delayed_timeout #26828
  • Remove cluster state size #40061 (issues: #39806, #39827, #39951, #40016)
Features/Features
  • Remove Migration Upgrade and Assistance APIs #40075 (issue: #40014)
Features/Indices APIs
  • Indices Exists API should return 404 for empty wildcards #34499
  • Default to one shard #30539
  • Limit the number of nested documents #27405 (issue: #26962)
Features/Ingest
Features/Java Low Level REST Client
  • Drop support for the low-level REST client on JDK 7 #38540 (issue: #29607)
Features/Watcher
  • Remove Watcher Account "unsecure" settings #36736 (issue: #36403)
Features/Stats
  • Remove the suggest metric from stats APIs #29635 (issue: #29589)
  • Align cat thread pool info to thread pool config #29195 (issue: #29123)
  • Align thread pool info to thread pool configuration #29123 (issue: #29113)
Geo
  • Use geohash cell instead of just a corner in geo_bounding_box #30698 (issue: #25154)
Index APIs
Infra/Circuit Breakers
  • Introduce durability of circuit breaking exception #34460 (issue: #31986)
  • Circuit-break based on real memory usage #31767
Infra/Core
  • Default node.name to the hostname #33677
  • Remove bulk fallback for write thread pool #29609
  • CCS: Drop http address from remote cluster info #29568 (issue: #29207)
  • Remove the index thread pool #29556
  • Main response should not have status 503 when okay #29045 (issue: #8902)
  • Automatically prepare indices for splitting #27451
  • Don’t refresh on _flush _force_merge and _upgrade #27000 (issue: #26972)
Infra/Logging
Infra/Packaging
  • Packaging: Remove windows bin files from the tar distribution #30596
  • Package ingest-user-agent as a module #36956
  • Package ingest-geoip as a module #36898
Infra/REST API
  • Remove GET support for clear cache indices #29525
  • Clear Indices Cache API remove deprecated url params #29068
Infra/Scripting
  • Remove support for deprecated StoredScript contexts #31394 (issues: #27612, #28939)
  • Remove getDate methods from ScriptDocValues #30690
  • Drop ScriptDocValues#date and ScriptDocValues#dates in 7.0.0 #30690 (issue: #23008)
Infra/Settings
  • Remove config prompting for secrets and text #27216
Machine Learning
Mapping
  • Match phrase queries against non-indexed fields should throw an exception #31060
  • Remove legacy mapping code. #29224
  • Reject updates to the _default_ mapping. #29165 (issues: #15613, #28248)
  • Remove the update_all_types option. #28288
  • Remove the _default_ mapping. #28248
  • Reject the index_options parameter for numeric fields #26668 (issue: #21475)
  • Update the default for include_type_name to false. #37285
  • Support include_type_name in RestGetIndicesAction #37149
Network
  • Remove http.enabled setting #29601 (issue: #12792)
  • Remove HTTP max content length leniency #29337
  • Remove TLS 1.0 as a default SSL protocol #37512 (issue: #36021)
  • Security: remove SSL settings fallback #36846 (issue: #29797)
Percolator
  • Remove deprecated percolator map_unmapped_fields_as_string setting #28060
Ranking
  • Add minimal sanity checks to custom/scripted similarities. #33564 (issue: #33309)
  • Scroll queries asking for rescore are considered invalid #32918 (issue: #31775)
  • Forbid negative scores in function_score query #35709 (issue: #33309)
  • Forbid negative field boosts in analyzed queries #37930 (issue: #33309)
Scripting
  • Delete deprecated getValues from ScriptDocValues #36183 (issue: #22919)
Search
  • Remove deprecated url parameters _source_include and _source_exclude #35097 (issues: #22792, #33475)
  • Disallow negative query boost #34486 (issue: #33309)
  • Forbid negative weight in Function Score Query #33390 (issue: #31927)
  • In the field capabilities API, remove support for providing fields in the request body. #30185
  • Remove deprecated options for query_string #29203 (issue: #25551)
  • Fix Laplace scorer to multiply by alpha (and not add) #27125
  • Remove _primary and _replica shard preferences #26791 (issue: #26335)
  • Limit the number of expanded fields it query_string and simple_query_string #26541 (issue: #25105)
  • Make purely negative queries return scores of 0. #26015 (issue: #23449)
  • Remove the deprecated _termvector endpoint. #36131 (issues: #36098, #8484)
  • Remove deprecated Graph endpoints #35956
  • Validate metadata on _msearch #35938 (issue: #35869)
  • Make hits.total an object in the search response #35849 (issue: #33028)
  • Remove the distinction between query and filter context in QueryBuilders #35354 (issue: #35293)
  • Throw a parsing exception when boost is set in span_or query (#28390) #34112 (issue: #28390)
  • Track total hits up to 10,000 by default #37466 (issue: #33028)
  • Use mappings to format doc-value fields by default. #30831 (issues: #26948, #29639)
Security
  • Remove heuristics that enable security on trial licenses #38075 (issue: #38009)
Snapshot/Restore
  • Include size of snapshot in snapshot metadata #30890 (issue: #18543)
  • Remove azure deprecated settings #26099 (issue: #23405)
Store
  • Drop elasticsearch-translog for 7.0 #33373 (issues: #31389, #32281)
  • completely drop index.shard.check_on_startup: fix for 7.0 #33194
Suggesters
  • Fix threshold frequency computation in Suggesters #34312 (issue: #34282)
  • Make Geo Context Mapping Parsing More Strict #32821 (issues: #32202, #32412)
  • Remove the ability to index or query context suggestions without context #31007 (issue: #30712)
ZenDiscovery
  • Best-effort cluster formation if unconfigured #36215
  • Remove DiscoveryPlugin#getDiscoveryTypes #38414 (issue: #38410)

Breaking Java changes

edit
Aggregations
  • Change GeoHashGrid.Bucket#getKey() to return String #31748 (issue: #30320)
Analysis
  • Remove deprecated AnalysisPlugin#requriesAnalysisSettings method #32037 (issue: #32025)
Features/Java High Level REST Client
  • Drop deprecated methods from Retry #33925
  • Cluster health to default to cluster level #31268 (issue: #29331)
  • Remove deprecated API methods #31200 (issue: #31069)
Features/Java Low Level REST Client
Geo
  • Decouple geojson parse logic from ShapeBuilders #27212
Infra/Core
Infra/Transport API
ZenDiscovery
  • Make node field in JoinRequest private #36405

Deprecations

edit
Aggregations
Analysis
  • Replace parameter unicodeSetFilter with unicode_set_filter #29215 (issue: #22823)
  • Replace delimited_payload_filter by delimited_payload #26625 (issue: #21978)
  • Deprecate Standard Html Strip Analyzer in master #26719 (issue: #4704)
  • Remove nGram and edgeNGram token filter names (#38911) #39070 (issues: #30209, #38911)
Audit
Core
  • Deprecate use of scientific notation in epoch time parsing #36691
  • Add backcompat for joda time formats #36531
Cluster Coordination
Features/Indices APIs
  • Default copy settings to true and deprecate on the REST layer #30598
  • Reject setting index.optimize_auto_generated_id after version 7.0.0 #28895 (issue: #27600)
Features/Ingest
  • Deprecate _type in simulate pipeline requests #37949 (issue: #37731)
Features/Java High Level REST Client
Features/Watcher
  • Deprecate xpack.watcher.history.cleaner_service.enabled #37782 (issue: #32041)
  • deprecate types for watcher #37594 (issue: #35190)
Graph
  • Deprecate types in _graph/explore calls. #40466
Infra/Core
  • Deprecate negative epoch timestamps #36793
  • Deprecate use of scientific notation in epoch time parsing #36691
Infra/Packaging
  • Deprecate fallback to java on PATH #37990
Infra/Scripting
  • Add types deprecation to script contexts #37554
  • Deprecate _type from LeafDocLookup #37491
  • Remove deprecated params.ctx #36848 (issue: #34059)
Infra/Transport API
  • Deprecate the transport client in favour of the high-level REST client #27085
Machine Learning
  • Deprecate X-Pack centric ML endpoints #36315 (issue: #35958)
  • Adding ml_settings entry to HLRC and Docs for deprecation_info #38118
  • Datafeed deprecation checks #38026 (issue: #37932)
  • Remove "8" prefixes from file structure finder timestamp formats #38016
  • Adjust structure finder for Joda to Java time migration #37306
  • Resolve 7.0.0 TODOs in ML code #36842 (issue: #29963)
Mapping
  • Deprecate type exists requests. #34663
  • Deprecate types in index API #36575 (issues: #35190, #35790)
  • Deprecate uses of _type as a field name in queries #36503 (issue: #35190)
  • Deprecate types in update_by_query and delete_by_query #36365 (issue: #35190)
  • For msearch templates, make sure to use the right name for deprecation logging. #36344
  • Deprecate types in termvector and mtermvector requests. #36182
  • Deprecate types in update requests. #36181
  • Deprecate types in document delete requests. #36087
  • Deprecate types in get, exists, and multi get. #35930
  • Deprecate types in search and multi search templates. #35669
  • Deprecate types in explain requests. #35611
  • Deprecate types in validate query requests. #35575
  • Deprecate types in count and msearch. #35421 (issue: #34041)
  • Deprecate types in rollover index API #38039 (issue: #35190)
  • Deprecate types in get field mapping API #37667 (issue: #35190)
  • Deprecate types in the put mapping API. #37280 (issues: #29453, #37285)
  • Support include_type_name in the field mapping and index template APIs. #37210
  • Deprecate types in create index requests. #37134 (issues: #29453, #37285)
  • Deprecate use of the _type field in aggregations. #37131 (issue: #36802)
  • Deprecate reference to _type in lookup queries #37016 (issue: #35190)
  • Deprecate the document create endpoint. #36863
  • Deprecate types in index API #36575 (issues: #35190, #35790)
  • Deprecate types in update APIs #36225
Migration
  • Deprecate X-Pack centric Migration endpoints #35976 (issue: #35958)
Monitoring
  • Deprecate /_xpack/monitoring/* in favor of /_monitoring/* #36130 (issue: #35958)
Rollup
  • Re-deprecate xpack rollup endpoints #36451 (issue: #36044)
  • Deprecate X-Pack centric rollup endpoints #35962 (issue: #35958)
Scripting
  • Adds deprecation logging to ScriptDocValues#getValues. #34279 (issue: #22919)
  • Conditionally use java time api in scripting #31441
Search
  • Deprecate filtering on _type. #29468 (issue: #15613)
  • Remove X-Pack centric graph endpoints #36010 (issue: #35958)
  • Deprecate use of type in reindex request body #36823
  • Add typless endpoints for get_source and exist_source #36426
Security
  • Deprecate X-Pack centric license endpoints #35959 (issue: #35958)
  • Deprecate /_xpack/security/* in favor of /_security/* #36293 (issue: #35958)
SQL
  • Deprecate X-Pack SQL translate endpoint #36030
  • Deprecate X-Pack centric SQL endpoints #35964 (issue: #35958)
Watcher
  • Deprecate X-Pack centric watcher endpoints #36218 (issue: #35958)

New features

edit
Allocation
Analysis
  • Relax TermVectors API to work with textual fields other than TextFieldType #31915 (issue: #31902)
  • Add support for inlined user dictionary in Nori #36123 (issue: #35842)
  • Add a prebuilt ICU Analyzer #34958 (issue: #34285)
Authentication
  • Add support for API keys to access Elasticsearch #38291 (issue: #34383)
  • OIDC realm authentication flows #37787
  • OIDC Realm JWT+JWS related functionality #37272 (issues: #35339, #37009)
  • OpenID Connect Realm base functionality #37009 (issue: #35339)
Authorization
CCR
  • Generalize search.remote settings to cluster.remote #33413
  • Add ccr follow info api #37408 (issue: #37127)
Distributed
Features/ILM
Features/Ingest
  • Revert "Introduce a Hashing Processor (#31087)" #32178
  • Add ingest-attachment support for per document indexed_chars limit #28977 (issue: #28942)
Features/Java High Level REST Client
  • GraphClient for the high level REST client and associated tests #32366
Features/Monitoring
  • Collect only display_name (for now) #35265 (issue: #8445)
Geo
  • Integrate Lucene’s LatLonShape (BKD Backed GeoShapes) as default geo_shape indexing approach #36751 (issue: #35320)
  • Integrate Lucene’s LatLonShape (BKD Backed GeoShapes) as default geo_shape indexing approach #35320 (issue: #32039)
  • geotile_grid implementation #37842 (issue: #30240)
  • Fork Lucene’s LatLonShape Classes to local lucene package #36794
  • Integrate Lucene’s LatLonShape (BKD Backed GeoShapes) as default geo_shape indexing approach #36751 (issue: #35320)
  • Integrate Lucene’s LatLonShape (BKD Backed GeoShapes) as default geo_shape indexing approach #35320 (issue: #32039)
Infra/Core
  • Skip shard refreshes if shard is search idle #27500
Infra/Logging
  • Logging: Unify log rotation for index/search slow log #27298
Infra/Plugins
Infra/REST API
Java High Level REST Client
Java Low Level REST Client
  • Make warning behavior pluggable per request #36345
  • Add PreferHasAttributeNodeSelector #36005
Machine Learning
  • Filter undefined job groups from update job calendar actions #30757
  • Add delayed datacheck to the datafeed job runner #35387 (issue: #35131)
  • Adds set_upgrade_mode API endpoint #37837
Mapping
  • Add a feature_vector field. #31102 (issue: #27552)
  • Expose Lucene’s FeatureField. #30618
  • Make typeless APIs usable with indices whose type name is different from _doc #35790 (issue: #35190)
  • Give precedence to index creation when mixing typed templates with typeless index creation and vice-versa. #37871 (issue: #37773)
  • Add nanosecond field mapper #37755 (issues: #27330, #32601)
Ranking
Recovery
  • Allow to trim all ops above a certain seq# with a term lower than X, … #31211 (issue: #10708)
SQL
  • Add basic support for ST_AsWKT geo function #34205
  • Add support for SYS GEOMETRY_COLUMNS #30496 (issue: #29872)
  • Introduce HISTOGRAM grouping function #36510 (issue: #36509)
  • DATABASE() and USER() system functions #35946 (issue: #35863)
  • Introduce INTERVAL support #35521 (issue: #29990)
  • Allow sorting of groups by aggregates #38042 (issue: #35118)
  • Implement FIRST/LAST aggregate functions #37936 (issue: #35639)
  • Introduce SQL DATE data type #37693 (issue: #37340)
Search
  • Add “took” timing info to response for _msearch/template API #30961 (issue: #30957)
  • Add allow_partial_search_results flag to search requests with default setting true #28440 (issue: #27435)
  • Enable adaptive replica selection by default #26522 (issue: #24915)
  • Add intervals query #36135 (issues: #29636, #32406)
  • Added soft limit to open scroll contexts #25244 #36009 (issue: #25244)
  • Introduce ability to minimize round-trips in CCS #37828 (issues: #32125, #37566)
  • Add script filter to intervals #36776
  • Add the ability to set the number of hits to track accurately #36357 (issue: #33028)
  • Add a maximum search request size. #26423
  • Make IntervalQuery available via the Query DSL #36135 (issue: #29636)
Security
  • Switch internal security index to ".security-7" #39337 (issue: #39284)
Suggesters
  • Serialize suggestion responses as named writeables #30284 (issue: #26585)

Enhancements

edit
Aggregations
  • Uses MergingDigest instead of AVLDigest in percentiles agg #28702 (issue: #19528)
  • Added keyed response to pipeline percentile aggregations 22302 #36392 (issue: #22302)
  • Enforce max_buckets limit only in the final reduction phase #36152 (issues: #32125, #35921)
  • Histogram aggs: add empty buckets only in the final reduce step #35921
  • Handles exists query in composite aggs #35758
  • Added parent validation for auto date histogram #35670
  • Add Composite to AggregationBuilders #38207 (issue: #38020)
  • Allow nested fields in the composite aggregation #37178 (issue: #28611)
  • Remove single shard optimization when suggesting shard_size #37041 (issue: #32125)
  • Use List instead of priority queue for stable sorting in bucket sort aggregator #36748 (issue: #36322)
  • Keys are compared in BucketSortPipelineAggregation so making key type… #36407
Allocation
  • Fail start on obsolete indices documentation #37786 (issue: #27073)
  • Fail start on invalid index metadata #37748 (issue: #27073)
  • Fail start of non-data node if node has data #37347 (issue: #27073)
Analysis
  • Allow word_delimiter_graph_filter to not adjust internal offsets #36699 (issues: #33710, #34741)
  • Ensure TokenFilters only produce single tokens when parsing synonyms #34331 (issue: #34298)
  • Allow word_delimiter_graph_filter to not adjust internal offsets #36699 (issues: #33710, #34741)
Audit
  • Add "request.id" to file audit logs #35536
  • Security Audit includes HTTP method for requests #37322 (issue: #29765)
  • Add X-Forwarded-For to the logfile audit #36427
Authentication
  • Invalidate Token API enhancements - HLRC #36362 (issue: #35388)
  • Add DEBUG/TRACE logs for LDAP bind #36028
  • Add Tests for findSamlRealm #35905
  • Add realm information for Authenticate API #35648
  • Formal support for "password_hash" in Put User #35242 (issue: #34729)
  • Propagate auth result to listeners #36900 (issue: #30794)
  • Reorder realms based on last success #36878
  • Improve error message for 6.x style realm settings #36876 (issues: #30241, #36026)
  • Change missing authn message to not mention tokens #36750
  • Invalidate Token API enhancements - HLRC #36362 (issue: #35388)
  • Enhance Invalidate Token API #35388 (issues: #34556, #35115)
Authorization
  • Improve exact index matching performance #36017
  • manage_token privilege for kibana_system #35751
  • Grant .tasks access to kibana_system role #35573
  • Add apm_user reserved role #38206
  • Permission for restricted indices #37577 (issue: #34454)
  • Remove kibana_user and kibana_dashboard_only_user index privileges #37441
  • Create snapshot role #35820 (issue: #34454)
Build
  • Sounds like typo in exception message #35458
  • Allow set section in setup section of REST tests #34678
CCR
  • Add time since last auto follow fetch to auto follow stats #36542 (issues: #33007, #35895)
  • Clean followed leader index UUIDs in auto follow metadata #36408 (issue: #33007)
  • Change AutofollowCoordinator to use wait_for_metadata_version #36264 (issues: #33007, #35895)
  • Refactor AutoFollowCoordinator to track leader indices per remote cluster #36031 (issues: #33007, #35895)
  • Concurrent file chunk fetching for CCR restore #38495
  • Tighten mapping syncing in ccr remote restore #38071 (issues: #36879, #37887)
  • Do not allow put mapping on follower #37675 (issue: #30086)
  • Added ccr to xpack usage infrastructure #37256 (issue: #37221)
  • FollowingEngine should fail with 403 if operation has no seqno assigned #37213
  • Added auto_follow_exception.timestamp field to auto follow stats #36947
  • Add time since last auto follow fetch to auto follow stats #36542 (issues: #33007, #35895)
  • Reduce retention lease sync intervals #40302
  • Renew retention leases while following #39335 (issues: #37165, #38718)
  • Reduce refresh when lookup term in FollowingEngine #39184
  • Integrate retention leases to recovery from remote #38829 (issue: #37165)
  • Enable removal of retention leases #38751 (issue: #37165)
  • Introduce forget follower API #39718 (issue: #37165)
Client
  • Fixed required fields and paths list #39358
Cluster Coordination
  • Remove timeout task after completing cluster state publication #40411
  • Use default discovery implementation for single-node discovery #40036
  • Do not log unsuccessful join attempt each time #39756
Core
  • Override the JVM DNS cache policy #36570
  • Replace usages of AtomicBoolean based block of code by the RunOnce class #35553 (issue: #35489)
  • Added wait_for_metadata_version parameter to cluster state api. #35535
  • Extract RunOnce into a dedicated class #35489
  • Introduce elasticsearch-core jar #28191 (issue: #27933)
  • Rename core module to server #28180 (issue: #27933)
CRUD
  • Rename seq# powered optimistic concurrency control parameters to ifSeqNo/ifPrimaryTerm #36757 (issues: #10708, #36148)
  • Expose Sequence Number based Optimistic Concurrency Control in the rest layer #36721 (issues: #10708, #36148)
  • Add doc’s sequence number + primary term to GetResult and use it for updates #36680 (issues: #10708, #36148)
  • Add seq no powered optimistic locking support to the index and delete transport actions #36619 (issues: #10708, #36148)
  • Add Seq# based optimistic concurrency control to UpdateRequest #37872 (issues: #10708, #36148)
  • Introduce ssl settings to reindex from remote #37527 (issues: #29755, #37287)
  • Use Sequence number powered OCC for processing updates #37308 (issues: #10708, #36148)
  • Document Seq No powered optimistic concurrency control #37284 (issues: #10708, #36148)
  • Enable IPv6 URIs in reindex from remote #36874
  • Rename seq# powered optimistic concurrency control parameters to ifSeqNo/ifPrimaryTerm #36757 (issues: #10708, #36148)
  • Expose Sequence Number based Optimistic Concurrency Control in the rest layer #36721 (issues: #10708, #36148)
  • Add doc’s sequence number + primary term to GetResult and use it for updates #36680 (issues: #10708, #36148)
  • Add seq no powered optimistic locking support to the index and delete transport actions #36619 (issues: #10708, #36148)
  • Set acking timeout to 0 on dynamic mapping update #31140 (issues: #30672, #30844)
Discovery-Plugins
  • Adds connect and read timeouts to discovery-gce #28193 (issue: #24313)
Distributed
  • [Close Index API] Mark shard copy as stale if needed during shard verification #36755
  • [Close Index API] Refactor MetadataIndexStateService #36354 (issue: #36249)
  • [Close Index API] Add TransportShardCloseAction for pre-closing verifications #36249
  • TransportResyncReplicationAction should not honour blocks #35795 (issues: #35332, #35597)
  • Expose all permits acquisition in IndexShard and TransportReplicationAction #35540 (issue: #33888)
  • [RCI] Check blocks while having index shard permit in TransportReplicationAction #35332 (issue: #33888)
  • Recover retention leases during peer recovery #38435 (issue: #37165)
  • Lift retention lease expiration to index shard #38380 (issues: #37165, #37963, #38070)
  • Introduce retention lease background sync #38262 (issue: #37165)
  • Allow shards of closed indices to be replicated as regular shards #38024 (issue: #33888)
  • Expose retention leases in shard stats #37991 (issue: #37165)
  • Introduce retention leases versioning #37951 (issue: #37165)
  • Soft-deletes policy should always fetch latest leases #37940 (issues: #37165, #37375)
  • Sync retention leases on expiration #37902 (issue: #37165)
  • Ignore shard started requests when primary term does not match #37899 (issue: #33888)
  • Move update and delete by query to use seq# for optimistic concurrency control #37857 (issues: #10708, #36148, #37639)
  • Introduce retention lease serialization #37447 (issues: #37165, #37398)
  • Add run under primary permit method #37440 (issue: #37398)
  • Introduce retention lease syncing #37398 (issue: #37165)
  • Introduce retention lease persistence #37375 (issue: #37165)
  • Add validation for retention lease construction #37312 (issue: #37165)
  • Introduce retention lease expiration #37195 (issue: #37165)
  • Introduce shard history retention leases #37167 (issue: #37165)
  • [Close Index API] Add unique UUID to ClusterBlock #36775
  • [Close Index API] Mark shard copy as stale if needed during shard verification #36755
  • [Close Index API] Propagate tasks ids between Freeze, Close and Verify Shard actions #36630
  • Always initialize the global checkpoint #34381
  • Introduce retention lease actions #38756 (issue: #37165)
  • Add dedicated retention lease exceptions #38754 (issue: #37165)
  • Copy retention leases when trim unsafe commits #37995 (issue: #37165)
  • Allow retention lease operations under blocks #39089 (issues: #34648, #37165)
  • Remove retention leases when unfollowing #39088 (issues: #34648, #37165)
  • Introduce retention lease state file #39004 (issues: #37165, #38588, #39032)
  • Enable soft-deletes by default for 7.0+ indices #38929 (issue: #36141)
Engine
  • Remove versionType from translog #31945
  • Do retry if primary fails on AsyncAfterWriteAction #31857 (issues: #31716, #31755)
  • handle AsyncAfterWriteAction exception before listener is registered #31755 (issue: #31716)
  • Use IndexWriter#flushNextBuffer to free memory #27753
  • Remove pre 6.0.0 support from InternalEngine #27720
  • Add sequence numbers based optimistic concurrency control support to Engine #36467 (issues: #10708, #36148)
  • Require soft-deletes when access changes snapshot #36446
  • Use delCount of SegmentInfos to calculate numDocs #36323
  • Always configure soft-deletes field of IndexWriterConfig #36196 (issue: #36141)
  • Enable soft-deletes by default on 7.0.0 or later #36141
  • Always return false from refreshNeeded on ReadOnlyEngine #35837 (issue: #35785)
  • Add a _freeze / _unfreeze API #35592 (issue: #34352)
  • [RCI] Add IndexShardOperationPermits.asyncBlockOperations(ActionListener<Releasable>) #34902 (issue: #33888)
  • Specialize pre-closing checks for engine implementations #38702
  • Ensure that max seq # is equal to the global checkpoint when creating ReadOnlyEngines #37426
  • Enable Bulk-Merge if all source remains #37269
  • Rename setting to enable mmap #37070 (issue: #36668)
  • Add hybridfs store type #36668
  • Introduce time-based retention policy for soft-deletes #34943 (issue: #34908)
  • Handle AsyncAfterWriteAction failure on primary in the same way as failures on replicas #31969 (issues: #31716, #31755)
  • Explicitly advance max_seq_no before indexing #39473 (issue: #38879)
  • Also mmap cfs files for hybridfs #38940 (issue: #36668)
Features/CAT APIs
  • Expose search.throttled on _cat/indices #37073 (issue: #34352)
Features/Features
  • Run Node deprecation checks locally (#38065) #38250 (issue: #38065)
Features/ILM
  • Ensure ILM policies run safely on leader indices #38140 (issue: #34648)
  • Skip Shrink when numberOfShards not changed #37953 (issue: #33275)
  • Inject Unfollow before Rollover and Shrink #37625 (issue: #34648)
  • Add set_priority action to ILM #37397 (issue: #36905)
  • Add Freeze Action #36910 (issue: #34630)
Features/Indices APIs
  • Add cluster-wide shard limit #32856 (issue: #20705)
  • Remove RestGetAllAliasesAction #31308 (issue: #31129)
  • Add rollover-creation-date setting to rolled over index #31144 (issue: #30887)
  • add is-write-index flag to aliases #30942
  • Make index and bulk APIs work without types. #29479
  • Simplify deprecation issue levels #36326
  • New mapping signature and mapping string source fixed. #37401
Features/Ingest
  • Add ignore_missing property to foreach filter (#22147) #31578 (issue: #22147)
  • Compile mustache template only if field includes {{' #37207 (issue: #37120)
  • Move ingest-geoip default databases out of config #36949 (issue: #36898)
  • Make the ingest-geoip databases even lazier to load #36679
  • Updates the grok patterns to be consistent with the logstash #27181
Features/Java High Level REST Client
  • HLRC API for _termvectors #32610 (issue: #27205)
  • Fix strict setting exception handling #37247 (issue: #37090)
  • Use nonblocking entity for requests #32249
Features/Monitoring
  • Make Exporters Async #35765 (issue: #35743)
  • Adding mapping for hostname field #37288
  • Remove types from internal monitoring templates and bump to api 7 #39888 (issue: #38637)
Features/Stats
  • Stats to record how often the ClusterState diff mechanism is used successfully #26973
  • Add JVM dns cache expiration config to JvmInfo #36372
Features/Watcher
  • Validate email adresses when storing a watch #34042 (issue: #33980)
  • Move watcher to use seq# and primary term for concurrency control #37977 (issues: #10708, #37872)
  • Use ILM for Watcher history deletion #37443 (issue: #32041)
  • Add whitelist to HttpClient #36817 (issue: #29937)
  • Remove the index type from internal watcher indexes #39761 (issue: #38637)
Geo
  • Adds a name of the field to geopoint parsing errors #36529 (issue: #15965)
  • Add support to ShapeBuilders for building Lucene geometry #35707 (issue: #35320)
  • Add ST_WktToSQL function #35416 (issue: #29872)
Index APIs
Infra/Circuit Breakers
  • Have circuit breaker succeed on unknown mem usage #33125 (issue: #31767)
  • Account for XContent overhead in in-flight breaker #31613
  • Script Stats: Add compilation limit counter to stats #26387
Infra/Core
  • Add RunOnce utility class that executes a Runnable exactly once #35484
  • Improved IndexNotFoundException’s default error message #34649 (issue: #34628)
  • fix a few versionAdded values in ElasticsearchExceptions #37877
  • Add simple method to write collection of writeables #37448 (issue: #37398)
  • Date/Time parsing: Use java time API instead of exception handling #37222
  • [API] spelling: interruptible #37049 (issue: #37035)
  • Enhancements to IndicesQueryCache. #39099 (issue: #37117)
  • Change zone formatting for all printers #39568 (issue: #38471)
Infra/Logging
Infra/Packaging
  • Choose JVM options ergonomically #30684
  • Add OS/architecture classifier to distributions #37881
  • Change file descriptor limit to 65535 #37537 (issue: #35839)
  • Exit batch files explictly using ERRORLEVEL #29583 (issue: #29582)
  • Add no-jdk distributions #39882
  • Allow AVX-512 on JDK 11+ #40828 (issue: #32138)
Infra/REST API
  • Remove hand-coded XContent duplicate checks #34588 (issues: #22073, #22225, #22253)
  • Add the include_type_name option to the search and document APIs. #29506 (issue: #15613)
  • Validate op_type for _create #27483
Infra/Scripting
  • Tests: Add support for custom contexts to mock scripts #34100
  • Reflect factory signatures in painless classloader #34088
  • Handle missing values in painless #32207 (issue: #29286)
  • Add getZone to JodaCompatibleZonedDateTime #37084
  • [Painless] Add boxed type to boxed type casts for method/return #36571
Infra/Packaging
  • Use bundled JDK in Docker images #40238
  • Upgrade bundled JDK and Docker images to JDK 12 #40229
  • Bundle java in distributions #38013 (issue: #31845)
Infra/Settings
  • Settings: Add keystore creation to add commands #26126
  • Separate out validation of groups of settings #34184
  • Provide a clearer error message on keystore add #39327 (issue: #39324)
Infra/Transport API
  • Change BWC version for VerifyRepositoryResponse #30796 (issue: #30762)
Ingest
  • Grok fix duplicate patterns JAVACLASS and JAVAFILE #35886
  • Implement Drop Processor #32278 (issue: #23726)
Java High Level REST Client
Java Low Level REST Client
  • On retry timeout add root exception #25576
License
  • Require acknowledgement to start_trial license #30135 (issue: #30134)
  • Handle malformed license signatures #37137 (issue: #35340)
Machine Learning
  • Create the ML annotations index #36731 (issues: #26034, #33376)
  • Split in batches and migrate all jobs and datafeeds #36716 (issue: #32905)
  • Add cluster setting to enable/disable config migration #36700 (issue: #32905)
  • Add audits when deprecation warnings occur with datafeed start #36233
  • Add lazy parsing for DatafeedConfig:Aggs,Query #36117
  • Add support for lazy nodes (#29991) #34538 (issue: #29991)
  • Move ML Optimistic Concurrency Control to Seq No #38278 (issues: #10708, #36148)
  • Add explanation so far to file structure finder exceptions #38191 (issue: #29821)
  • Add reason field in JobTaskState #38029 (issue: #34431)
  • Add _meta information to all ML indices #37964
  • Add upgrade mode docs, hlrc, and fix bug #37942
  • Tighten up use of aliases rather than concrete indices #37874
  • Add support for single bucket aggs in Datafeeds #37544 (issue: #36838)
  • Create the ML annotations index #36731 (issues: #26034, #33376)
  • Merge the Jindex master feature branch #36702 (issue: #32905)
  • Add cluster setting to enable/disable config migration #36700 (issue: #32905)
  • Allow stop unassigned datafeed and relax unset upgrade mode wait #39034
Mapping
  • Log document id when MapperParsingException occurs #37800 (issue: #37658)
  • [API] spelling: unknown #37056 (issue: #37035)
  • Make SourceToParse immutable #36971
  • Use index-prefix fields for terms of length min_chars - 1 #36703
  • Introduce a parameter suppress_types_warnings. #38923
Network
  • Add cors support to NioHttpServerTransport #30827 (issue: #28898)
  • Reintroduce mandatory http pipelining support #30820
  • Make http pipelining support mandatory #30695 (issues: #28898, #29500)
  • Add nio http server transport #29587 (issue: #28898)
  • Add class for serializing message to bytes #29384 (issue: #28898)
  • Selectors operate on channel contexts #28468 (issue: #27260)
  • Unify nio read / write channel contexts #28160 (issue: #27260)
  • Create nio-transport plugin for NioTransport #27949 (issue: #27260)
  • Add elasticsearch-nio jar for base nio classes #27801 (issue: #27802)
  • Unify transport settings naming #36623
  • Add sni name to SSLEngine in netty transport #33144 (issue: #32517)
  • Add cors support to NioHttpServerTransport #30827 (issue: #28898)
  • Reintroduce mandatory http pipelining support #30820
  • Make http pipelining support mandatory #30695 (issues: #28898, #29500)
  • Add nio http server transport #29587 (issue: #28898)
  • Selectors operate on channel contexts #28468 (issue: #27260)
  • Unify nio read / write channel contexts #28160 (issue: #27260)
  • Create nio-transport plugin for NioTransport #27949 (issue: #27260)
  • Add elasticsearch-nio jar for base nio classes #27801 (issue: #27802)
  • Add NioGroup for use in different transports #27737 (issue: #27260)
  • Add read timeouts to http module #27713
  • Implement byte array reusage in NioTransport #27696 (issue: #27563)
  • Introduce resizable inbound byte buffer #27551 (issue: #27563)
  • Decouple nio constructs from the tcp transport #27484 (issue: #27260)
  • Remove manual tracking of registered channels #27445 (issue: #27260)
  • Remove tcp profile from low level nio channel #27441 (issue: #27260)
  • Decouple ChannelFactory from Tcp classes #27286 (issue: #27260)
  • Enable TLSv1.3 by default for JDKs with support #38103 (issue: #32276)
Packaging
  • Introduce Docker images build #36246
  • Move creation of temporary directory to Java #36002 (issue: #31003)
Percolator
  • Make the type parameter optional when percolating existing documents. #39987 (issue: #39963)
  • Add support for selecting percolator query candidate matches containing geo_point based queries #26040
Plugins
  • Plugin install: don’t print download progress in batch mode #36361
Ranking
Recovery
  • SyncedFlushService.getShardRoutingTable() should use metadata to check for index existence #37691 (issue: #33888)
  • Make prepare engine step of recovery source non-blocking #37573 (issue: #37174)
  • Make recovery source send operations non-blocking #37503 (issue: #37458)
  • Prepare to make send translog of recovery non-blocking #37458 (issue: #37291)
  • Make finalize step of recovery source non-blocking #37388 (issue: #37291)
  • Make recovery source partially non-blocking #37291 (issue: #36195)
  • Do not mutate RecoveryResponse #37204 (issue: #37174)
  • Don’t block on peer recovery on the target side #37076 (issue: #36195)
  • Reduce recovery time with compress or secure transport #36981 (issue: #33844)
  • Translog corruption marker #33415 (issue: #31389)
  • Do not wait for advancement of checkpoint in recovery #39006 (issues: #38949, #39000)
Rollup
  • Add non-X-Pack centric rollup endpoints #36383 (issues: #35958, #35962)
  • Add more diagnostic stats to job #35471
  • Add wait_for_completion option to StopRollupJob API #34811 (issue: #34574)
  • Replace the TreeMap in the composite aggregation #36675
Recovery
  • Exposed engine must include all operations below global checkpoint during rollback #36159 (issue: #32867)
Scripting
  • Update joda compat methods to use compat class #36654
  • [Painless] Add boxed type to boxed type casts for method/return #36571
  • [Painless] Add def to boxed type casts #36506
Settings
Search
  • Make limit on number of expanded fields configurable #35284 (issues: #26541, #34778)
  • Search: Simply SingleFieldsVisitor #34052
  • Don’t count hits via the collector if the hit count can be computed from index stats. #33701
  • Limit the number of concurrent requests per node #31206 (issue: #31192)
  • Default max concurrent search req. numNodes * 5 #31171 (issues: #30783, #30994)
  • Change ScriptException status to 400 (bad request) #30861 (issue: #12315)
  • Change default value to true for transpositions parameter of fuzzy query #26901
  • Introducing "took" time (in ms) for _msearch #23767 (issue: #23131)
  • Add copy constructor to SearchRequest #36641 (issue: #32125)
  • Add raw sort values to SearchSortValues transport serialization #36617 (issue: #32125)
  • Add sort and collapse info to SearchHits transport serialization #36555 (issue: #32125)
  • Add default methods to DocValueFormat #36480
  • Respect indices options on _msearch #35887
  • Allow efficient can_match phases on frozen indices #35431 (issues: #34352, #34357)
  • Add a new query type - ScriptScoreQuery #34533 (issues: #23850, #27588, #30303)
  • Tie break on cluster alias when merging shard search failures #38715 (issue: #38672)
  • Add finalReduce flag to SearchRequest #38104 (issues: #37000, #37838)
  • Streamline skip_unavailable handling #37672 (issue: #32125)
  • Expose sequence number and primary terms in search responses #37639
  • Add support for merging multiple search responses into one #37566 (issue: #32125)
  • Allow field types to optimize phrase prefix queries #37436 (issue: #31921)
  • Add support for providing absolute start time to SearchRequest #37142 (issue: #32125)
  • Ensure that local cluster alias is never treated as remote #37121 (issues: #32125, #36997)
  • [API] spelling: cacheable #37047 (issue: #37035)
  • Add ability to suggest shard_size on coord node rewrite #37017 (issues: #32125, #36997, #37000)
  • Skip final reduction if SearchRequest holds a cluster alias #37000 (issues: #32125, #36997)
  • Add support for local cluster alias to SearchRequest #36997 (issue: #32125)
  • Use SearchRequest copy constructor in ExpandSearchPhase #36772 (issue: #36641)
  • Add raw sort values to SearchSortValues transport serialization #36617 (issue: #32125)
  • Avoid BytesRef’s copying in ScriptDocValues’s Strings #29581 (issue: #29567)
Security
  • Make credentials mandatory when launching xpack/migrate #36197 (issues: #29847, #33972)
  • Move CAS operations in TokenService to sequence numbers #38311 (issues: #10708, #37872)
  • Cleanup construction of interceptors #38294
  • Add passphrase support to elasticsearch-keystore #37472 (issue: #32691)
  • Types removal security index template #39705 (issue: #38637)
  • Types removal security index template #39542 (issue: #38637)
Snapshot/Restore
  • #31608 Add S3 Setting to Force Path Type Access #34721 (issue: #31608)
  • Allow Parallel Restore Operations #36397
  • Repo Creation out of ClusterStateTask #36157 (issue: #9488)
  • Add read-only repository verification #35731 (issue: #35703)
  • RestoreService should update primary terms when restoring shards of existing indices #38177 (issue: #33888)
  • Allow open indices to be restored #37733
  • Create specific exception for when snapshots are in progress #37550 (issue: #37541)
  • Make Atomic Blob Writes Mandatory #37168 (issues: #37011, #37066)
  • Speed up HDFS Repository Writes #37069
  • Implement Atomic Blob Writes for HDFS Repository #37066 (issue: #37011)
  • [API] spelling: repositories #37053 (issue: #37035)
  • Use CancellableThreads to Abort #35901 (issue: #21759)
  • S3 client encryption #30513 (issues: #11128, #16843)
  • Mark Deleted Snapshot Directories with Tombstones #40228 (issue: #39852)
Stats
  • Handle OS pretty name on old OS without OS release #35453 (issue: #35440)
Store
  • Add RemoveCorruptedShardDataCommand #32281 (issues: #31389, #32279)
  • Add option to force load term dict into memory #39741
SQL
  • Introduce support for NULL values #34573 (issue: #32079)
  • Extend the ODBC metric by differentiating between 32 and 64bit platforms #36753 (issue: #36740)
  • Fix wrong appliance of StackOverflow limit for IN #36724 (issue: #36592)
  • Introduce NOW/CURRENT_TIMESTAMP function #36562 (issue: #36534)
  • Move requests' parameters to requests JSON body #36149 (issue: #35992)
  • Make INTERVAL millis optional #36043 (issue: #36032)
  • Implement data type verification for conditionals #35916 (issue: #35907)
  • Implement GREATEST and LEAST functions #35879 (issue: #35878)
  • Implement null safe equality operator <=> #35873 (issue: #35871)
  • SYS COLUMNS returns ODBC specific schema #35870 (issue: #35376)
  • Polish grammar for intervals #35853
  • Add filtering to SYS TYPES #35852 (issue: #35342)
  • Implement NULLIF(expr1, expr2) function #35826 (issue: #35818)
  • Lock down JDBC driver #35798 (issue: #35437)
  • Implement NVL(expr1, expr2) #35794 (issue: #35782)
  • Implement ISNULL(expr1, expr2) #35793 (issue: #35781)
  • Implement IFNULL variant of COALESCE #35762 (issue: #35749)
  • XPack FeatureSet functionality #35725 (issue: #34821)
  • Perform lazy evaluation of mismatched mappings #35676 (issues: #35659, #35675)
  • Improve validation of unsupported fields #35675 (issue: #35673)
  • Move internals from Joda to java.time #35649 (issue: #35633)
  • Allow look-ahead resolution of aliases for WHERE clause #38450 (issue: #29983)
  • Implement CURRENT_DATE #38175 (issue: #38160)
  • Generate relevant error message when grouping functions are not used in GROUP BY #38017 (issue: #37952)
  • Skip the nested and object field types in case of an ODBC request #37948 (issue: #37801)
  • Add protocol tests and remove jdbc_type from drivers response #37516 (issues: #36635, #36882)
  • Remove slightly used meta commands #37506 (issue: #37409)
  • Describe aliases as views #37496 (issue: #37422)
  • Make FULL non-reserved keyword in the grammar #37377 (issue: #37376)
  • Use declared source for error messages #37161
  • Improve error message when unable to translate to ES query DSL #37129 (issue: #37040)
  • [API] spelling: subtract #37055 (issue: #37035)
  • [API] spelling: similar #37054 (issue: #37035)
  • [API] spelling: input #37048 (issue: #37035)
  • Enhance message for PERCENTILE[_RANK] with field as 2nd arg #36933 (issue: #36903)
  • Preserve original source for each expression #36912 (issue: #36894)
  • Extend the ODBC metric by differentiating between 32 and 64bit platforms #36753 (issue: #36740)
  • Fix wrong appliance of StackOverflow limit for IN #36724 (issue: #36592)
  • Enhance checks for inexact fields #39427 (issue: #38501)
  • Change the default precision for CURRENT_TIMESTAMP function #39391 (issue: #39288)
  • Add "fuzziness" option to QUERY and MATCH function predicates #40529 (issue: #40495)
  • Add "validate.properties" property to JDBC’s allowed list of settings #39050 (issue: #38068)
Suggesters
  • Remove unused empty constructors from suggestions classes #37295
  • [API] spelling: likelihood #37052 (issue: #37035)
Task Management
  • Periodically try to reassign unassigned persistent tasks #36069 (issue: #35792)
  • Only require task permissions #35667 (issue: #35573)
  • Retry if task can’t be written #35054 (issue: #33764)
ZenDiscovery
  • Introduce vote withdrawal #35446
  • Add basic Zen1 transport-level BWC #35443
  • Add diff-based publishing #35290
  • Introduce auto_shrink_voting_configuration setting #35217
  • Introduce transport API for cluster bootstrapping #34961
  • Reconfigure cluster as its membership changes #34592 (issue: #33924)
  • Fail fast on disconnects #34503
  • Add storage-layer disruptions to CoordinatorTests #34347
  • Add low-level bootstrap implementation #34345
  • Gather votes from all nodes #34335
  • Add Cluster State Applier #34257
  • Add safety phase to CoordinatorTests #34241
  • Integrate FollowerChecker with Coordinator #34075
  • Integrate LeaderChecker with Coordinator #34049
  • Trigger join when active master detected #34008
  • Update PeerFinder term on term bump #33992
  • Calculate optimal cluster configuration #33924
  • Introduce FollowersChecker #33917
  • Integrate publication pipeline into Coordinator #33771
  • Add DisruptableMockTransport #33713
  • Implement basic cluster formation #33668
  • Introduce LeaderChecker #33024
  • Add leader-side join handling logic #33013
  • Add PeerFinder#onFoundPeersUpdated #32939
  • Introduce PreVoteCollector #32847
  • Introduce ElectionScheduler #32846
  • Introduce ElectionScheduler #32709
  • Add HandshakingTransportAddressConnector #32643 (issue: #32246)
  • Add UnicastConfiguredHostsResolver #32642 (issue: #32246)
  • Cluster state publication pipeline #32584 (issue: #32006)
  • Introduce gossip-like discovery of master nodes #32246
  • Add core coordination algorithm for cluster state publishing #32171 (issue: #32006)
  • Add term and config to cluster state #32100 (issue: #32006)
  • Add discovery types to cluster stats #36442
  • Introduce zen2 discovery type #36298
  • Persist cluster states the old way on non-master-eligible nodes #36247 (issue: #3)
  • Storage layer WriteStateException propagation #36052
  • Implement Tombstone REST APIs #36007
  • Update default for USE_ZEN2 to true #35998
  • Add warning if cluster fails to form fast enough #35993
  • Allow Setting a List of Bootstrap Nodes to Wait for #35847
  • VotingTombstone class #35832
  • PersistedState interface implementation #35819
  • Support rolling upgrades from Zen1 #35737
  • Add lag detector #35685
  • Move ClusterState fields to be persisted to ClusterState.Metadata #35625
  • Introduce ClusterBootstrapService #35488
  • Introduce vote withdrawal #35446
  • Add basic Zen1 transport-level BWC #35443
  • Add elasticsearch-node detach-cluster tool #37979
  • Deprecate minimum_master_nodes #37868
  • Step down as master when configured out of voting configuration #37802 (issue: #37712)
  • Enforce cluster UUIDs #37775
  • Bubble exceptions up in ClusterApplierService #37729
  • Use m_m_nodes from Zen1 master for Zen2 bootstrap #37701
  • Add tool elasticsearch-node unsafe-bootstrap #37696
  • Report terms and version if cluster does not form #37473
  • Bootstrap a Zen2 cluster once quorum is discovered #37463
  • Zen2: Add join validation #37203
  • Publish cluster states in chunks #36973

Bug fixes

edit
Aggregations
  • Fix InternalAutoDateHistogram reproducible failure #32723 (issue: #32215)
  • fix MultiValuesSourceFieldConfig toXContent #36525 (issue: #36474)
  • Cache the score of the parent document in the nested agg #36019 (issues: #34555, #35985)
  • Correct implemented interface of ParsedReverseNested #35455 (issue: #35449)
  • Handle IndexOrDocValuesQuery in composite aggregation #35392
  • Don’t load global ordinals with the map execution_hint #37833 (issue: #37705)
  • Issue #37303 - Invalid variance fix #37384 (issue: #37303)
  • Skip sibling pipeline aggregators reduction during non-final reduce #40101 (issue: #40059)
  • Extend nextDoc to delegate to the wrapped doc-value iterator for date_nanos #39176 (issue: #39107)
  • Only create MatrixStatsResults on final reduction #38130 (issue: #37587)
Allocation
  • Fix _host based require filters #38173
  • ALLOC: Fail Stale Primary Alloc. Req. without Data #37226 (issue: #37098)
Analysis
  • Close #26771: beider_morse phonetic encoder failure when languageset unspecified #26848 (issue: #26771)
  • Fix PreConfiguredTokenFilters getSynonymFilter() implementations #38839 (issue: #38793)
Audit
  • Fix origin.type for connection_* events #36410
  • Fix IndexAuditTrail rolling restart on rollover edge #35988 (issue: #33867)
  • Fix NPE in Logfile Audit Filter #38120 (issue: #38097)
  • LoggingAuditTrail correctly handle ReplicatedWriteRequest #39925 (issue: #39555)
Authorization
Authentication
  • Fix kerberos setting registration #35986 (issues: #30241, #35942)
  • Add support for Kerberos V5 Oid #35764 (issue: #34763)
  • Enhance parsing of StatusCode in SAML Responses #38628
  • Limit token expiry to 1 hour maximum #38244
  • Fix expired token message in Exception header #37196
  • Fix NPE in CachingUsernamePasswordRealm #36953 (issue: #36951)
  • Allow non super users to create API keys #40028 (issue: #40029)
  • Use consistent view of realms for authentication #38815 (issue: #30301)
  • Correct authenticate response for API key #39684
  • Fix security index auto-create and state recovery race #39582
Build
  • Use explicit deps on test tasks for check #36325
  • Fix jdbc jar pom to not include deps #36036 (issue: #32014)
  • Fix official plugins list #35661 (issue: #35623)
CCR
  • Fix follow stats API’s follower index filtering feature #36647
  • AutoFollowCoordinator should tolerate that auto follow patterns may be removed #35945 (issue: #35937)
  • Only auto follow indices when all primary shards have started #35814 (issue: #35480)
  • Avoid NPE in follower stats when no tasks metadata #35802
  • Fix the names of CCR stats endpoints in usage API #35438
  • Prevent CCR recovery from missing documents #38237
  • Fix file reading in ccr restore service #38117
  • Correct argument names in update mapping/settings from leader #38063
  • Ensure changes requests return the latest mapping version #37633
  • Do not set fatal exception when shard follow task is stopped. #37603
  • Add fatal_exception field for ccr stats in monitoring mapping #37563
  • Do not add index event listener if CCR disabled #37432
  • When removing an AutoFollower also mark it as removed. #37402 (issue: #36761)
  • Make shard follow tasks more resilient for restarts #37239 (issue: #37231)
  • Resume follow Api should not require a request body #37217 (issue: #37022)
  • Report error if auto follower tries auto follow a leader index with soft deletes disabled #36886 (issue: #33007)
  • Remote cluster license checker and no license info. #36837 (issue: #36815)
  • Make CCR resilient against missing remote cluster connections #36682 (issues: #36255, #36667)
  • AutoFollowCoordinator and follower index already created #36540 (issue: #33007)
  • Safe publication of AutoFollowCoordinator #40153 (issue: #38560)
  • Enable reading auto-follow patterns from x-content #40130 (issue: #40128)
  • Stop auto-followers on shutdown #40124
  • Protect against the leader index being removed #39351 (issue: #39308)
  • Handle the fact that ShardStats instance may have no commit or seqno stats #38782 (issue: #38779)
  • Fix LocalIndexFollowingIT#testRemoveRemoteConnection() test #38709 (issue: #38695)
  • Fix shard follow task startup error handling #39053 (issue: #38779)
  • Filter out upgraded version index settings when starting index following #38838 (issue: #38835)
Circuit Breakers
  • Modify BigArrays to take name of circuit breaker #36461 (issue: #31435)
Core
  • Fix CompositeBytesReference#slice to not throw AIOOBE with legal offsets. #35955 (issue: #35950)
  • Suppress CachedTimeThread in hot threads output #35558 (issue: #23175)
  • Upgrade to Joda 2.10.1 #35410 (issue: #33749)
CRUD
  • Fix Reindex from remote query logic #36908
  • Synchronize WriteReplicaResult callbacks #36770
  • Cascading primary failure lead to MSU too low #40249
  • Store Pending Deletions Fix #40345 (issue: #40249)
  • ShardBulkAction ignore primary response on primary #38901
Cluster Coordination
  • Fix node tool cleanup #39389
  • Avoid serialising state if it was already serialised #39179
  • Do not perform cleanup if Manifest write fails with dirty exception #40519 (issue: #39077)
  • Cache compressed cluster state size #39827 (issue: #39806)
  • Drop node if asymmetrically partitioned from master #39598
  • Fixing the custom object serialization bug in diffable utils. #39544
  • Clean GatewayAllocator when stepping down as master #38885
Distributed
  • Combine the execution of an exclusive replica operation with primary term update #36116 (issue: #35850)
  • ActiveShardCount should not fail when closing the index #35936
  • TransportVerifyShardBeforeCloseAction should force a flush #38401 (issues: #33888, #37961)
  • Fix limit on retaining sequence number #37992 (issue: #37165)
  • Close Index API should force a flush if a sync is needed #37961 (issues: #33888, #37426)
  • Force Refresh Listeners when Acquiring all Operation Permits #36835
  • Replaced the word shards with replicas in an error message. (#36234) #36275 (issue: #36234)
  • Ignore waitForActiveShards when syncing leases #39224 (issue: #39089)
  • Fix synchronization in LocalCheckpointTracker#contains #38755 (issues: #33871, #38633)
  • Enforce retention leases require soft deletes #39922 (issue: #39914)
  • Treat TransportService stopped error as node is closing #39800 (issue: #39584)
  • Use cause to determine if node with primary is closing #39723 (issue: #39584)
  • Don’t ack if unable to remove failing replica #39584 (issue: #39467)
  • Fix NPE on Stale Index in IndicesService #38891 (issue: #38845)
Engine
  • Set Lucene version upon index creation. #36038 (issue: #33826)
  • Wrap can_match reader with ElasticsearchDirectoryReader #35857
  • Copy checkpoint atomically when rolling generation #35407
  • Subclass NIOFSDirectory instead of using FileSwitchDirectory #37140 (issues: #36668, #37111)
  • Bubble up exception when processing NoOp #39338 (issue: #38898)
  • ReadOnlyEngine should update translog recovery state information #39238
  • Advance max_seq_no before add operation to Lucene #38879 (issue: #31629)
Features/Features
  • Only count some fields types for deprecation check #40166
  • Deprecation check for indices with very large numbers of fields #39869 (issue: #39851)
Features/ILM
  • Preserve ILM operation mode when creating new lifecycles #38134 (issues: #38229, #38230)
  • Retry ILM steps that fail due to SnapshotInProgressException #37624 (issues: #37541, #37552)
  • Remove indexing_complete when removing policy #36620
  • Handle failure to release retention leases in ILM #39281 (issue: #39181)
  • Correct ILM metadata minimum compatibility version #40569 (issue: #40565)
  • Handle null retention leases in WaitForNoFollowersStep #40477
  • Allow ILM to stop if indices have nonexistent policies #40820 (issue: #40824)
Features/Indices APIs
  • Validate top-level keys for create index request (#23755) #23869 (issue: #23755)
  • Reject delete index requests with a body #37501 (issue: #8217)
  • Fix duplicate phrase in shrink/split error message #36734 (issue: #36729)
  • Get Aliases with wildcard exclusion expression #34230 (issues: #33518, #33805, #34144)
Features/Ingest
Features/Java High Level REST Client
  • Drop extra level from user parser #34932
  • Update IndexTemplateMetadata to allow unknown fields #38448 (issue: #36938)
  • if_seq_no and if_primary_term parameters aren’t wired correctly in REST Client’s CRUD API #38411
  • Update Rollup Caps to allow unknown fields #38339 (issue: #36938)
  • Fix ILM explain response to allow unknown fields #38054 (issue: #36938)
  • Fix ILM status to allow unknown fields #38043 (issue: #36938)
  • Fix ILM Lifecycle Policy to allow unknown fields #38041 (issue: #36938)
  • Update authenticate to allow unknown fields #37713 (issue: #36938)
  • Update verify repository to allow unknown fields #37619 (issue: #36938)
  • Update get users to allow unknown fields #37593 (issue: #36938)
  • Update Execute Watch to allow unknown fields #37498 (issue: #36938)
  • Update Put Watch to allow unknown fields #37494 (issue: #36938)
  • Update Delete Watch to allow unknown fields #37435 (issue: #36938)
  • Fix rest reindex test for IPv4 addresses #37310
  • Fix weighted_avg parser not found for RestHighLevelClient #37027 (issue: #36861)
Features/Java Low Level REST Client
  • Remove I/O pool blocking sniffing call from onFailure callback, add some logic around host exclusion #27985 (issue: #27984)
  • Fix potential IllegalCapacityException in LLRC when selecting nodes #37821
Features/Monitoring
  • Allow built-in monitoring_user role to call GET _xpack API #38060 (issue: #37970)
  • Don’t emit deprecation warnings on calls to the monitoring bulk API. #39805 (issue: #39336)
Features/Watcher
  • Ignore system locale/timezone in croneval CLI tool #33215
  • Support merge nested Map in list for JIRA configurations #37634 (issue: #30068)
  • Watcher accounts constructed lazily #36656
  • Ensures watch definitions are valid json #30692 (issue: #29746)
  • Use non-ILM template setting up watch history template & ILM disabled #39325 (issue: #38805)
  • Only flush Watcher’s bulk processor if Watcher is enabled #38803 (issue: #38798)
  • Fix Watcher stats class cast exception #39821 (issue: #39780)
  • Use any index specified by .watches for Watcher #39541 (issue: #39478)
  • Resolve concurrency with watcher trigger service #39092 (issue: #39087)
  • Metric on watcher stats is a list not an enum #39114
Geo
  • Test GeoShapeQueryTests#testPointsOnly fails #27454
  • More robust handling of ignore_malformed in geoshape parsing #35603 (issues: #34047, #34498)
  • Better handling of malformed geo_points #35554 (issue: #35419)
  • Enables coerce support in WKT polygon parser #35414 (issue: #35059)
  • Fix GeoHash PrefixTree BWC #38584 (issue: #38494)
  • Do not normalize the longitude with value -180 for Lucene shapes #37299 (issue: #37297)
  • Geo Point parse error fix #40447 (issue: #17617)
Highlighting
  • Bug fix for AnnotatedTextHighlighter - port of 39525 #39750 (issue: #39525)
Infra/Core
  • Ensure shard is refreshed once it’s inactive #27559 (issue: #27500)
  • Bubble-up exceptions from scheduler #38317 (issue: #38014)
  • Revert back to joda’s multi date formatters #36814 (issues: #36447, #36602)
  • Propagate Errors in executors to uncaught exception handler #36137 (issue: #28667)
  • Correct name of basic_date_time_no_millis #39367
  • Allow single digit milliseconds in strict date parsing #40676 (issue: #40403)
  • Parse composite patterns using ClassicFormat.parseObject #40100 (issue: #39916)
  • Bat scripts to work with JAVA_HOME with parantheses #39712 (issues: #30606, #33405, #38578, #38624)
  • Change licence expiration date pattern #39681 (issue: #39136)
  • Fix DateFormatters.parseMillis when no timezone is given #39100 (issue: #39067)
  • Don’t close caches while there might still be in-flight requests. #38958 (issue: #37117)
  • Allow single digit milliseconds in strict date parsing #40676 (issue: #40403)
Infra/Packaging
  • Remove NOREPLACE for /etc/elasticsearch in rpm and deb #37839
  • Packaging: Update marker used to allow ELASTIC_PASSWORD #37243 (issue: #37240)
  • Remove permission editing in postinst #37242 (issue: #37143)
  • Some elasticsearch-cli tools could not be run not from ES_HOME #39937
  • Obsolete pre 7.0 noarch package in rpm #39472 (issue: #39414)
  • Suppress error message when /proc/sys/vm/max_map_count is not exists. #35933
  • Use TAR instead of DOCKER build type before 6.7.0 #40723 (issues: #39378, #40511)
  • Source additional files correctly in elasticsearch-cli #40890 (issue: #40889)
Infra/REST API
  • Reject all requests that have an unconsumed body #37504 (issues: #30792, #37501, #8217)
  • Fix #38623 remove xpack namespace REST API #38625
  • Remove the "xpack" namespace from the REST API #38623
  • Update spec files that erroneously documented parts as optional #39122
  • ilm.explain_lifecycle documents human again #39113
  • Index on rollup.rollup_search.json is a list #39097
Infra/Scripting
  • Fix Painless void return bug #38046
  • Correct bug in ScriptDocValues #40488
Infra/Settings
  • Change format how settings represent lists / array #26723
  • Fix setting by time unit #37192
  • Fix handling of fractional byte size value settings #37172
  • Fix handling of fractional time value settings #37171
Infra/Transport API
  • Remove version read/write logic in Verify Response #30879 (issue: #30807)
  • Enable muted Repository test #30875 (issue: #30807)
  • Bad regex in CORS settings should throw a nicer error #29108
Index APIs
  • Fix duplicate phrase in shrink/split error message #36734 (issue: #36729)
  • Raise a 404 exception when document source is not found (#33384) #34083 (issue: #33384)
Ingest
  • Fix on_failure with Drop processor #36686 (issue: #36151)
  • Support default pipelines + bulk upserts #36618 (issue: #36219)
  • Support default pipeline through an alias #36231 (issue: #35817)
License
  • Update versions for start_trial after backport #30218 (issue: #30135)
  • Do not serialize basic license exp in x-pack info #30848
  • Update versions for start_trial after backport #30218 (issue: #30135)
Machine Learning
  • Interrupt Grok in file structure finder timeout #36588
  • Prevent stack overflow while copying ML jobs and datafeeds #36370 (issue: #36360)
  • Adjust file structure finder parser config #35935
  • Fix find_file_structure NPE with should_trim_fields #35465 (issue: #35462)
  • Prevent notifications being created on deletion of a non existent job #35337 (issues: #34058, #35336)
  • Clear Job#finished_time when it is opened (#32605) #32755
  • Fix thread leak when waiting for job flush (#32196) #32541 (issue: #32196)
  • Fix CPoissonMeanConjugate sampling error. #335
  • Report index unavailable instead of waiting for lazy node #38423
  • Fix error race condition on stop _all datafeeds and close _all jobs #38113 (issue: #37959)
  • Update ML results mappings on process start #37706 (issue: #37607)
  • Prevent submit after autodetect worker is stopped #37700 (issue: #37108)
  • Fix ML datafeed CCS with wildcarded cluster name #37470 (issue: #36228)
  • Update error message for process update #37363
  • Wait for autodetect to be ready in the datafeed #37349 (issues: #36810, #37227)
  • Stop datafeeds running when their jobs are stale #37227 (issue: #36810)
  • Order GET job stats response by job id #36841 (issue: #36683)
  • Make GetJobStats work with arbitrary wildcards and groups #36683 (issue: #34745)
  • Fix datafeed skipping first bucket after lookback when aggs are … #39859 (issue: #39842)
  • Refactoring lazy query and agg parsing #39776 (issue: #39528)
  • Stop the ML memory tracker before closing node #39111 (issue: #37117)
  • Scrolling datafeed should clear scroll contexts on error #40773 (issue: #40772)
Mapping
  • Ensure that field aliases cannot be used in multi-fields. #32219
  • Treat put-mapping calls with _doc as a top-level key as typed calls. #38032
  • Correct deprec log in RestGetFieldMappingAction #37843 (issue: #37667)
  • Restore a noop _all metadata field for 6x indices #37808 (issue: #37429)
  • Make sure PutMappingRequest accepts content types other than JSON. #37720
  • Make sure to use the resolved type in DocumentMapperService#extractMappings. #37451 (issue: #36811)
  • Improve Precision for scaled_float #37169 (issue: #32570)
  • Make sure to accept empty unnested mappings in create index requests. #37089
  • Stop automatically nesting mappings in index creation requests. #36924
  • Rewrite SourceToParse with resolved docType #36921 (issues: #35790, #36769)
  • Optimise rejection of out-of-range long values #40325 (issues: #26137, #40323)
  • Make sure to reject mappings with type _doc when include_type_name is false. #38270 (issue: #38266)
Network
  • Adjust SSLDriver behavior for JDK11 changes #32145 (issues: #32122, #32144)
  • Netty4SizeHeaderFrameDecoder error #31057
  • Fix memory leak in http pipelining #30815 (issue: #30801)
  • Fix issue with finishing handshake in ssl driver #30580
  • Do not resolve addresses in remote connection info #36671 (issue: #35658)
  • Always compress based on the settings #36522 (issue: #36399)
  • http.publish_host Should Contain CNAME #32806 (issue: #22029)
  • Adjust SSLDriver behavior for JDK11 changes #32145 (issues: #32122, #32144)
  • Add TRACE, CONNECT, and PATCH http methods #31035 (issue: #31017)
  • Transport client: Don’t validate node in handshake #30737 (issue: #30141)
  • Fix issue with finishing handshake in ssl driver #30580
  • Remove potential nio selector leak #27825
  • Fix issue where the incorrect buffers are written #27695 (issue: #27551)
  • Do not set SO_LINGER on server channels #26997
  • Do not set SO_LINGER to 0 when not shutting down #26871 (issue: #26764)
  • Release pipelined http responses on close #26226
  • Reload SSL context on file change for LDAP #36937 (issues: #30509, #36923)
  • Do not resolve addresses in remote connection info #36671 (issue: #35658)
Packaging
  • Fix error message when package install fails due to missing Java #36077 (issue: #31845)
  • Add missing entries to conffiles #35810 (issue: #35691)
Plugins
  • Ensure that azure stream has socket privileges #28751 (issue: #28662)
Ranking
  • QueryRescorer should keep the window size when rewriting #36836
Recovery
  • Register ResyncTask.Status as a NamedWriteable #36610
  • RecoveryMonitor#lastSeenAccessTime should be volatile #36781
  • Create retention leases file during recovery #39359 (issue: #37165)
  • Recover peers from translog, ignoring soft deletes #38904 (issue: #37165)
  • Retain history for peer recovery using leases #38855
  • Resync should not send operations without sequence number #40433
Rollup
  • Fix rollup search statistics #36674
  • Fix Rollup’s metadata parser #36791 (issue: #36726)
  • Fix rollup search statistics #36674
  • Remove timezone validation on rollup range queries #40647
  • Rollup ignores time_zone on date histogram #40844
Scripting
  • Properly support no-offset date formatting #36316 (issue: #36306)
  • [Painless] Generate Bridge Methods #36097
  • Fix serialization bug in painless execute api request #36075 (issue: #36050)
  • Actually add joda time back to whitelist #35965 (issue: #35915)
  • Add back joda to whitelist #35915 (issue: #35913)
Settings
Search
  • Ensure realtime _get and _termvectors don’t run on the network thread #33814 (issue: #27500)
  • [bug] fuzziness custom auto #33462 (issue: #33454)
  • Fix inner hits retrieval when stored fields are disabled (none) #33018 (issue: #32941)
  • Set maxScore for empty TopDocs to Nan rather than 0 #32938
  • Handle leniency for cross_fields type in multi_match query #27045 (issue: #23210)
  • Raise IllegalArgumentException instead if query validation failed #26811 (issue: #26799)
  • Inner hits fail to propagate doc-value format. #36310
  • Fix custom AUTO issue with Fuzziness#toXContent #35807 (issue: #33462)
  • Fix analyzed prefix query in query_string #35756 (issue: #31702)
  • Fix problem with MatchNoDocsQuery in disjunction queries #35726 (issue: #34708)
  • Fix phrase_slop in query_string query #35533 (issue: #35125)
  • Add a More Like This query routing requirement check (#29678) #33974
  • Look up connection using the right cluster alias when releasing contexts #38570
  • Fix fetch source option in expand search phase #37908 (issue: #23829)
  • Change rational to saturation in script_score #37766 (issue: #37714)
  • Throw if two inner_hits have the same name #37645 (issue: #37584)
  • Ensure either success or failure path for SearchOperationListener is called #37467 (issue: #37185)
  • query_string should use indexed prefixes #36895
  • Avoid duplicate types deprecation messages in search-related APIs. #36802
  • Serialize top-level pipeline aggs as part of InternalAggregations #40177 (issues: #40059, #40101)
  • CCS: Skip empty search hits when minimizing round-trips #40098 (issues: #32125, #40067)
  • CCS: Disable minimizing round-trips when dfs is requested #40044 (issue: #32125)
  • Fix Fuzziness#asDistance(String) #39643 (issue: #39614)
  • Fix alias resolution runtime complexity. #40263 (issue: #40248)
Security
  • Handle 6.4.0+ BWC for Application Privileges #32929
  • Remove license state listeners on closeables #36308 (issues: #33328, #35627, #35628)
  • Fix exit code for Security CLI tools #37956 (issue: #37841)
  • Fix potential NPE in UsersTool #37660
  • Remove dynamic objects from security index #40499 (issue: #35460)
  • Fix libs:ssl-config project setup #39074
  • Do not create the missing index when invoking getRole #39039
Snapshot/Restore
  • Upgrade GCS Dependencies to 1.55.0 #36634 (issues: #35229, #35459)
  • Improve Resilience SnapshotShardService #36113 (issue: #32265)
  • Keep SnapshotsInProgress State in Sync with Routing Table #35710
  • Ensure that gcs client creation is privileged #25938 (issue: #25932)
  • Make calls to CloudBlobContainer#exists privileged #25937 (issue: #25931)
  • Fix Concurrent Snapshot Ending And Stabilize Snapshot Finalization #38368 (issue: #38226)
  • Fix Two Races that Lead to Stuck Snapshots #37686 (issues: #32265, #32348)
  • Fix Race in Concurrent Snapshot Delete and Create #37612 (issue: #37581)
  • Streamline S3 Repository- and Client-Settings #37393
  • Blob store compression fix #39073
SQL
  • Fix translation of LIKE/RLIKE keywords #36672 (issues: #36039, #36584)
  • Scripting support for casting functions CAST and CONVERT #36640 (issue: #36061)
  • Fix translation to painless for conditionals #36636 (issue: #36631)
  • Concat should be always not nullable #36601 (issue: #36169)
  • Fix MOD() for long and integer arguments #36599 (issue: #36364)
  • Fix issue with complex HAVING and GROUP BY ordinal #36594 (issue: #36059)
  • Be lenient for tests involving comparison to H2 but strict for csv spec tests #36498 (issue: #36483)
  • Non ISO 8601 versions of DAY_OF_WEEK and WEEK_OF_YEAR functions #36358 (issue: #36263)
  • Do not ignore all fields whose names start with underscore #36214 (issue: #36206)
  • Fix issue with wrong data type for scripted Grouping keys #35969 (issue: #35662)
  • Fix translation of math functions to painless #35910 (issue: #35654)
  • Fix jdbc jar to include deps #35602
  • Fix query translation for scripted queries #35408 (issue: #35232)
  • Clear the cursor if nested inner hits are enough to fulfill the query required limits #35398 (issue: #35176)
  • Introduce IsNull node to simplify expressions #35206 (issues: #34876, #35171)
  • The SSL default configuration shouldn’t override the https protocol if used #34635 (issue: #33817)
  • Minor fix for javadoc #32573 (issue: #32553)
  • Prevent grouping over grouping functions #38649 (issue: #38308)
  • Relax StackOverflow circuit breaker for constants #38572 (issue: #38571)
  • Fix issue with IN not resolving to underlying keyword field #38440 (issue: #38424)
  • Change the Intervals milliseconds precision to 3 digits #38297 (issue: #37423)
  • Fix esType for DATETIME/DATE and INTERVALS #38179 (issue: #38051)
  • Added SSL configuration options tests #37875 (issue: #37711)
  • Fix casting from date to numeric type to use millis #37869 (issue: #37655)
  • Fix BasicFormatter NPE #37804
  • Return Intervals in SQL format for CLI #37602 (issues: #29970, #36186, #36432)
  • Fix object extraction from sources #37502 (issue: #37364)
  • Fix issue with field names containing "." #37364 (issue: #37128)
  • Fix bug regarding alias fields with dots #37279 (issue: #37224)
  • Proper handling of COUNT(field_name) and COUNT(DISTINCT field_name) #37254 (issue: #30285)
  • Fix COUNT DISTINCT filtering #37176 (issue: #37086)
  • Fix issue with wrong NULL optimization #37124 (issue: #35872)
  • Fix issue with complex expression as args of PERCENTILE/_RANK #37102 (issue: #37099)
  • Handle the bwc Joda ZonedDateTime scripting class in Painless #37024 (issue: #37023)
  • Fix bug regarding histograms usage in scripting #36866
  • Fix issue with always false filter involving functions #36830 (issue: #35980)
  • Protocol returns ISO 8601 String formatted dates instead of Long for JDBC/ODBC requests #36800 (issue: #36756)
  • Enhance Verifier to prevent aggregate or grouping functions from #36799 (issue: #36798)
  • Fix translation of LIKE/RLIKE keywords #36672 (issues: #36039, #36584)
  • Scripting support for casting functions CAST and CONVERT #36640 (issue: #36061)
  • Concat should be always not nullable #36601 (issue: #36169)
  • Fix issue with complex HAVING and GROUP BY ordinal #36594 (issue: #36059)
  • Add missing handling of IP field in JDBC #40384 (issue: #40358)
  • Fix metric aggs on date/time to not return double #40377 (issues: #39492, #40376)
  • CAST supports both SQL and ES types #40365 (issue: #40282)
  • Fix RLIKE bug and improve testing for RLIKE statement #40354 (issues: #34609, #39931)
  • Unwrap the first value in an array in case of array leniency #40318 (issue: #40296)
  • Preserve original source for cast/convert function #40271 (issue: #40239)
  • Fix LIKE function equality by considering its pattern as well #40260 (issue: #39931)
  • Fix issue with optimization on queries with ORDER BY/LIMIT #40256 (issue: #40211)
  • Rewrite ROUND and TRUNCATE functions with a different optional parameter handling method #40242 (issue: #40001)
  • Fix issue with getting DATE type in JDBC #40207
  • Fix issue with date columns returned always in UTC #40163 (issue: #40152)
  • Add multi_value_field_leniency inside FieldHitExtractor #40113 (issue: #39700)
  • Fix incorrect ordering of groupings (GROUP BY) based on orderings (ORDER BY) #40087 (issue: #39956)
  • Fix bug with JDBC timezone setting and DATE type #39978 (issue: #39915)
  • Use underlying exact field for LIKE/RLIKE #39443 (issue: #39442)
  • Fix display size for DATE/DATETIME #40669
  • Have LIKE/RLIKE use wildcard and regexp queries #40628 (issue: #40557)
  • Fix getTime() methods in JDBC #40484
  • SYS TABLES: enumerate tables of requested types #40535 (issue: #40348)
  • Passing an input to the CLI "freezes" the CLI after displaying an error message #40164 (issue: #40557)
  • Wrap ZonedDateTime parameters inside scripts #39911 (issue: #39877)
  • ConstantProcessor can now handle NamedWriteable #39876 (issue: #39875)
  • Extend the multi dot field notation extraction to lists of values #39823 (issue: #39738)
  • Values in datetime script aggs should be treated as long #39773 (issue: #37042)
  • Don’t allow inexact fields for MIN/MAX #39563 (issue: #39427)
  • Fix merging of incompatible multi-fields #39560 (issue: #39547)
  • Fix COUNT DISTINCT column name #39537 (issue: #39511)
  • Enable accurate hit tracking on demand #39527 (issue: #37971)
  • Ignore UNSUPPORTED fields for JDBC and ODBC modes in SYS COLUMNS #39518 (issue: #39471)
  • Enforce JDBC driver - ES server version parity #38972 (issue: #38775)
  • Fall back to using the field name for column label #38842 (issue: #38831)
Suggesters
  • Fix duplicate removal when merging completion suggestions #36996 (issue: #35836)
Task Management
  • Un-assign persistent tasks as nodes exit the cluster #37656
Watcher
ZenDiscovery
  • Remove duplicate discovered peers #35505
  • Respect the no_master_block setting #36478
  • Cancel GetDiscoveredNodesAction when bootstrapped #36423 (issues: #36380, #36381)
  • Only elect master-eligible nodes #35996
  • Remove duplicate discovered peers #35505
  • Fix size of rolling-upgrade bootstrap config #38031
  • Always return metadata version if metadata is requested #37674
  • Elect freshest master in upgrade #37122 (issue: #40)
  • Fix cluster state persistence for single-node discovery #36825

Regressions

edit
Infra/Core
  • Restore date aggregation performance in UTC case #38221 (issue: #37826)
  • Speed up converting of temporal accessor to zoned date time #37915 (issue: #37826)
Mapping
  • Performance fix. Reduce deprecation calls for the same bulk request #37415 (issue: #37411)
Scripting
  • Use Number as a return value for BucketAggregationScript #35653 (issue: #35351)

Upgrades

edit
Discovery-Plugins
  • Bump jackson-databind version for AWS SDK #39183
Engine
  • Upgrade to lucene-8.0.0-snapshot-83f9835. #37668
  • Upgrade to Lucene 8.0.0-snapshot-ff9509a8df #39350
  • Upgrade to Lucene 8.0.0 #39992 (issue: #39640)
Geo
Ingest
  • Update geolite2 database in ingest geoip plugin #33840
  • Bump jackson-databind version for ingest-geoip #39182
Infra/Core
Security
  • Upgrade the bouncycastle dependency to 1.61 #40017 (issue: #40011)
Search
Snapshot/Restore
  • plugins/repository-gcs: Update google-cloud-storage/core to 1.59.0 #39748 (issue: #39366)
Network
Machine Learning
  • No need to add state doc mapping on job open in 7.x #37759