Commit Graph

2209 Commits

Author SHA1 Message Date
Robert Muir 0d0a4b3ff7 Upgrade to randomizedtesting 2.2.0
Closes #14342
2015-10-28 15:28:30 -04:00
Jason Tedor 06853209aa Fix issues with failed cache loads
This commit fixes two issues that could arise when a loader throws an
exception during a load in Cache#computeIfAbsent.

The underlying issue is that if the loader throws an exception,
Cache#computeIfAbsent would attempt to remove the polluted entry from
the cache. However, this cleanup was performed outside of the segment
lock. This means another thread could race and expire the polluted
entry (leading to NPEs) or get a polluted entry out of the cache before
the loading thread had a chance to cleanup (leading to ISEs).

The solution to the initial problem of correctly handling failed cached
loads is to check for failed loads in all places where entries are
retrieved from the map backing the segment. In such cases, we treat it
as if there was no entry in the cache, and we clean up the cache on a
best-effort basis. All of this is done outside of the segment lock to
avoid reintroducing the deadlock that was initially a problem when
loads were executed under a segment lock.
2015-10-28 14:22:46 -04:00
xuzha 97ecd7bf5a Expose pending cluster state queue size in node stats
Add 3 stats about the queue: total queue size, number of committed cluster
states, and number of pending cluster states.
2015-10-28 10:59:15 -07:00
Nicholas Knize 8c535e0f6e Refactor Geo utilities to Lucene 5.4
Remove local lucene/XGeo* classes and refactor to Lucene 5.4 Geo Utility classes.
2015-10-28 11:41:56 -05:00
Jason Tedor 1390e68465 Fix test bug in CacheTests#testDependentKeyDeadlock 2015-10-28 11:05:00 -04:00
Christoph Büscher 813f494f12 Tests: Fixed missing import 2015-10-28 15:57:11 +01:00
Christoph Büscher e7294322af Merge pull request #14286 from cbuescher/add-loop-querytests
Tests: run base query tests for more than one random query
2015-10-28 15:40:21 +01:00
Jason Tedor 90528ce5af Merge pull request #14334 from jasontedor/cache-deadlock-test
Add cache deadlock test
2015-10-28 10:30:25 -04:00
Jason Tedor baf361f1f9 Add cache deadlock test
This commit adds a unit test for a deadlock issue that existed prior to
commit 1d0b93f766. While commit
1d0b93f766 seems to have addressed the
deadlock issue it would be more robust to have a unit test for it and a
unit test will reduce the risk that future maintenance on Cache will
reintroduce the deadlock issue. This test reliably fails prior to but
passes after commit 1d0b93f766.
2015-10-28 10:29:53 -04:00
Adrien Grand 2ed02f9eb3 Merge pull request #14320 from jpountz/upgrade/lucene-5.4-snapshot-1710880
Upgrade to lucene-5.4-snapshot-1710880.
2015-10-28 14:45:45 +01:00
Christoph Büscher fdcfc7e817 Fix CI failure for recent commit in SimpleQueryStringBuilder 2015-10-28 13:58:36 +01:00
Robert Muir 1672bcc21c Merge pull request #14329 from rmuir/uncaught_exc
Remove uncaught exception handler in tests.
2015-10-28 08:05:44 -04:00
Christoph Büscher fd3a46a1a5 Query DSL: Fix `minimum should match` in `simple_query_string` for single term and multiple fields
Currently a `simple_query_string` query with one term and multiple fields
gets parsed to a BooleanQuery where the number of clauses is determined
by the number of fields, which lead to wrong calculation of `minimum_should_match`.

This PR adds checks to detect this case and wrap the resulting BooleanQuery into
another BooleanQuery with just one should-clause, so `minimum_should_match`
calculation is corrected.

In order to differentiate between the case where one term is queried across
multiple fields and the case where multiple terms are queried on one field,
we override a simplification step in Lucenes SimpleQueryParser that reduces
a one-clause BooleanQuery to the clause itself.

Closes #13884
2015-10-28 12:14:25 +01:00
Jason Tedor 172ad38408 Add listener mechanism for failures to send shard failed
This commit adds a listener mechanism for executing callbacks when
exceptional situations occur sending a shard failure message to the
master. The two types of exceptional situations that can occur are if
the master is not known and if the transport request exception handler
is invoked for any reason after sending the shard failed request to the
master. This commit only adds the infrastructure for executing
callbacks when one of these exceptional situations occur; no effort is
made to properly handle the exceptional situations. Some unit tests are
added for ShardStateAction to test that the listener infrastructure is
correct.

Relates #14252
2015-10-28 06:38:21 -04:00
Jason Tedor 68c6c6400d Fix typo in TransportReplicationActionTests#runReplicateTest 2015-10-28 06:31:41 -04:00
javanna 69cd23d2f4 Remove support for deprecated top level filter in search api
Replaced by post_filter since 1.0

Closes #8862
2015-10-28 10:50:29 +01:00
javanna d7cd5ce60d Remove support for deprecated minimum_should_match and disable_coord in terms query
Use bool query instead.
2015-10-28 10:50:29 +01:00
javanna 49f5757ae2 Remove support for multiple highlighter names
The only way to refer to the plain highlighter is now `plain`, the only way to refer to the fast vector highlighter is `fvh` and the only way to refer to the postings highlighter is `postings`. The name variants like `highlighter`, `postings-highlighter` and `fast-vector-highlighter` have been removed.
2015-10-28 10:50:29 +01:00
javanna 6076ccb7b2 Remove support for filter element in nested query
Replaced by query.
2015-10-28 10:50:29 +01:00
javanna 152f2697f7 Remove support for filter element in function_score query
Replaced by query element.
2015-10-28 10:50:28 +01:00
javanna e14c0451d4 Remove support for edit_distance in completion suggester
Replaced by fuzziness, consistent with other queries.
2015-10-28 10:50:28 +01:00
javanna 69881d5e92 Remove support for fuzzy_min_sim in query_string query
Replaced by fuzziness, consistent with other queries.
2015-10-28 10:50:28 +01:00
javanna 77511643ee Remove support for min_similarity in fuzzy query
Replaced by fuzziness, consistent with other queries.
2015-10-28 10:50:28 +01:00
javanna b66318c3ec Remove support for deprecated execution element in terms query 2015-10-28 10:50:28 +01:00
javanna a4b89d380c Remove filter and no_match_filter element support from indices query
Use query and no_match_query elements instead.
2015-10-28 10:50:28 +01:00
javanna ea750de39f Explain api: move query parsing to the coordinating node
Similarly to what we did with the search api, we can now also move query parsing on the coordinating node for the explain api. Given that the explain api is a single shard operation (compared to search which is instead a broadcast operation), this doesn't change a lot in how the api works internally. The main benefit is that we can simplify the java api by requiring a structured query object to be provided rather than a bytes array that will get parsed on the data node. Previously if you specified a QueryBuilder it would be serialized in json format and would get reparsed on the data node, while now it doesn't go through parsing anymore (as expected), given that after the query-refactoring we are able to properly stream queries natively.

Closes #14270
2015-10-28 10:42:03 +01:00
Simon Willnauer a56b108817 remove dead code 2015-10-28 10:36:08 +01:00
Adrien Grand 43958db10b Upgrade to lucene-5.4-snapshot-1710880. 2015-10-28 09:34:54 +01:00
Robert Muir 47540d5e82 Merge pull request #14327 from rmuir/symlinked_m2
support symlinked .m2/repository in tests
2015-10-28 00:18:09 -04:00
Robert Muir d0808c7148 Remove uncaught exception handler in tests.
This is not needed: full mvn verify passes.

Furthermore, there are all kinds of checks for this case
(rejected while shutting down) in the actual code, so there
is no need to have it here. If its supposed to be non-fatal,
then we add the missing places to the actual code, not globally to all threads.
2015-10-27 23:37:39 -04:00
Nicholas Knize 3d970f17f9 Fix Multi-geometry bbox
A long time coming this Upgrades to Spatial4J 0.5 which includes the fix for calculating a Multi-geometry bounding box.
2015-10-27 21:34:07 -05:00
Robert Muir 15e55e882f support symlinked .m2/repository in tests
Some jenkins servers have this, but our codebase normalization doesn't
follow symlinks. Add this so that its correct.

Only really impacts tests, i suppose it helps if someone has a symlinked plugins/
but that is not recommended :)
2015-10-27 21:24:48 -04:00
Robert Muir eec3c2a97c Cleanup plugin security
* plugin authors can use full policy syntax, including codebase substitution
  properties like core syntax.
* simplify test logic.
* move out test-framework permissions to separate file.

Closes #14311
2015-10-27 20:06:13 -04:00
Simon Willnauer ad1e3ab925 Merge pull request #14318 from s1monw/trash_get_all_stack_traces
Remove and forbid usage of Thread#getAllThreadGroups()
2015-10-27 21:56:11 +01:00
Adrien Grand 60a4e24e2f Merge pull request #14317 from jpountz/fix/cache_propagate_bulk_scorer
Caching Weight wrappers should propagate the BulkScorer.
2015-10-27 21:31:01 +01:00
Simon Willnauer 5fc1c8ba95 Remove and forbid usage of Thread#getAllThreadGroups()
This method needs special permission and can cause all kinds of other problems
if we are creating lots of theads. Also the reason why we added this are fixed
long ago, no need to maintain this code.
2015-10-27 21:13:48 +01:00
Adrien Grand 961df95599 Caching Weight wrappers should propagate the BulkScorer.
If we don't, then we will use the default bulk scorer, which can be
significantly slower in some cases (eg. disjunctions).

Related to https://issues.apache.org/jira/browse/LUCENE-6856
2015-10-27 19:14:14 +01:00
javanna 7eaac7b706 Deduplicate concrete indices after indices resolution
This commit fixes a regression introduced with #12058. This causes failures with the delete index api when providing the same index name multiple times in the request, or aliases/wildcard expressions that end up pointing to the same concrete index. The bug was revealed after merging #11258 as we delete indices in batch rather than one by one. The master node will expect too many acknowledgements based on the number of indices that it's trying to delete, hence the request will never be acknowledged by all nodes.

Closes #14316
2015-10-27 18:21:32 +01:00
Simon Willnauer 935a8fc3d4 Merge pull request #14306 from s1monw/no_lenient_on_module
Don't be lenient in PluginService#processModule(Module)
2015-10-27 16:52:21 +01:00
Simon Willnauer 6fbfdb0e12 remove broken Stream registration API 2015-10-27 16:25:58 +01:00
javanna dc900a08a6 Remove "query" query and fix related parsing bugs
We have two types of parse methods for queries: one for the inner query, to be used once the parser is positioned within the query element, and one for the whole query source, including the query element that wraps the actual query.

With the search refactoring we ended up using the former in count, cat count and delete by query, whereas we should have used the former.  It ends up working properly given that we have a registered (deprecated) query called "query", which used to allow to wrap a filter into a query, but this has the following downsides:
1) prevents us from removing the deprecated "query" query
2) we end up supporting a top level query that is not wrapped within a query element (pre 1.0 syntax iirc that shouldn't be supported anymore)

This commit finally removes the "query" query and fixes the related parsing bugs. We also had some tests that were providing queries in the wrong format, those have been fixed too.

Closes #13326
Closes #14304
2015-10-27 14:54:30 +01:00
Simon Willnauer dde5e83ff4 Merge pull request #11258 from crate/b/reduce_cluster_state_updates_on_index_deletion
Bulk cluster state updates on index deletion
2015-10-27 14:49:40 +01:00
Simon Willnauer 67cdd21573 Don't be lenient in PluginService#processModule(Module)
We today catch the exception and move on - this is no good, we should just fail
all the way if something can't be loaded or processed
2015-10-27 14:48:19 +01:00
Philipp Bogensberger efa6c0b37f perform only one cluster state update per DeleteIndexRequest 2015-10-27 14:07:00 +01:00
Simon Willnauer 573c9948e3 fix test 2015-10-27 12:57:19 +01:00
Simon Willnauer f7fe2c2007 Open up QueryCache and SearcherWrapper extension points
This commit makes QueryCache and SearcherWrappoer registration public
otherwise plugins can't access those extension points due to security restrictions.
2015-10-27 12:52:52 +01:00
Simon Willnauer 04478a5a13 remove dead code 2015-10-27 11:21:30 +01:00
Simon Willnauer b7eb43cef6 make IndicesWarmer final in BitsetFilterCache 2015-10-27 11:21:30 +01:00
Simon Willnauer 6ac4be313a simplify the IndexWarmer interface even more 2015-10-27 11:21:30 +01:00
Simon Willnauer cc131eb328 fix tests 2015-10-27 11:21:30 +01:00