mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-10 06:55:32 +00:00
e899e8b4e0
This commit rewords the expect header bug notice to provide the precise details for the bug arising. In particular, the bug does not impact any request over 1024 bytes, but instead impacts any request with a body that is sent in two requests, the first with an Expect: 100-continue header. The size is irrelevant, and requests with bodies larger than 1024 bytes are okay as long as the Expect: 100-continue header is not also sent. Relates #19911
130 lines
3.9 KiB
Plaintext
130 lines
3.9 KiB
Plaintext
[[breaking-changes-5.0]]
|
|
== Breaking changes in 5.0
|
|
|
|
This section discusses the changes that you need to be aware of when migrating
|
|
your application to Elasticsearch 5.0.
|
|
|
|
[IMPORTANT]
|
|
.Known networking bug in 5.0.0-alpha5
|
|
======================================================
|
|
|
|
There is a bug in the new Netty4 implementation in this release which affects any REST request with
|
|
a body that is sent in two requests, the first with an `Expect: 100-continue` header. This bug will
|
|
manifest with an exception similar to the following:
|
|
|
|
[source,txt]
|
|
----
|
|
[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.
|
|
+
|
|
[source,sh]
|
|
----
|
|
curl -H 'Expect:' ...
|
|
----
|
|
|
|
* Use Netty3 for the HTTP layer by passing the following setting at startup:
|
|
+
|
|
[source,sh]
|
|
----
|
|
./bin/elasticsearch -Ehttp.type=netty3
|
|
----
|
|
|
|
======================================================
|
|
|
|
[float]
|
|
[[migration-plugin]]
|
|
=== Migration Plugin
|
|
|
|
The https://github.com/elastic/elasticsearch-migration/blob/2.x/README.asciidoc[`elasticsearch-migration` plugin]
|
|
(compatible with Elasticsearch 2.3.0 and above) will help you to find issues
|
|
that need to be addressed when upgrading to Elasticsearch 5.0.
|
|
|
|
[float]
|
|
=== Indices created before 5.0
|
|
|
|
Elasticsearch 5.0 can read indices created in version 2.0 or above. An
|
|
Elasticsearch 5.0 node will not start in the presence of indices created in a
|
|
version of Elasticsearch before 2.0.
|
|
|
|
[IMPORTANT]
|
|
.Reindex indices from Elasticseach 1.x or before
|
|
=========================================
|
|
|
|
Indices created in Elasticsearch 1.x or before will need to be reindexed with
|
|
Elasticsearch 2.x in order to be readable by Elasticsearch 5.x. It is not
|
|
sufficient to use the <<indices-upgrade,`upgrade`>> API. The easiest
|
|
way to reindex old indices is to upgrade to Elasticsearch 2.3 or later and to use the
|
|
`reindex` API, or the reindex UI provided by the <<migration-plugin,Migration Plugin>>.
|
|
|
|
=========================================
|
|
|
|
The first time Elasticsearch 5.0 starts, it will automatically rename index
|
|
folders to use the index UUID instead of the index name. If you are using
|
|
<<indices-shadow-replicas,shadow replicas>> with shared data folders, first
|
|
start a single node with access to all data folders, and let it rename all
|
|
index folders before starting other nodes in the cluster.
|
|
|
|
[float]
|
|
=== Also see:
|
|
|
|
* <<breaking_50_search_changes>>
|
|
* <<breaking_50_mapping_changes>>
|
|
* <<breaking_50_percolator>>
|
|
* <<breaking_50_suggester>>
|
|
* <<breaking_50_index_apis>>
|
|
* <<breaking_50_document_api_changes>>
|
|
* <<breaking_50_settings_changes>>
|
|
* <<breaking_50_allocation>>
|
|
* <<breaking_50_http_changes>>
|
|
* <<breaking_50_rest_api_changes>>
|
|
* <<breaking_50_cat_api>>
|
|
* <<breaking_50_java_api_changes>>
|
|
* <<breaking_50_packaging>>
|
|
* <<breaking_50_plugins>>
|
|
* <<breaking_50_fs>>
|
|
* <<breaking_50_aggregations_changes>>
|
|
* <<breaking_50_scripting>>
|
|
|
|
|
|
include::migrate_5_0/search.asciidoc[]
|
|
|
|
include::migrate_5_0/mapping.asciidoc[]
|
|
|
|
include::migrate_5_0/percolator.asciidoc[]
|
|
|
|
include::migrate_5_0/suggest.asciidoc[]
|
|
|
|
include::migrate_5_0/index-apis.asciidoc[]
|
|
|
|
include::migrate_5_0/docs.asciidoc[]
|
|
|
|
include::migrate_5_0/settings.asciidoc[]
|
|
|
|
include::migrate_5_0/allocation.asciidoc[]
|
|
|
|
include::migrate_5_0/http.asciidoc[]
|
|
|
|
include::migrate_5_0/rest.asciidoc[]
|
|
|
|
include::migrate_5_0/cat.asciidoc[]
|
|
|
|
include::migrate_5_0/java.asciidoc[]
|
|
|
|
include::migrate_5_0/packaging.asciidoc[]
|
|
|
|
include::migrate_5_0/plugins.asciidoc[]
|
|
|
|
include::migrate_5_0/fs.asciidoc[]
|
|
|
|
include::migrate_5_0/aggregations.asciidoc[]
|
|
|
|
include::migrate_5_0/scripting.asciidoc[]
|