* (Doc+) Error "number of documents in the index can't exceed"
👋 howdy, team!
This adds resolution outline for error ... which induces ongoing, lowkey support
```
Number of documents in the index can't exceed [2147483519]
```
* feedback
* feedback
Co-authored-by: David Turner <david.turner@elastic.co>
* feedback
Co-authored-by: David Turner <david.turner@elastic.co>
Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
* feedback
* feedback
* Test change to address docs check failure
* Revert test change
* Test docs check
---------
Co-authored-by: David Turner <david.turner@elastic.co>
Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
After we flushed the shard, we only make sure that the refresh call is
propagated to the shard engine, but we can't be sure that the call is
actually ends up in a shard refresh. The call in
`InternalEngine#refresh` can return `false` if we couldn't acquire the
lock on `ElasticsearchDirectoryReader`, because it's already being
refreshed.
We can wrap the call in `assertBusy` to retry it in order to make sure
that the shard eventually gets refreshed.
Resolves#101008
This PR improves our integration testing coverage. The idea is to have two data streams,
referred as the baseline acting as the source of truth and a contender data stream whose
contents and results of queries need to be checked against the baseline.
We also include some capability around matching results which needs to be extended
to be able to consider artifacts in results introduced by the usage of synthetic source.
Currently fails due to validation that is only performed in serverless:
```
java.lang.AssertionError: Failure at [logsdb/20_mapping:94]:
Expected: "Failed to parse mapping: Indices with with index mode [logs] only support synthetic source"
but: was "Failed to parse mapping: Parameter [mode=disabled] is not allowed in source"
```
Quick cleanup PR. With
https://github.com/elastic/elasticsearch/pull/109413 merged, nothing in
ESQL production depends on the core binary comparison classes anymore.
This PR removes them to avoid the potential for confusion, and open the
opportunity for merging the core `BinaryComparison` class with the
`EsqlBinaryComparison` base class, which is now its only direct
inheritor (work to be done in a future PR).
* Make union types use unique attribute names
* Cleanup leftover
* Added failing test and final fix to EsRelation
* Implement FieldAttribute.fieldName()
* Fix tests
* Refactor
* Do not ignore union typed field's parent
* Fix important typo
D'oh
* Mute unrelated (part of) test
* Move capability to better location
* Fix analyzer tests
* multi-node tests with an earlier version of union-types (before this change) fail
* Add capability to remaining failing tests
* Remove variable
* Add more complex test
* Consolidate union type cleanup rules
* Add 3 more required_capability's to make CI happy
* Update caps for union type subfield yaml tests
* Update docs/changelog/110793.yaml
* Refined changelog text
* Mute BWC for 8.15.0 for failing YAML tests
* union_types_remove_fields for all 160_union_types tests
The tests fail spordically, so safer to mute the entire suite.
---------
Co-authored-by: Alexander Spies <alexander.spies@elastic.co>
- Added a custom implementation of BooleanBucketedSort to keep the top booleans
- Added boolean aggregator to TOP
- Added tests (Boolean aggregator tests, Top tests for boolean, and added boolean fields to CSV cases)
* Adding new inference stats class
* Working test
* Adding factory to plugin
* Removing unnecessary changes
* Fixing test
* Removing close() for now
* Expanding modelId() comment
* using incrementby and refactoring interfaces
* Implement RequestedRangeNotSatisfiedException for Azure and GCP
* spotless
* rename test
* Generalize 3rd party tests for 3 cloud blob containers
* Follow comments
* minimize changes with main
* Follow comments 2
- Added a test case with groups to the aggregation tests, which detected:
- Fixed BitArray out of index error on `fill()`
- Fixed BooleanArrayState out of index error on `getOrDefault()`, affecting Max and Min
- Also, this bug affected the results of Max/Min in some specific cases
This constructor is needlessly inefficient:
* Sorting an array is quite a bit faster than sorting an `ArrayList` the way we did it here (could do it faster via List.sort but array ist still better).
* Pre-size the hashmap of positions
* Faster `ShardId.compareTo`
* Much faster `SearchShardIterator.compareTo`!
Today we return HTTP code 207 if some features successfully reset and
others failed. This is not an appropriate response code, it has a _very_
precise meaning according to the HTTP specification to which we do not
adhere. Since this API is used only in tests we can be stricter and
return a 500 unless it completely succeeds.
So that the only expected disk write at the point of the assertion is from the bulk request. And not from the asynchronous runnable of updateDanglingIndicesInfo().
Fixes#110551
While it is _technically_ true that we only need to look up the
`Repository` instance in order to load `SnapshotInfo` blobs for
snapshots that aren't currently running, in practice the repository
should exist on all paths anyway, the lookup is cheap, and it simplifies
some future work to resolve it sooner.
The timed `PlainActionFuture#get` method is almost exclusively used in
tests, and never in a place where it really matters that it supplies a
`PlainActionFuture<T>` rather than an `ActionListener<T>`. Moreover some
of its usages wait for longer than `SAFE_AWAIT_TIMEOUT`, typically 30s,
but not for any good reason. We have several suitable test utility
methods for achieving the same thing, and these utilities automatically
deal with exceptions/interrupts/timeouts appropriately. This commit
replaces all the test usages with more suitable test utilities.
The only production usages are in the CCR module. While it would be good
to remove this blocking code, for now this commit just introduces a new
CCR-only utility for this behaviour. That way we can deprecate the
widely-available `PlainActionFuture#get` method and remove it in a
follow-up.
When JNA loads libraries it creates a proxy object for the library.
Unfortunately it doesn't actually inspect any of the methods, those get
bound lazily at runtime when the method is called through the proxy. For
fstat64 we need to know at load time whether the symbol exists, so that
we can fallback to an alternate function if it doesn't.
This commit looks up the NativeLibrary object from JNA for libc and
checks if fstat64 exists during load time.
Collecting the list of snapshot IDs over which to iterate within each
repository today involves several other potentially-large intermediate
collections and a bunch of other unnecessary allocations. This commit
replaces those temporary collections with an iterator which saves all
this temporary memory usage.
Relates ES-8906
This change renames the search response metric attribute status to response_status. This is more
descriptive for an attribute that falls under the global labels namespace.
This also fixes a typo with succes to success.
- Created two new ExecutableActions, SenderExecutableAction and
SingleInputSenderExecutableAction
- Most chat completions are migrated over the
SingleInputSenderExecutableAction
- Every other Action are migrated over to SenderExecutableAction
- RequestManagers and Error Message construction are migrated into the
ActionCreator classes.
Relate #110805
This adds an example to the docs an example of counting the TRUE results
of an expression. You do `COUNT(a > 0 OR NULL)`. That turns the `FALSE`
into `NULL`. Which you need to do because `COUNT(false)` is `1` -
because it's a value. But `COUNT(null)` is `0` - because it's the
absence of values.
We could like to make something more intuitive for this one day. But for
now, this is what works.
Resolves
[#105240](https://github.com/elastic/elasticsearch/issues/105240)
Count_distinct doesn't work on source, but the type resolution was
allowing that through. This resulted in a 500 layer deeper in the
aggregations code. This PR fixes the 500 error by correctly failing
during type resolution.
Includes the setting name as well as its value, and also add a link to
the relevant troubleshooting docs. Also reinstates a thread interrupt
flag that could technically get lost here otherwise.
Small refactoring to merge some optimizer rule super classes that have
exactly one implementation with that implementation. This makes sure
our tests are pointing at the right classes, and makes finding relevant
code a little easier.