Commit Graph

8708 Commits

Author SHA1 Message Date
Ilan Ginzburg e7c80f6445
SOLR-15157: refactor Collection API to separate from Overseer and message handling abstractions (#2390)
No functional changes. In preparation of distributing the Collection API command execution.
2021-02-19 14:40:23 +01:00
Tobias Kaessmann f142bf9c54
SOLR-15038: Add elevateOnlyDocsMatchingQuery and collectElevatedDocsWhenCollapsing parameters to query elevation.
Closes #2134
2021-02-17 10:54:17 +01:00
David Smiley 253b20c3c6
SOLR-15156: [child childFilter='...:...'] no longer escapes (#2367)
The query escaping it did was inconsistent with all other places in Solr where a Lucene query may be provided.
2021-02-16 22:37:34 -05:00
Jason Gerlowski 15bd858d34
SOLR-15087: Allow restoration to existing collections (#2380)
The recent addition of support for a "readonly" mode for collections
opens the door to restoring to already-existing collections.

This commit adds a codepath to allow this.  Any compatible existing
collection may be used for restoration, including the collection that
was the original source of the backup.
2021-02-16 21:59:24 -05:00
Chris Hostetter 1c7dac8307 SOLR-15150: New update.partial.requireInPlace=true option to prevent any partial document updates that can't be done In-Place 2021-02-16 15:05:17 -07:00
Timothy Potter 75fd9ef785
SOLR-15135: Use DocCollection to generate state.json format expected by UI to work with perReplicaState collections. (#2383) 2021-02-16 14:40:50 -07:00
Eric Pugh e6d9eaaf00
SOLR-15121: Move XSLT (tr param) response writer and update request handler to scripting contrib (#2306)
* relocate xslt related classes into scripting contrib
* relocating files to scripting and seperating out unit tests
* relocate files under test-files/scripting/solr, similar to how we do it in other contribs.  deals with some issues in finding files
* Reformatting using the Google Java Format...
* use actual param name, not the variable to properly test api!
* Clean up references to paths, and deal with the mish mash of Xslt and XSLT in class names.
* Move XSLT processing out of XMLLoader
* Move TransformerProvider.Dedupe getTransformer logic.


Co-authored-by: epugh@opensourceconnections.com <>
Co-authored-by: David Smiley <dsmiley@apache.org>
2021-02-15 13:16:18 -05:00
Jason Gerlowski f993c392f1
SOLR-15101: Add list/delete APIs for incremental backups (#2336)
SOLR-13608 introduces a new "incremental" backup format, which allows
storage of multiple backup "points" in the same location. This
development introduces a need for APIs to manage these potentially
plural backups.

This commit introduces /admin/collections?action=LISTBACKUPS and
/admin/collections?action=DELETEBACKUP to handle these backups.
2021-02-15 07:04:05 -05:00
Ishan Chattopadhyaya 83ccf23fa2 SOLR-15138: Send an intra-process message after ZkClient#create() call 2021-02-15 12:22:22 +05:30
Ilan Ginzburg 23755ddfdd
SOLR-14928: allow cluster state updates to be done in a distributed way and not through Overseer (#2364) 2021-02-13 02:42:18 +01:00
Ishan Chattopadhyaya 4b113067d8 SOLR-15138: Collection creation for PerReplicaStates does not scale to large collections as well as regular collections (#2318) 2021-02-13 01:10:35 +05:30
epugh@opensourceconnections.com f95c150da2 common typo for defined fixed 2021-02-12 10:11:09 -05:00
epugh@opensourceconnections.com 3ea64b39cb typo fix 2021-02-12 10:07:46 -05:00
David Smiley db61297590 SOLR-15011: Remove flawed test 2021-02-11 22:53:38 -05:00
Naoto MINAMI 0cbb38ff4a
SOLR-15114: WAND does not work correctly on multiple segments (#2259)
In Solr 8.6.3, minCompetitiveScore of WANDScorer resets to zero for each index segment and remain zero until maxScore is updated.
There are two causes of this problem:
* MaxScoreCollector does not set minCompetitiveScore of MinCompetitiveScoreAwareScorable newly generated for another index segment.
* MaxScoreCollector updates minCompetitiveScore only if maxScore is updated. This behavior is correct considering the purpose of MaxScoreCollector.

For details, see the attached pdf https://issues.apache.org/jira/secure/attachment/13019548/wand.pdf.
2021-02-11 09:10:03 -08:00
Jason Gerlowski aea29464f1 SOLR-13608: Fix incremental-backup test failures
The initial incremental-backup commit introduced several test failures
on Windows test runs that I neglected to catch before committing.  Most
of these failures were the result of bad 'location' path handling in the
test logic itself, though there were a few tweaks made to Solr code
itself to better handle Windows paths as well.
2021-02-10 15:39:13 -05:00
Jason Gerlowski e186d8c439 Fix debug-logging-caused test failures 2021-02-08 19:32:20 -05:00
Joel Bernstein da8b8ecdb8 SOLR-15142: Allow the cat Streaming Expression to read gzip files 2021-02-08 15:07:39 -05:00
Jason Gerlowski ed2eebfa4d Debug logging for TestIncrementalCoreBackup Windows failures 2021-02-08 14:36:54 -05:00
Jason Gerlowski e89fba6fe7
SOLR-15118: Convert /v2/collections APIs to annotations (#2281)
Solr supports two different ways to write v2 APIs: a JSON spec based
approach, and one based on annotated POJOs.  The POJO method is now
preferred.

This commit switches the /v2/collections APIs over to the
annotation-based approach.  Since V2RequestSupport only works with
jsonspec-based APIs, this commit also changes CollectionAdminRequest
to no longer implement that interface.
2021-02-08 10:11:58 -05:00
Eric Pugh 573b442903
SOLR-15123: Make all Tool option descriptions follow the same general pattern. (#2275)
* Make all Tool option descriptions follow the same general pattern for describing them.

* Figure out a switch to determine level of either cluster or collections(s)

* better wording on what cluster versus collection params mean

Co-authored-by: epugh@opensourceconnections.com <>
2021-02-05 15:17:58 -05:00
David Smiley b5c1ed7129
SOLR-15011: BadApple the test 2021-02-04 23:10:09 -05:00
Jason Gerlowski 33d16b570c
SOLR-13608: Incremental backup file format (#2250)
This commit introduces a new way for Solr to do backups (with a new
underlying file structure).  This new "incremental" backup process
improves over the existing backup mechanism in several ways:

- multiple backups "points" can now be stored at a given backup
  location/name, allowing users to choose which point in time they want
  to restore
- subsequent backups skip over uploading files that were uploaded by
  previous backups, saving time and network time.
- files are checksumed as they're uploaded, ensuring that corrupted
  indices aren't persisted and accidentally restored later.

Incremental backups are now the default, and traditional backups
should now be considered 'deprecated' but can still be created by
passing an `incremental=false` parameter on backup requests.
2021-02-04 08:47:30 -05:00
Mike Drob 8fccdfe353
SOLR-15122 Replace sleeps with phaser await (#2291) 2021-02-03 19:39:04 -06:00
Mike Drob 40c5d6b750
SOLR-14253 Avoid writes in ZKSR.waitForState (#2297) 2021-02-03 14:40:07 -06:00
Nazerke Seidan 6509a3003c
SOLR-15011: /admin/logging now distributes setLevel to all nodes (#2230)
The admin UI will set nodes=all for this.

Co-authored-by: Nazerke Seidan <nseidan@salesforce.com>
Co-authored-by: David Smiley <dsmiley@apache.org>
2021-02-02 21:41:23 -05:00
Andrzej Bialecki 4cb1000ea0 SOLR-15122: Tentative fix for the test failure - the node in the test could go down
before the new plugin was active on the Overseer.
2021-02-02 12:06:39 +01:00
Chris Hostetter 15aaec60d9 SOLR-14330: ExpandComponent now supports an expand.nullGroup=true option 2021-02-01 16:19:34 -07:00
Mike Drob 99748384cf
SOLR-14253 Replace sleep calls with ZK waits (#1297)
Co-Authored-By: markrmiller <markrmiller@apache.org>
2021-02-01 13:25:17 -06:00
Andrzej Bialecki 9e8ca98985 SOLR-15068: RefGuide documentation for replica placement plugins (plus
minor cleanups).
2021-02-01 16:50:25 +01:00
Mike Drob 5cca464517 SOLR-15122 Debug Logging 2021-01-29 15:49:10 -06:00
Eric Pugh 6d71a0aced
SOLR-14067: v4 Create /contrib/scripting module with ScriptingUpdateProcessor (#2257)
* Creating Scripting contrib module to centralize the less secure code related to scripts.

* tweak the changelog and update notice to explain why the name changed and the security posture thinking

* the test script happens to be a currency.xml, which made me think we were doing something specific to currency types, but instead any xml formatted file will suffice for the test.

* Update solr/contrib/scripting/src/java/org/apache/solr/scripting/update/ScriptUpdateProcessorFactory.java

* Update solr/contrib/scripting/src/java/org/apache/solr/scripting/update/package-info.java

* drop the ing, and be more specific on the name of the ref guide page

* comment out the script update chain.

The sample techproducts configSet is used by many of the solr unit tests, and by default doesn't have access to the jar file in the contrib module.   This is commented out, similar to how the lang contrib is.

* using a Mock for the script processor in order to keep the trusted configSets tests all together.

* tweak since we are using a mock script processor

Co-authored-by: David Smiley <dsmiley@apache.org>
2021-01-29 12:27:36 -05:00
Tim Owen 715caaae52
SOLR-15085 Prevent EmbeddedSolrServer calling shutdown on a CoreContainer that was passed to it 2021-01-29 11:15:22 -06:00
Mike Drob 0d4769e174
SOLR-15120 Reduce duplicated core creation work (#2266)
Use j.u.c collections instead of sync block
Rework how we load implicit handlers
Additional debug and trace logging for zookeeper comms
2021-01-29 10:20:16 -06:00
Mike Drob b335034615
Require Thread Names in Solr (#2264)
When we are creating a new thread we should give it a descriptive name and enforce this via ForbiddenAPIs. This doesn't apply to Runnable or Callable objects that we pass to an executor, since those should be getting named by the executor itself.

We don't require this in tests because the tests should be more self contained and there is less benefit in descriptive names. If somebody is already profiling a test, then they likely have the context to understand what the unnamed threads are doing, whereas a thread dump from a running Solr instance should have good thread names for everything. This is especially helpful when doing profiling, otherwise we end up with a bunch of Thread-# that are hard to tell apart and search on.
2021-01-28 15:04:15 -06:00
Mike Drob 9be71b3939
SOLR-15113 Do not attempt to start Solr server when embedded ZK fails (#2255) 2021-01-28 11:37:51 -06:00
Andrzej Bialecki b1cd6b691f SOLR-15055: Fix this test to avoid OS dependency. 2021-01-27 13:38:46 +01:00
Andrzej Bialecki 6c72e2e17b SOLR-15055: Add missing license headers. 2021-01-26 16:09:38 +01:00
Andrzej Bialecki 6e9185a33a SOLR-15055: Re-implement 'withCollection'. 2021-01-26 15:16:33 +01:00
Chris Hostetter 47a89aca71 SOLR-15078: Fix ExpandComponent behavior when expanding on numeric fields to differentiate '0' group from null group 2021-01-25 11:33:57 -07:00
Andrzej Bialecki 166d39a12e SOLR-15076: Fix wrong test assumption - type of this property has changed
in SOLR-14924.
2021-01-25 16:56:50 +01:00
epugh@opensourceconnections.com ce1bba6d66 Revert "SOLR-14067: v3 Create /contrib/scripting module with ScriptingUpdateProcessor (#2215)"
This reverts commit cf5db8d651.
2021-01-25 09:53:36 -05:00
Christine Poerschke 9d4811e02f SOLR-15073: Fix ClassCastException in SystemInfoHandler.getSecurityInfo.
Same fix as the #2210 PR commit earlier but this time not extending SystemInfoHandlerTest and also not adding a static SystemInfoHandler.getSecurityInfo variant for test use.
2021-01-22 18:33:28 +00:00
Christine Poerschke 64d445bbaa Revert "SOLR-15073: Fix ClassCastException in SystemInfoHandler.getSecurityInfo (#2210)"
This reverts commit fb88b0268a.

Resolved Conflicts:
	solr/CHANGES.txt
2021-01-22 17:48:25 +00:00
Christine Poerschke fb88b0268a
SOLR-15073: Fix ClassCastException in SystemInfoHandler.getSecurityInfo (#2210) 2021-01-22 12:10:10 +00:00
Eric Pugh cf5db8d651
SOLR-14067: v3 Create /contrib/scripting module with ScriptingUpdateProcessor (#2215)
* Creating Scripting contrib module to centralize the less secure code related to scripts.

* tweak the changelog and update notice to explain why the name changed and the security posture thinking

* the test script happens to be a currency.xml, which made me think we were doing something specific to currency types, but instead any xml formatted file will suffice for the test.

* drop the ing, and be more specific on the name of the ref guide page

* use the same name everywhere

Co-authored-by: David Smiley <dsmiley@apache.org>
2021-01-21 13:32:46 -05:00
András Salamon 83e0397c42
SOLR-14297: Replace commons-codec Base64 with JDK8 Base64 (#2222) 2021-01-21 13:10:33 -05:00
David Smiley a233ed2fd1
SOLR-15081: Metrics for core: isLeader, replicaState (#2198)
Note that getLastPublished returns an Enum type.  TextWriter.writeVal should probably support Enums, which would simplify this code.
2021-01-19 16:43:39 -05:00
Joel Bernstein 5328ced82e SOLR-14608: Reduce percentage of priority queue size above total hits 2021-01-19 15:35:57 -05:00
Joel Bernstein 64df5a65f0 SOLR-14608: Faster sorting for the /export handler 2021-01-19 15:35:56 -05:00