Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jakelandis align jackson versions #1

Open
wants to merge 921 commits into
base: align_jackson_versions
Choose a base branch
from

Conversation

pgomulka
Copy link

@pgomulka pgomulka commented Feb 1, 2023

  • Have you signed the contributor license agreement?
  • Have you followed the contributor guidelines?
  • If submitting code, have you built your formula locally prior to submission with gradle check?
  • If submitting code, is your pull request against master? Unless there is a good reason otherwise, we prefer pull requests against master and will backport as needed.
  • If submitting code, have you checked that your submission is for an OS and architecture that we support?
  • If you are submitting this code for a class then read our policy for that.

mark-vieira and others added 30 commits January 23, 2023 16:00
Removes a now-bogus assertion, and instead asserts that the assigned
roles correctly influence the engine created for each shard copy.
Today we say `manually call [/_cluster/reroute?retry_failed=true]` if a
shard exceeds the max number of retries. We should give a verb here, and
also since elastic#90399 we should recommend saying `metric=none` too.
…ingTasks (elastic#93174)

This should help debugging elastic#92910 and rule out possible environmental
issues, such us slowness creating threads due to an overloaded CI
worker.
If this test runs right before midnight, it's possible when getting
the settings for the index, it doesn't exist, due to a mismatch between
the names (datastream names have the date in their name, "uuuu.MM.dd")

Closes elastic#92368
Alternative approach to elastic#93143, avoiding adding overhead in production.
The vast majority of this commit is doing a simple s/Version/TransportVersion/, however there are a couple of areas of complexity.

Handshakes proved to be a particularly tricky issue, as they have complex usage of Version.minimumCompatibilityVersion. In lieu of solving this problem now, I've replaced uses of minimumCompatibilityVersion with TransportVersion.minimumCompatibilityVersion and TransportVersion.calculateMinimumCompatVersion.

As a later piece of work, code using both those methods will need to be refactored to do something else, and the methods removed.

Co-authored-by: Przemyslaw Gomulka <przemyslaw.gomulka@elastic.co>
…93188)

Lucene 9.5 changed the allowed range and the default value for the
allowed percentage of deletes in an index. It used to allow values in
[20, 50] with a default of 33. It now allows values in [5, 50] with a
default of 20.

See apache/lucene#11831.
…ic#93191)

Update tsdb docs to include a warning that the format of the `_tsid` field shouldn't be relied upon and added additional limitations about dimension fields.
`ListenableFuture` throws an `IllegalStateException` if completed more
than once, which (at best) is just silently swallowed and (at worst) may
prevent other cleanup from happening. In particular, we do not expect
`onFailure()` to throw an exception as happens here. This commit
elevates this check to an assertion, and fixes the places that violate
it using `ActionListener#notifyOnce`.
…elastic#93194)

This commit unmutes the test and adds additional logging in order
to debug the test failures in the CI environment.

Relates elastic#91967
This is a workaround that provides support for the 
`IMMEDIATE` and `WAIT_UNTIL` Refresh policies.

Relates ES-5292
…c#93195)

This commit adds a mechanism so geohex aggregations with precision <= 3 are created with unbounded bounds.
Bootstrap check failures were unintentionally moved to the info level
in the log output. This commit restores logging them as errors.

closes elastic#93074
The cluster reroute API (optionally) returns the cluster state in its
response, which can therefore be rather large. elastic#92285 enables a chunked
encoding of the cluster state, and this commit adjusts the reroute API
to make use of this encoding too.
* Documentation for geohex_grid over geo_shape

The feature to add support for geohex_grid aggregations over geo_shape
fields was added in elastic#91956.
This is the associated documentation for that.

* Update docs/reference/aggregations/bucket/geohexgrid-aggregation.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

* Fix explanation for geo_point vs geo_shape proj

When aggregating geohex over geoshape we use requirectangular because
underlying lucene index indexes and searches the polygons in that way.

* Correct spelling

According to grammarly, "therefor" is not an alternative spelling
of "therefore". We should use the conjunctive form here.

See https://www.grammarly.com/blog/therefore-vs-therefor/

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>
* Alternative algorithm for inflated bounds

The BoundedGeoHexGridTiler inflates the bounding box for parent
cell searches since the parent cells bounds do not match the
descendents.

This algorithm does a slightly more refined calculation of the
inflation factor by considering all four corners and inflating in
the four directions independently.

* Remove alternative algorithm for bbox inflation

The new algorithm was faster than the old for the same inflation factor
but had more failures, and a longer tail of failures (which needed
higher inflation factors). So it would take a lot more work (probably)
to find and fix these edge cases. An easier option is to keep the
original algorithm.

* Reduce bbox inflation factor to 0.25

This increases performance by about 10% (a factor of 0.22 increased
performance by about 13%).

We found the error rate for `testGeoShapeGeoHex` was about 0.5% for
inflation factor 0.19 and 0.2% for inflation factor 0.22.
These last 2/1000 failed tests required inflation factors of 0.27
0.30 respectively, so we'll investigate them individually.

* Increase bbox inflation factor to 0.35

Since there were three failures discovered for 0.25, all of which passed
at 0.30, we decided to set the inflation factor to 0.35 initially for
the sake of caution, and consider revising it down again later with
more careful testing.

* Fixed comment about bounded tiler inflation

* Fixed comment about bounded tiler inflation
We introduced a bug in elastic#79885 by not accounting for cases where there's
a nonzero offset in the underlying byte array. Unfortunately
`ESIndexInputTestCase` didn't cover these code paths. This commit
extends the test coverage and fixes the bug.
We introduced the ability to resolve the cluster alias in elastic#91724, given a
connection towards a remote cluster. This works for connections
obtained via RemoteConnectionManager::getConnection. However,
connections can also be initiated via openConnection (e.g., in
SniffConnectionStrategy). This PR adds support to correctly resolve the
cluster alias for such connections, by wrapping them in an
InternalRemoteConnection instance. This is necessary to support the new
remote cluster security model.
…93209)

When numDataNodes is 0 the test framework doesn't create nodes
automatically, for this test we needed to manage the node roles
manually in order to exercise different topology scenarios, by
a misunderstanding autoManageMasterNodes was set to false, while
that was not necessary. This commit sets autoManageMasterNodes to
its default value simplifying slightly the test suite.
Previously UserExceptions could be thrown from the main Elasticsearch
process during startup. With recent refactorings all remaining
validation of arguments was moved to the server cli. Since there are no
longer any uses of the user exception in server, the marker code is no
longer needed. This commit removes that marker and the associated code
in the server cli error pump.
This commit adds a listener that will be called when new operations are written to the translog writer.
…c#93211)

The systemd unit file is part of the Elasticsearch package and should
not be edited. Instead, we recommend creating a service override file.
This commit tweaks the docs for setting tmp dir with systemd to use the
override file instead of editing the unit file.

relates elastic#93121
valeriy42 and others added 30 commits February 6, 2023 15:31
With this commit we parallelize the retrieval of stacktraces via the
`mget` API in the profiling plugin as experiments have shown that we can
better utilize the available resources and thus decrease latency.
Furthermore, we prepare the parallel retrieval of stackframes and
executables using the same approach. Our experiments have not shown a clear
indication of the optimal value for this setting, therefore we set the default
value to `1` to effectively keep the prior behavior. Finally, we also
introduce a setting that can be used to toggle the `realtime` (default kept as
`true`) to allow for further experimentation with that flag.
* Add docs for geo_grid ingest processor

Adds docs for elastic#93370

* Update docs/reference/ingest/processors/geo-grid.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

* Update docs/reference/ingest/processors/geo-grid.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

* Update docs/reference/ingest/processors/geo-grid.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

* Update docs/reference/ingest/processors/geo-grid.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

* Update docs/reference/ingest/processors/geo-grid.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

* Update docs/reference/ingest/processors/geo-grid.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

* Update docs/reference/ingest/processors/geo-grid.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

* Update docs/reference/ingest/processors/geo-grid.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

* Consistent GeoJSON case

---------

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>
* Document datehistogram with long offsets

When offsets are longer than calendar_intervals that are non-standard,
like months which differ in length, then the usual rule of all buckets
starting at the same day and time will no longer apply.

This update attempts to explain this with examples.

* Removed TEST-skip lines

These don't seem to be parsable, even though they match the syntax
described in the README.asciidoc

* Added // TESTRESPONSE[skip:...] lines

* Refined docs description and added more examples

* Update docs/reference/aggregations/bucket/datehistogram-aggregation.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

* Update docs/reference/aggregations/bucket/datehistogram-aggregation.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

* Update docs/reference/aggregations/bucket/datehistogram-aggregation.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

* Update docs/reference/aggregations/bucket/datehistogram-aggregation.asciidoc

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>

---------

Co-authored-by: Abdon Pijpelink <abdon.pijpelink@elastic.co>
Wait for the requested task asynchronously in a similar fashion to TransportListTaskAction from elastic#90977

See elastic#90977

---------

Co-authored-by: David Turner <david.turner@elastic.co>
Today `UpdateSettingsTask#toString` is just the default which is not
helpful when it appears in logs. This commit makes it include the
affected indices and settings.
…stic#93512)

Extracting more of the IO logic to the blob cache to make it reusable as well as dry it up a little.
Small changes to the EOF exception message format in 2 cases in here that only remove redundant information.
Also, noop in memory commit dir around for reuse elsewhere.
Adds a method to replace the field type on a field.
…lastic#93426)

This commit builds on elastic#92576 by adding the `xpack.notification.webhook.host_token_pairs` keystore setting to allow an additional token to be sent when Watcher performs a webhook request. This includes both the regular `webhook` action as well as the `email` action that uses an `attachment` parameter to a url (which internally uses a webhook to retrieve the attachment).

These settings can both by reloaded by updating the keystore and using the reload secure settings API.

- `xpack.notification.webhook.host_token_pairs` is a comma-separated list of `<host>:<port>=<token>` pairs for which the header should be sent. For example, if this contains `localhost:1234=token1,aoeu.com:9182=token2` then the token will only be added to the headers for webhook requests to the `localhost` and `aoeu.com` hosts on the 1234 and 9182 ports with tokens `token1` and `token2` respectively.

Also added is a cluster setting (non-dynamic) — `xpack.notification.webhook.additional_token_enabled` that determines whether the token should be sent. It defaults to `false`.
…stic#93409)

The existing transport profiles are mainly for server side usage. When a
ES node acts as a client, e.g. query cluster, it always uses the default
transport profile's SSL configuration. This means it is not possible to
support separate client side SSL configuration for new remote cluster
feature because it is underlyingly a transport profile.

This PR updates the client channel initialization code to respect the
special remote cluster profile so that the correct SSL configuration is
applied. With the changes, it is now possible to have separate client
SSL configurations for default transport and remote cluster.

Note there is no behavior change for other transport profiles. They will
keep using the default SSL configuration on the client side.
Adds an optional size parameter which caps the number of buckets in responses.
After aggregation, caps the number of buckets we send back in responses and in reduction.
We do nontrivial amounts of work before we start a peer recovery,
particularly recovering from the local translog up to its global
checkpoint. Today the recovery monitor is running during this time, and
will (repeatedly) fail the recovery if it takes more than 30 minutes to
complete. With this commit we disable the recovery monitor until this
local process has completed.

Closes elastic#93542
Some Directory factories would benefit from knowing if a 
Directory is created for a promotable and/or searchable 
shard, as well as knowing the shard id. This change adds 
the ShardRouting to the DirectoryFactory interface and 
adjusts the DirectoryWrapper accordingly (until we have a 
better way to override the default directory factory).
We do nontrivial amounts of work before we start a peer recovery,
particularly recovering from the local translog up to its global
checkpoint. Today the recovery monitor is running during this time, and
will (repeatedly) fail the recovery if it takes more than 30 minutes to
complete. With this commit we disable the recovery monitor until this
local process has completed.

Closes elastic#93542
Renames `failureHandler` to `cleanupOnly` and makes use of
`ActionListener#run` where appropriate.
Some core yaml rest tests use an explicit number of replicas when creating indices. I suspect that this is often not needed and it prevents those tests to run in a 2 nodes (index & search) cluster.

Most of the impacted tests are search related so I'll use the :Search/Search label.

Relates ES-5253
Similarly to elastic#92987, recent improvements to the primitives for writing
async code (particularly elastic#92452 and elastic#92620) mean that we can enormously
simplify `TransportBroadcastByNodeAction`. In particular, we can avoid
accumulating an intermediate array of responses for later processing in
favour of just accumulating the successes and failures into their final
separate lists. We also no longer need to use a separate
`NodesResponseTracker` to discard responses on cancellation. Finally, we
can now discard shard-level responses more promptly on cancellation.
- No need to wait for the get-settings call to return before sending the other requests.

- No need to request cluster health at all, we can compute this locally from the cluster state.

- No need to get the entire cluster state, we only need the metadata and routing table.

- No need to put all the responses into an untyped list and then cast them out again.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.