5.0.0-alpha5 Release Notes

Also see Breaking changes in 5.0.

This is an alpha release and is intended for testing purposes only. Indices created in this version will not be compatible with Elasticsearch 5.0.0 GA. Upgrading 5.0.0-alpha5 to any other version is not supported.

Known networking bug in 5.0.0-alpha5

There is a major bug in the new Netty4 implementation in this release which affects any REST requests greater than 1024 bytes in size, and which will generate an exception similar to the following:

[WARN ][http.netty4] [wtOV9Vb] caught exception while handling client http traffic, closing connection [id: 0x1320b717, L:/0:0:0:0:0:0:0:1:9200 - R:/0:0:0:0:0:0:0:1:54732]
java.lang.UnsupportedOperationException: unsupported message type: DefaultFullHttpResponse (expected: ByteBuf, FileRegion)

This is due to incorrect handling of the Expect HTTP header, and it can be worked around in one of three ways:

  • Use a client which does not add Expect headers (including the official clients).
  • Pass a blank Except header, e.g.

    curl -H 'Expect:' ...
  • Use Netty3 for the HTTP layer by passing the following setting at startup:

    ./bin/elasticsearch -Ehttp.type=netty3

Breaking changes

CAT API
Cluster
Core
  • Keep input time unit when parsing TimeValues #19102
Exceptions
Index APIs
  • Removes write consistency level across replication action APIs in favor of wait_for_active_shards #19454 (issue: #18985)
Scripting
  • Remove deprecated 1.x script and template syntax #19387 (issue: #13729)
Search
  • Rename fields to stored_fields and add docvalue_fields #18992 (issue: #18943)
Settings

Breaking Java changes

CRUD
Internal
  • Clean up BytesReference #19196
Java API
  • Add a dedicated client/transport project for transport-client #19435 (issue: #19412)
Network
  • Factor out abstract TCPTransport* classes to reduce the netty footprint #19096
Plugins
  • Migrate query registration from push to pull #19376
  • Add components getter as bridge between guice and new plugin init world #19371
  • Remove CustomNodeAttributes extension point #19348
  • Add RepositoryPlugin interface for registering snapshot repositories #19324
  • Simplified repository api for snapshot/restore #19292
  • Switch most search extensions from push to pull #19238
  • Move RestHandler registration to ActionModule and ActionPlugin #19165
  • Pull actions from plugins #19108
  • Switch analysis from push to pull #19073
  • Remove guice from Mapper plugins #19018
Scripting
  • Remove o.e.script.Template class and move template query to lang-mustache module #19425 (issue: #16314)
Settings
  • Remove node.mode and node.local settings #19428
Snapshot/Restore
  • Removes extra writeBlob method in BlobContainer #19727 (issue: #18528)

Deprecations

CRUD
  • Deprecate found and created in delete and index rest responses #19633
Plugin Discovery Azure Classic
  • Deprecate discovery-azure and rename it to discovery-azure-classic #19186 (issue: #19144)
Templates

New features

Aggregations
Circuit Breakers
  • Circuit break on aggregation bucket numbers with request breaker #19394 (issue: #14046)
Ingest
  • ingest-useragent plugin #19074
Java REST Client
  • Introduce async performRequest method #19400
Mapping
Plugin Repository S3
  • Add support for path_style_access #15114
Reindex API
Translog
  • Add elasticsearch-translog CLI tool with truncate command #19342 (issue: #19123)

Enhancements

Aggregations
  • Make the heuristic to compute the default shard size less aggressive. #19659
  • Add _bucket_count option to buckets_path #19571 (issue: #19553)
  • Remove AggregationStreams #19507
  • Migrate serial_diff aggregation to NamedWriteable #19483
  • Migrate most remaining pipeline aggregations to NamedWriteable #19480
  • Migrate moving_avg pipeline aggregation to NamedWriteable #19420
  • Migrate matrix_stats to NamedWriteable #19418
  • Migrate derivative pipeline aggregation to NamedWriteable #19407
  • Migrate top_hits, histogram, and ip_range aggregations to NamedWriteable #19375
  • Migrate nested, reverse_nested, and children aggregations to NamedWriteable #19374
  • Migrate geohash_grid and geo_bounds aggregations to NamedWriteable #19372
  • Clean up significant terms aggregation results #19365
  • Migrate range, date_range, and geo_distance aggregations to NamedWriteable #19321
  • Migrate terms aggregation to NamedWriteable #19277
  • Migrate sampler and missing aggregations to NamedWriteable #19259
  • Migrate global, filter, and filters aggregation to NamedWriteable #19220
  • Migrate the cardinality, scripted_metric, and geo_centroid aggregations to NamedWriteable #19219
  • Use a static default precision for the cardinality aggregation. #19215
  • Migrate more aggregations to NamedWriteable #19199
  • Migrate stats and extended stats to NamedWriteable #19198
  • Migrate sum, min, and max aggregations over to NamedWriteable #19194
  • Start migration away from aggregation streams #19097
Analysis
  • Specify custom char_filters/tokenizer/token_filters in the analyze API #15671 (issue: #8878)
CAT API
  • Includes the index UUID in the _cat/indices API #19204 (issue: #19132)
CRUD
  • #19664 Renaming operation to result and reworking responses #19704 (issue: #19664)
  • Adding _operation field to index, update, delete response. #19566 (issues: #19267, #9642, #9736)
Cache
  • Enable option to use request cache for size > 0 #19472
Cluster
  • Batch process node left and node failure #19289 (issue: #19282)
  • Index creation waits for write consistency shards #18985
  • Inline reroute with process of node join/master election #18938 (issue: #17270)
Core
  • Makes index creation more friendly #19450 (issue: #9126)
  • Clearer error when handling fractional time values #19158 (issue: #19102)
Discovery
  • Do not log cluster service errors at after joining a master #19705
Exceptions
  • Make NotMasterException a first class citizen #19385
  • Do not catch throwable #19231
Geo
  • GeoBoundingBoxQueryBuilder should throw IAE when topLeft and bottomRight are the same coordinate #18668 (issues: #18458, #18631)
Ingest
  • Add REST _ingest/pipeline to get all pipelines #19603 (issue: #19585)
  • Show ignored errors in verbose simulate result #19404 (issue: #19319)
  • update foreach processor to only support one applied processor. #19402 (issue: #19345)
  • Skip the execution of an empty pipeline #19200 (issue: #19192)
Internal
  • Make Priority an enum #19448
  • Snapshot UUIDs in blob names #19421 (issues: #18156, #18815, #19002, #7540)
  • Add RestController method for deprecating in one step #19343
  • Tighten ensure atomic move cleanup #19309 (issue: #19036)
  • Enable checkstyle ModifierOrder #19214
  • Expose task information from NodeClient #19189
  • Changed rest handler interface to take NodeClient #19170
  • Deprecate ExceptionsHelper.detailedMessage #19160 (issue: #19069)
  • Factor out ChannelBuffer from BytesReference #19129
  • Cleanup Compressor interface #19125
  • Require executor name when calling scheduleWithFixedDelay #17538
Java API
  • Start from a random node number so that clients do not overload the first node configured #14143
Java REST Client
  • Add response body to ResponseException error message #19653 (issue: #19653)
  • Simplify Sniffer initialization and automatically create the default HostsSniffer #19599
  • Remove duplicate dependency declaration for http client #19580 (issue: #19281)
  • Add callback to customize http client settings #19373
  • Rest Client: add short performRequest method variants without params and/or body #19340 (issue: #19312)
Logging
  • Add log message about enforcing bootstrap checks #19451
  • Improve logging for batched cluster state updates #19255
  • Send HTTP Warning Header(s) for any Deprecation Usage from a REST request #17804 (issue: #17687)
Mapping
  • Elasticsearch should reject dynamic templates with unknown match_mapping_type. #17285 (issue: #16945)
Network
  • Explicitly tell Netty to not use unsafe #19786 (issues: #19562, #5624)
  • Enable Netty 4 extensions #19767 (issue: #19526)
  • Modularize netty #19392
  • Simplify TcpTransport interface by reducing send code to a single send method #19223
Percolator
  • Also support query term extract for queries wrapped inside a FunctionScoreQuery #19184
  • Add support for synonym query to percolator query term extraction #19066
Plugin Discovery EC2
  • Use DefaultAWSCredentialsProviderChain AWS SDK class for credentials #19561 (issue: #19556)
  • Support new Asia Pacific (Mumbai) ap-south-1 AWS region #19112 (issue: #19110)
Plugin Discovery GCE
  • Allow _gce_ network when not using discovery gce #15765 (issue: #15724)
Plugin Lang Painless
  • Change Painless Tree Structure for Variable/Method Chains #19459
  • Add replaceAll and replaceFirst #19070
Plugin Mapper Size
  • Add doc values support to the _size field in the mapper-size plugin #19217 (issue: #18334)
Plugins
  • Add ScriptService to dependencies available for plugin components #19770
  • Log one plugin info per line #19441
  • Make rest headers registration pull based #19440
  • Add resource watcher to services available for plugin components #19401
  • Add some basic services to createComponents for plugins #19380
  • Make plugins closeable #19137
  • Plugins: Add status bar on download #18695
Query DSL
  • Allow empty json object in request body in _count API #19595 (issue: #19422)
REST
  • Add Location header to the index, update, and create APIs #19509 (issue: #19079)
  • Add support for wait_for_events to the _cluster/health REST endpoint #19432 (issue: #19419)
  • Rename Search Template REST spec names #19178
Recovery
Reindex API
  • Only ask for _version we need it #19693 (issue: #19135)
  • Use fewer threads when reindexing-from-remote #19636
  • Support authentication with reindex-from-remote #19310
  • Support requests_per_second=-1 to mean no throttling in reindex #19101 (issue: #19089)
Scripting
  • Remove ClusterState from compile api #19136
  • Mustache: Render Map as JSON #18856 (issue: #18970)
Search
  • Limit batch size when scrolling #19367 (issue: #19249)
  • Record method counts while profiling query components #18302
Settings
  • Validates new dynamic settings from the current state #19122 (issue: #19046)
Snapshot/Restore
Stats
  • Add missing field type in the FieldStats response. #19241 (issue: #17750)
  • Expose the ClusterInfo object in the allocation explain output #19106 (issue: #14405)

Bug fixes

Aggregations
  • Undeprecates aggs in the search request #19674 (issue: #19504)
  • Change how nested and reverse_nested aggs know about their nested depth level #19550 (issues: #11749, #12410)
  • Make ExtendedBounds immutable #19490 (issue: #19481)
  • Fix potential AssertionError with include/exclude on terms aggregations. #19252 (issue: #18575)
  • Pass resolved extended bounds to unmapped histogram aggregator #19085 (issue: #19009)
  • Fix "key_as_string" for date histogram and epoch_millis/epoch_second format with time zone #19043 (issue: #19038)
Allocation
  • Fix NPE when initializing replica shard has no UnassignedInfo #19491 (issue: #19488)
  • Make shard store fetch less dependent on the current cluster state, both on master and non data nodes #19044 (issue: #18938)
Analysis
CAT API
  • Fixes cat tasks operation in detailed mode #19759 (issue: #19755)
  • Add index pattern wildcards support to _cat/shards #19655 (issue: #19634)
Cluster
  • Allow routing table to be filtered by index pattern #19688
  • Use executor’s describeTasks method to log task information in cluster service #19531
Core
  • Makes m case sensitive in TimeValue #19649 (issue: #19619)
  • Guard against negative result from FileStore.getUsableSpace when picking data path for a new shard #19554
  • Handle rejected execution exception on reschedule #19505
Dates
  • Make sure TimeIntervalRounding is monotonic for increasing dates #19020
Geo
  • Incomplete results when using geo_distance for large distances #17578
Highlighting
  • Plain highlighter should ignore parent/child queries #19616 (issue: #14999)
  • Let fast vector highlighter also extract terms from the nested query’s inner query. #19337 (issue: #19265)
Index APIs
  • Fixes active shard count check in the case of all shards #19760
  • Add zero-padding to auto-generated rollover index name increment #19610 (issue: #19484)
Ingest
  • Fix NPE when simulating a pipeline with no id #19650
  • Change foreach processor to use ingest metadata for array element #19609 (issue: #19592)
  • No other processors should be executed after on_failure is called #19545
  • rethrow script compilation exceptions into ingest configuration exceptions #19318
  • Rename from ingest-useragent plugin to ingest-user-agent and its processor from useragent to user_agent #19261
Inner Hits
  • Ensure that that InnerHitBuilder uses rewritten queries #19360 (issue: #19353)
Internal
  • Priority values should be unmodifiable #19447
  • Extract AbstractBytesReferenceTestCase #19141
Java REST Client
  • Rest Client: add slash to log line when missing between host and uri #19325 (issue: #19314)
  • Rest Client: HostsSniffer to set http as default scheme #19306
Logging
  • Only log running out of slots when out of slots #19637
Mapping
  • Mappings: Fix detection of metadata fields in documents #19765
  • Fix not_analyzed string fields to error when position_increment_gap is set #19510
  • Automatically created indices should honor index.mapper.dynamic. #19478 (issue: #17592)
Network
  • Verify lower level transport exceptions don’t bubble up on disconnects #19518 (issue: #19096)
Packaging
  • Disable service in pre-uninstall #19328
Parent/Child
  • Make sure that no _parent#null gets introduces as default _parent mapping #19470 (issue: #19389)
Plugin Discovery Azure Classic
Plugin Discovery EC2
Plugin Discovery GCE
Plugin Repository Azure
  • Register group setting for repository-azure accounts #19086
Plugin Repository S3
Query DSL
  • Throw ParsingException if a query is wrapped in an array #19750 (issue: #12887)
  • Restore parameter name auto_generate_phrase_queries #19514 (issue: #19512)
REST
  • Fixes CORS handling so that it uses the defaults #19522 (issue: #19520)
Recovery
  • Move reset recovery into RecoveriesCollection #19466 (issue: #19473)
  • Fix replica-primary inconsistencies when indexing during primary relocation with ongoing replica recoveries #19287 (issue: #19248)
Search
  • Don’t recursively count children profile timings #19397 (issue: #18693)
  • fix explain in function_score if no function filter matches #19185
  • Fix NPEs due to disabled source #18957
Settings
  • Validate settings against dynamic updaters on the master #19088 (issue: #19046)
Stats
  • Fix serialization bug in allocation explain API. #19494
  • Allocation explain: Also serialize includeDiskInfo field #19492
Store
  • Tighten up concurrent store metadata listing and engine writes #19684 (issue: #19416)
  • Make static Store access shard lock aware #19416 (issue: #18938)
  • Catch assertion errors on commit and turn it into a real exception #19357 (issue: #19356)

Upgrades

Network
  • Dependencies: Upgrade to netty 4.1.4 #19689
  • Introduce Netty 4 #19526 (issue: #3226)
  • Upgrade to netty 3.10.6.Final #19235