**Problem:**
For historical reasons, source files for the Elasticsearch Guide's security, watcher, and Logstash API docs are housed in the `x-pack/docs` directory. This can confuse new contributors who expect Elasticsearch Guide docs to be located in `docs/reference`.
**Solution:**
- Move the security, watcher, and Logstash API doc source files to the `docs/reference` directory
- Update doc snippet tests to use security
Rel: https://github.com/elastic/platform-docs-team/issues/208
This action does O(#shards) work so it must not happen on a transport
worker. Also it can take minutes to complete in a huge cluster, so it
really should react to cancellations properly.
Closes#99487
CompatibilityVersions now holds a map of system index names to their
mappings versions, alongside the transport version. We also add mapping
versions to the "minimum version barrier": if a node has a system index
whose version is below the cluster mappings version for that system
index, it is not allowed to join the cluster.
Add the warnings and range checking parameters to unary and binary casting to double test generators. I also moved the data type to the value supplier, which the binary case needed. That feels more right - that's what I was intending with TypedData to begin with, but our abstractions are still messy here.
This PR adjusts the order of assertions to ensure we are done with the
atomic reference variable in the previous assertions before changing it
to null.
Resolves: #99406
`search.aggs.rewrite_to_filter_by_filter` allows disabling
FilterByFilterAggregator when used in terms and range aggregation. The
same should apply to filter aggregation.
Fixes#99335
Today, when the number of attempts is exhausted, ProxyConnectionStrategy
checks the number of connections before returns. It reports connection
failure if the number of connections is zero at the time of checking.
However, this behaviour is incorrect. In rare cases, a connection can be
dropped right after it is initially established and before the number
checking. From the perspective of the `openConnections` method, it
should not care whether or when opened connections are subsequently
closed. As long as connections have been initially established, it
should report success instead of failure.
This PR adjusts the code to report success in above situation.
Relates: #94998Resolves: #99113
This adds tests, supported types, and a signature image for `to_string`
and `to_version`. It also fixes the resolution of functions who's names
contain an `_`
Finally, it updates the docs for `ceil` to render the image more nicely.
* ESQL: Disable optimizations with bad null handling
We have optimizations that kick in when aggregating on the following
pairs of field types:
* `long`, `long`
* `keyword`, `long`
* `long`, `keyword`
These optimizations don't have proper support for `null` valued fields
but will grow that after #98749. In the mean time this disables them in
a way that prevents them from bit-rotting.
* Update docs/changelog/99434.yaml
This extends the test case generation functions to take expected warnings, and demonstrates the use of that functionality by testing expected nulls for log10. We can build on this to get proper null handling and tests for the rest of the math functions.
Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
In https://github.com/elastic/elasticsearch/pull/99321, we passed
CompatibilityVersions into GatewayMetaState so that a node's initial
cluster state will hold correct initial values for CompatibilityVersions
for a single node, and not have to wait until a node join event to
populate that part of cluster state.
However, a ClusterCoordinationPlugin may provide a different
`PersistedClusterStateService`, which might also need its own access to
CompatibilityVersions. Here, we add a `CompatibilityVersions` argument
to `PersistedClusterStateServiceFactory#newPersistedClusterStateService`
so that an implementation of `PersistedClusterStateServiceFactory` can
pass CompatibilityVersions into whatever mechanism it uses for creating
the initial cluster state.
Since #99114 the cluster state API exposes per-node versions such as
their transport versions under `node_versions` so there's no need to
duplicate this information under `transport_versions`. This commit
removes the unnecessary information.
When developing the GenericNamedWriteable instances we were dynamically generating the key names from the class names, but it is better to use strings so that class name refactoring does not change the keys causing compatibility issues in inter-node communication in mixed clusters.
Today the chunked responses to broadcast APIs (indices stats, indices
segments and field usage stats) emit one chunk per index, but each
index-level chunk could itself scale with the number of shard copies,
segments, or fields in the index. This commit introduces finer-grained
chunking, such that each chunk now has O(1) size.