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

Merge branch_9x into fs/branch_9x #169

Closed
wants to merge 247 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
247 commits
Select commit Hold shift + click to select a range
df27e37
Fix a typo in move-replica API documentation (#1801)
rafalh Jul 24, 2023
6b9fda8
Update cloud-script.adoc (#1796)
mariemat Jul 25, 2023
ce35d8e
DenseVectorFieldTest tests that use atomic updates should check updat…
risdenk Jul 26, 2023
ac3cb40
SOLR-16906: Correctly capture REPLICATION metrics in Prometheus confi…
osyoyu Jul 27, 2023
38fb272
MINOR: Fix typos in `org.apache.solr.core` package (#1629)
AndreyBozhko May 8, 2023
3d564db
SOLR-16905: Allow access to allowPaths in SecurityManager (#1811)
daylicron Jul 28, 2023
49419a5
SOLR-16490: Create v2 equivalent for core backup API (#1740)
iamsanjay Jul 25, 2023
870b1d8
SOLR-16883: Use postlogs tool from windows and unix via solr cli infr…
epugh Jul 31, 2023
a6e6730
complete backport of SOLR-16883
epugh Jul 31, 2023
02390b7
SOLR-16803: Remove dependencies on SimplePostTool from Solr Core clas…
epugh Jul 31, 2023
7293ad6
Finish backporting SOLR-16803.
epugh Jul 31, 2023
09edcf2
SOLR-16915: Set the AffinityPlacementPlugin minimalFreeDiskGB to 5 (#…
HoustonPutman Aug 1, 2023
dcc3ee1
SOLR-6994: Integrate post tool into bin/solr and bin/solr.cmd (#1634)
epugh Jul 7, 2023
113db7d
Fix backport of SOLR-6994.
epugh Aug 3, 2023
ad1675a
Remove DistributedQueueFactory (#1732)
dsmiley Aug 3, 2023
c268fae
SOLR-16847 Give v2 APIs access to solrconfig.xml config (#1778)
stillalex Aug 1, 2023
93cdd13
Clarify Field Storage requirements for partial doc updates. (#1828)
elyograg Aug 5, 2023
f60b75c
SOLR-11685: use HTTP INVALID_STATE for ZK state issues in Distributed…
dsmiley Aug 7, 2023
7277949
SOLR-16922: Scripts wrongly prohibit embedded zookeeper when solr por…
colvinco Aug 8, 2023
30682a4
SOLR-16490 Create a v2 API for RESTORECORE functionality (#1449)
sayandigital Aug 3, 2023
e6b49a6
SOLR-16265 reduce memory usage of ContentWriter based requests in Htt…
stillalex Aug 8, 2023
243f0c0
SOLR-16360: Atomic update on boolean fields doesn't reflect when valu…
rahulgoswami Aug 9, 2023
8ad05de
SOLR-16920: Add Test full package lifecycle (#1826), fix parsing of r…
epugh Aug 10, 2023
8a84baa
SOLR-14667 Make zkClientTimeout consistent and based on a system prop…
stillalex Aug 11, 2023
6deab73
SOLR-16926: Give override for EmbeddedZK bind host (#1836)
HoustonPutman Aug 14, 2023
19e3a05
Update io.netty:* to v4.1.96.Final (#1813)
solrbot Aug 15, 2023
35bf0fa
SOLR-16859 Missing Proxy support for Http2SolrClient (#1779)
stillalex Aug 16, 2023
32cea46
Refactor ZkCmdExecutor, move all ensureExists methods to ZkMaintenanc…
stillalex Aug 16, 2023
3ac8c53
Update dependency org.openjdk.jmh:jmh-core to v1.37 (#1838)
solrbot Aug 16, 2023
0345529
SOLR-16928: Add missing unit tests for RegexFileFilter and StrUtils.t…
mkhludnev Aug 16, 2023
ce78b97
Update dependency org.apache.commons:commons-lang3 to v3.13.0 (#1814)
solrbot Aug 15, 2023
fe98348
Update io.opentelemetry to 1.29.0 (#1846)
stillalex Aug 17, 2023
572a88e
CHANGES.txt update for io.opentelemetry update (#1847)
stillalex Aug 17, 2023
867cefd
SOLR-16939: CBOR format should support nested documents (#1845)
noblepaul Aug 17, 2023
bf8fda3
Update dependency commons-codec:commons-codec to v1.16.0 (#1719)
solrbot Aug 18, 2023
5bf1230
Update solr/README (#1850)
janhoy Aug 18, 2023
65df7cc
Update org.apache.zookeeper:* to v3.9.0 (#1807)
solrbot Aug 18, 2023
0f3a532
SOLR-16733: Fail 'test' tasks using JDK20 on Mac (#1832)
gerlowskija Aug 18, 2023
376170f
SOLR-16825: Generate v2 API SolrRequest bindings (#1793)
gerlowskija Aug 8, 2023
6fcf91d
SOLR-16825: Speed up OAS generation
gerlowskija Aug 9, 2023
7e5f1ee
Add/fix wrong/missing "solr.home" to zkcli scripts (#1798)
laminelam Aug 21, 2023
b0ac541
SOLR-16927 Allow SolrClientCache clients to use Jetty HTTP2 clients (…
stillalex Aug 21, 2023
0419d48
Update software.amazon.awssdk:* to v2.20.128 (#1820)
solrbot Aug 22, 2023
1dde8a9
SOLR-16941: Use smarter default Solr URL in CLI (#1849)
HoustonPutman Aug 18, 2023
411050c
SOLR-16940: Add SOLR_TOOL_OPTS var for custom SolrCLI options (#1848)
HoustonPutman Aug 18, 2023
f46187c
SOLR-16929 SolrStream propagates undecoded error message (#1852)
stillalex Aug 22, 2023
b7a4adf
SOLR-16944 V2 API /api/node/health should be governed by "health" per…
janhoy Aug 22, 2023
004861e
Update v2-api.adoc: remove mention of /api/c (#1790)
mkhludnev Aug 22, 2023
8a3da6a
SOLR-16934: Give securityManager permission for client TLS (#1857)
HoustonPutman Aug 22, 2023
5eb2704
SOLR-16265: Fix NPE for req in Http2SolrClient (#1860)
HoustonPutman Aug 22, 2023
56d3224
SOLR-16946: Updated Cluster Singleton plugins are stopped correctly w…
pjmcarthur Aug 23, 2023
727ae79
Cleaning up old code to prevent warnings (#1834)
renatoh Aug 23, 2023
9fffccd
fix backporting code merge
epugh Aug 23, 2023
5daca6a
SOLR-16933: Include full query response in API tool (#1863)
HoustonPutman Aug 23, 2023
37a14d2
SOLR-16825: Migrate v2 definitions to 'api' module (#1859)
gerlowskija Aug 24, 2023
7d39f30
SOLR-16916: JSON boolean queries when solrconfig defType is set to ed…
sandbergja Aug 24, 2023
142d72a
SOLR-16623: new SolrJettyTestRule (#1374)
joshgog Aug 27, 2023
d720813
SOLR-15474 Make Circuit breakers pluggable (take 2) (#1725)
janhoy Aug 29, 2023
0bdb06f
SOLR-15474: three more code review tweaks (#1870)
cpoerschke Aug 29, 2023
ed15809
SOLR-16825: Fix response serialization bug (#1867)
gerlowskija Aug 29, 2023
58c8dfc
SOLR-16654: Add support for node-level caches (#1351)
magibney Aug 30, 2023
8185ce6
Fix configuration parameter stateCompressor in solr-xml doc (#1872) (…
dustinpeerce Aug 31, 2023
f91a8ba
logging, MDC: collection for action=DELETE (#1869)
dsmiley Aug 31, 2023
c2a2486
tidy
dsmiley Aug 31, 2023
dbd969d
SOLR-16879: throttle BACKUPCORE, RESTORECORE, SPLIT (#1864)
psalagnac Aug 31, 2023
0a764f0
SOLR-16958: Fix spurious warning about LATEST luceneMatchVersion (#1879)
colvinco Sep 1, 2023
7369867
NO JIRA: factor out protected SearchHandler.checkCircuitBreakers meth…
cpoerschke Sep 1, 2023
1a56cf1
NO JIRA: add TestFieldValueFeature.testBooleanValue_docValues() case …
cpoerschke Sep 1, 2023
4f12027
SOLR-16825: Migrate API definitions to submodule, pt 2 (#1866)
gerlowskija Sep 1, 2023
492e5a8
SOLR-15734: Add dev-docs on Solr APIs (#1876)
gerlowskija Sep 1, 2023
8939322
SOLR-16897: Add support of OAuth 2.0/OIDC 'code with PKCE' flow (#179…
janhoy Sep 3, 2023
ea2c639
Update org.semver4j:semver4j dependency from 4.3 to 5.1 (#1771)
solrbot Sep 6, 2023
945d4a3
SOLR-16954 Make Circuit Breakers available for Update Requests (#1871)
janhoy Sep 6, 2023
95b1b6d
SOLR-16825: Remove unneeded @Produces annotations (#1885)
gerlowskija Sep 6, 2023
de8ab15
Update org.eclipse.jetty*:* to v10.0.16 (#1888)
solrbot Sep 6, 2023
4bb2ed3
SOLR-16955 Tracing v2 apis breaks SecurityConfHandler (#1884)
stillalex Sep 6, 2023
84a411a
SOLR-16955 Tracing v2 apis breaks SecurityConfHandler
stillalex Sep 7, 2023
a940231
SOLR-15367 [9.x] Convert "rid" functionality into a default Tracer (#…
stillalex Sep 7, 2023
5251fad
SOLR-16954: Fix test failure in UPDATE circuit breaker (#1896)
janhoy Sep 7, 2023
e551b8f
SOLR-16964: Default the sniHostCheck setting to the checkPeerName env…
HoustonPutman Sep 8, 2023
5cc252f
backport just bats test from SOLR-16956
epugh Sep 9, 2023
5d2d59a
SOLR-16044: SlowRequest logging disabled if SolrCore logger set to ER…
janhoy Sep 10, 2023
0195da1
SOLR-16654: Improve test (#1886)
dsmiley Sep 11, 2023
44ff92b
SOLR-16825: Migrate api definitions to submodule, pt 3 (#1902)
gerlowskija Sep 11, 2023
f685f96
SOLR-16415: ZK DistributedMap should reject slash in IDs. (#1824)
dsmiley Sep 11, 2023
cd3b591
SOLR-16970: SOLR_OPTS should override most options (#1913)
HoustonPutman Sep 11, 2023
67d63d9
SOLR-16956: fix not being able to stop a solr by port number
HoustonPutman Sep 12, 2023
adc6beb
Add full mTLS integration tests for Solr (#1912)
HoustonPutman Sep 12, 2023
79b9c80
SOLR-15771: bin/solr auth enable should model best practices for secu…
epugh Sep 12, 2023
2f69584
SOLR-14886 : suppress stack traces in query response (#1632)
igiguere Sep 12, 2023
d35a172
SOLR-16899: Do not statically register ops in CoreAdminHandler (#1892)
pvcnt Sep 12, 2023
e5e3985
SOLR-15367 Convert "rid" functionality into a default Tracer (#1898)
stillalex Sep 12, 2023
140c638
[SOLR-16461] Create v2 equivalent of v1 ReplicationHandler 'BACKUP' (…
iamsanjay Sep 13, 2023
3cd7f54
SOLR-16963: Fix usage of clientHostnameVerification (#1916)
HoustonPutman Sep 13, 2023
9ae2480
SOLR-16973: fix REMOTE_JMX_OPTS to delayed expansion (#1917)
tizianodeg Sep 13, 2023
2271b37
SOLR-16896: Add support of OAuth 2.0/OIDC 'code with PKCE' flow (fron…
laminelam Sep 13, 2023
1f739f0
SOLR-16954: Fix test failures caused by update circuit breaker (#1918)
janhoy Sep 14, 2023
ff385d7
SOLR-16938 Auto configure tracer without a <tracerConfig> tag in solr…
stillalex Sep 14, 2023
83b1387
SOLR-16950 SimpleTracer propagation for manual transaction ids (#1906)
stillalex Sep 15, 2023
212fa1c
Update dependency org.hsqldb:hsqldb to v2.7.2 (#1742)
solrbot Sep 15, 2023
7660af8
Update org.mockito:mockito* to v5.5.0 (#1746)
solrbot Sep 15, 2023
c7cd9fc
Update dependency com.google.guava:guava to v32.1.2-jre (#1770)
solrbot Sep 15, 2023
ad406a1
Update dependency io.swagger.core.v3:swagger-annotations to v2.2.15 (…
solrbot Sep 15, 2023
8f79f44
Update org.slf4j:* to v2.0.9 (#1909)
solrbot Sep 15, 2023
4e80df9
Update io.netty:* to v4.1.97.Final (#1887)
solrbot Sep 15, 2023
f441675
NO JIRA: remove unused CircuitBreaker.getDebugInfo() methods (#1890)
cpoerschke Sep 15, 2023
fbebbbf
SOLR-15440: FieldValueFeature now uses DocValues when docValues=true …
cpoerschke Sep 15, 2023
ca3c81c
SOLR-16971 RealTimeGet with Composite router throws NPE (#1914)
stillalex Sep 15, 2023
0cb27e9
More test cases for Coordinator node role (#1782)
patsonluk Sep 18, 2023
1623919
No Jira: Reduce logging level for slice -> shard mapping in RTG (#1932)
tflobbe Sep 18, 2023
3e9c9df
SOLR-16931: ReRankScaler explain breaks with debug=true and in distr…
joel-bernstein Sep 19, 2023
290da4c
SOLR-16931: Update CHANGES.txt
joel-bernstein Sep 19, 2023
3fdeae3
SOLR-16978: Be case insensitive when parsing booleans from text (#1931)
tflobbe Sep 19, 2023
a9cbf2c
QueryElevationComponent: declare some methods as protected (#1901)
dsmiley Sep 20, 2023
7bed0b0
SOLR-16890: Fix SSL cert issue for test case in TestCoordinatorRole (…
patsonluk Sep 20, 2023
1fc69db
fix protected term filter example (#1894) (#1944)
anshumg Sep 20, 2023
9fee3a0
Update dependency io.opentelemetry:opentelemetry-bom to v1.30.1 (#1934)
solrbot Sep 19, 2023
a1d0938
SOLR-15056: add circuit breaker for CPU, fix load circuit breaker (#96)
wrunderwood Sep 20, 2023
fb32cc2
SOLR-16979: Randomize port number of Solr in BATS tests (#1946)
janhoy Sep 21, 2023
665070b
SOLR-16983: Fixed a bug that could cause some usages of SolrStream to…
hossman Sep 21, 2023
21373f8
SOLR-16960 Tests should sometimes run with a Tracer (not no-op) (#1943)
stillalex Sep 21, 2023
cc778c7
SOLR-16982: Trip a Circuit Breaker only for external requests (#1930)
janhoy Sep 22, 2023
210b10b
SOLR-16968: The MemoryCircuitBreaker now uses average heap usage (#1905)
janhoy Sep 22, 2023
1f0c1ff
SOLR-16925: Fix indentation for JacksonJsonWriter (#1942)
HoustonPutman Sep 22, 2023
fcf3b79
Small TLS integration test improvements
HoustonPutman Sep 19, 2023
5bf79fd
SOLR-16397: Convert reload-core API to JAX-RS (#1903)
iamsanjay Sep 19, 2023
f1ba2c2
SOLR-16701: Race condition on PRS enabled collection deletion (#1460)
patsonluk Sep 23, 2023
db626d9
SOLR-16991: Fix bug: Concurrent requests failing JWT Auth intermitten…
laminelam Sep 23, 2023
e71e513
Clean up some deprecations and warnings in jwt-auth module (#1952)
janhoy Sep 23, 2023
5653fea
SOLR-16194 Don't overwrite list of collections in a Routed Alias when…
gus-asf Sep 25, 2023
9fdd98f
SOLR-16997: OTEL configurator NPE when SOLR_HOST not set
janhoy Sep 26, 2023
43a6161
SOLR-16980 Connect to SOLR standalone with basic authentication (#1957)
stillalex Sep 26, 2023
dae7872
SOLR-16989: Optimize and consolidate reuse of DocValues iterators for…
magibney Sep 26, 2023
b5b5319
SOLR-16959: Make CoresLocator class configurable (#1891)
pvcnt Sep 27, 2023
ac336ad
SOLR-16967: ConfigSet: shouldn't require solrconfig.xml (#1900)
dsmiley Sep 27, 2023
12b7579
SOLR-16992 Non-reproducible StreamingTest failures (#1955)
stillalex Sep 27, 2023
4bae5ec
SOLR-16644: Fixing the entropy warning threshold using scaling based …
Sep 29, 2023
dace250
Fix the admin UI green core-size graph on nodes screen (#1963)
janhoy Sep 29, 2023
aa09ba0
SOLR-16985 Upgrade Lucene to 9.8.0 (#1958)
stillalex Sep 30, 2023
0ee6d56
Update dependency org.xerial.snappy:snappy-java to v1.1.10.4 (#1806)
solrbot Sep 30, 2023
62e2f42
Update forbiddenapis to 3.6 (#1971)
uschindler Oct 1, 2023
e7918cb
Update dependency commons-io:commons-io to v2.14.0 (#1653)
solrbot Oct 1, 2023
1463249
Coordinator node does not have correct collection tagged for TracingS…
noblepaul Oct 2, 2023
28be875
SOLR-16994: facilitate date-related FieldValueFeature extensions (doc…
cpoerschke Oct 2, 2023
676737b
SOLR-17004: ZkStateReader waitForState should check clusterState befo…
risdenk Sep 29, 2023
0056e82
Update dependency com.google.errorprone:error_prone_annotations to v2…
solrbot Oct 2, 2023
590568b
Update dependency org.apache.commons:commons-compress to v1.24.0 (#1910)
solrbot Oct 2, 2023
6e084fa
Update dependency no.nav.security:mock-oauth2-server to v0.5.10 (#1608)
solrbot Oct 2, 2023
9c242b4
Update software.amazon.awssdk:* to v2.20.155 (#1877)
solrbot Oct 2, 2023
606c77f
Update dependency com.github.ben-manes.caffeine:caffeine to v3.1.8 (#…
solrbot Oct 2, 2023
653a2aa
Update dependency io.swagger.core.v3:swagger-annotations to v2.2.16 (…
solrbot Oct 3, 2023
04cdfce
Update dependency org.xerial.snappy:snappy-java to v1.1.10.5 (#1966)
solrbot Oct 3, 2023
524112c
Update io.dropwizard.metrics:* to v4.2.20 (#1970)
solrbot Oct 3, 2023
de8aa04
Update org.apache.calcite to v1.35.0 (#1815)
solrbot Oct 3, 2023
f98a00a
Update dependency org.semver4j:semver4j to v5.2.1 (#1968)
solrbot Oct 3, 2023
c4f0a5c
Update io.netty:* to v4.1.99.Final (#1967)
solrbot Oct 3, 2023
82aabb4
Update dependency com.adobe.testing:s3mock-junit4 to v2.17.0 (#1741)
solrbot Oct 3, 2023
2cb01ce
Update org.glassfish.jersey*:* to v2.39.1 (#1676)
solrbot Oct 3, 2023
bc0c6a7
Add next minor version 9.5.0
stillalex Oct 3, 2023
29a407a
Update io.grpc:grpc-* to v1.58.0 (#1769)
solrbot Oct 3, 2023
b4f86ba
Fixed API examples for node-roles (#1825)
dizzu Oct 3, 2023
934ec14
Update dependency com.google.cloud:google-cloud-bom to v0.204.0 (#1745)
solrbot Oct 3, 2023
98056d4
SOLR-17000: Fix ExecutorUtilTest to eliminate concurrency assumptions
hossman Oct 3, 2023
c56a297
SOLR-16852: Let backups have custom key/values (#1739)
tflobbe Oct 3, 2023
794c9da
SOLR-16852: Fix import class for 9.x branch
tflobbe Oct 3, 2023
e800cc5
Update indexing docs in Solr ref guide (#1961)
AndreyBozhko Oct 3, 2023
9c9f7ce
SOLR-16970: Fix windows script (#1975)
HoustonPutman Oct 4, 2023
16f7520
SOLR-17009 json.wrf parameter ignored in JacksonJsonWriter (#1977)
stillalex Oct 4, 2023
56ee4da
SOLR-17012: Update Apache Hadoop to 3.3.6 and Apache Curator to 5.5.0…
solrbot Oct 4, 2023
0c085ba
SOLR-17009 json.wrf parameter ignored in JacksonJsonWriter (#1980)
stillalex Oct 5, 2023
775c4c1
SOLR-17014: Ensure that injecting random recording flag only happens …
risdenk Oct 5, 2023
d06d5fa
SOLR-16825: Migrate v2 definitions to 'api' module, pt 4 (#1960)
gerlowskija Oct 3, 2023
058f15b
SOLR-16825: Migrate v2 definitions to 'api' module, pt 5 (#1974)
gerlowskija Oct 6, 2023
9763026
SOLR-16397: Create v2 (JAX-RS) endpoint for unload-core (#1933)
iamsanjay Oct 8, 2023
c3f7e73
SOLR-16924: RESTORECORE: make UpdateLog ACTIVE without requiring REQU…
julia-maimone Oct 6, 2023
8c08ee7
SOLR-16924: needn't retain back-compat
dsmiley Oct 10, 2023
5eed056
SOLR-17013: Always use 127.0.0.1 for ZK instead of localhost in tests…
risdenk Oct 9, 2023
68a749a
Update org.apache.zookeeper:* to v3.9.1 (#1989)
solrbot Oct 10, 2023
69ab812
SOLR-16644: Only warn entropy on Linux (#2000)
janhoy Oct 10, 2023
8e89db9
Update org.eclipse.jetty to v10.0.17 (#2001)
stillalex Oct 10, 2023
884c32e
SOLR-17019: ZkCli should create subpaths when necessary (#1998)
HoustonPutman Oct 11, 2023
656514f
SOLR-16825: Migrate v2 definitions to 'api' module, pt 6 (#1978)
gerlowskija Oct 11, 2023
e758f66
SOLR-17019: ZkCli should create chroot if necessary
HoustonPutman Oct 12, 2023
9d6cc75
SOLR-17026: Upgrade to Gradle 8.4
risdenk Apr 4, 2023
a4b4459
SOLR-17026: Update googleJavaFormat plugin
risdenk Oct 11, 2023
74f42ab
SOLR-17026: gradle tidy after google java format update for jdk 21
risdenk Oct 12, 2023
c772644
GITHUB#12655: javac options via -J only when the compiler is in forke…
dweiss Oct 12, 2023
f6fea7c
SOLR-17026: Add google java format upgrade tidy to blame ignore
risdenk Oct 12, 2023
adee7ca
SOLR-17028: Upgrade build tool versions (#2005)
risdenk Oct 12, 2023
37b9f70
No Jira: Solr benchmark cleanup (#1987)
stillalex Oct 13, 2023
4059577
SOLR-6853: Add slash support for Managed Resources (synonyms and stop…
xtenzQ Oct 13, 2023
fd3c908
DOAP changes for release 9.4.0
stillalex Oct 15, 2023
c6b6a4f
SOLR-17027: Removing list.toArray calls with pre sized arrays - core …
renatoh Oct 12, 2023
396824a
SOLR-17027: Removing list.toArray calls with pre sized arrays - part …
renatoh Oct 15, 2023
4ce0f62
Sync CHANGES for 9.4.0
stillalex Oct 15, 2023
3a05c38
No Jira: some release script tweaks (#1976)
stillalex Oct 16, 2023
0095589
SOLR-17039: Entropy calculation fails in Docker due to missing 'bc' c…
janhoy Oct 18, 2023
d2d3048
SOLR-17030: Open TransactionLog for extension. (#2012)
bruno-roustant Oct 19, 2023
cec23b8
SOLR-17006: Collections/AddReplica: Persist user-defined properties t…
pvcnt Oct 20, 2023
41272ed
SOLR-17042: Deprecate V2RequestSupport interface
gerlowskija Oct 23, 2023
083833e
SOLR-17048: Update solrj dep on 'api' module (#2029)
gerlowskija Oct 23, 2023
0155eb6
SOLR-17024: Remove deprecated 'collectionDefaults' support (#2002)
gerlowskija Oct 19, 2023
ff2efff
SOLR-17034: Hitting /solr// ends up with HttpSolrCall NPE when using …
risdenk Oct 23, 2023
30da884
Update dependency org.semver4j:semver4j to v5.2.2 (#2008)
solrbot Oct 23, 2023
0ed19c1
Update dependency io.opentelemetry:opentelemetry-bom to v1.31.0 (#2009)
solrbot Oct 23, 2023
c9f45b9
Update dependency org.immutables:value-annotations to v2.10.0 (#2010)
solrbot Oct 23, 2023
82703c5
Update dependency com.google.guava:guava to v32.1.3-jre (#2014)
solrbot Oct 23, 2023
fbcb11f
Update dependency com.github.spotbugs:spotbugs-annotations to v4.8.0 …
solrbot Oct 23, 2023
ab83655
Update dependency com.fasterxml.jackson:jackson-bom to v2.15.3 (#2031)
solrbot Oct 23, 2023
b801bfd
Update dependency org.codehaus.woodstox:stax2-api to v4.2.2 (#2015)
solrbot Oct 23, 2023
7b4c36c
Update dependency io.swagger.core.v3:swagger-annotations to v2.2.17 (…
solrbot Oct 23, 2023
9f01333
Update io.dropwizard.metrics:* to v4.2.21 (#2033)
solrbot Oct 23, 2023
3a616ae
Update org.apache.logging.log4j:* to v2.21.0 (#2037)
solrbot Oct 23, 2023
d3610c5
Update io.grpc:grpc-* to v1.59.0 (#2036)
solrbot Oct 23, 2023
7526c7c
Update io.netty:* to v4.1.100.Final (#2013)
solrbot Oct 23, 2023
542cf0b
Update dependency com.google.errorprone:error_prone_annotations to v2…
solrbot Oct 24, 2023
89d9111
SOLR-17054: Remove unused and duplicate code in DistributedZkUpdatePr…
pvcnt Oct 26, 2023
56cb63e
Exclude the right Docker tests for slim image
HoustonPutman Oct 26, 2023
1ad2a18
Add option for specifying a imageTagSuffix in gradle (#2043)
HoustonPutman Oct 30, 2023
bc0c170
Fix TLS integration tests for use with http1
HoustonPutman Oct 30, 2023
54ef268
SOLR-17026: Fix releaseBuild without signing (#2051)
HoustonPutman Oct 31, 2023
d0f271e
SOLR-17046: SchemaCodecFactory is now the implicit default codec factory
hossman Oct 31, 2023
409fe1c
SOLR-17046: ref-guide updates now that SchemaCodecFactory is implicit…
hossman Nov 1, 2023
3cc283e
[9.x] SOLR-16943 Move Jetty HttpClient tracing into InstrumentedHttpL…
stillalex Nov 3, 2023
f7e69dc
SOLR-16038: Rename PackageStore as Filestore (#1908)
janhoy Nov 7, 2023
d3e0ffc
SOLR-16397: Tweak v2 'swapcore' API to be more REST-ful
iamsanjay Nov 7, 2023
ce1935f
SOLR-16907: Fail when parsing an invalid custom permission definition…
janhoy Nov 7, 2023
7dcd6b8
SOLR-17011 Add tracing spans to internal collection commands (#1979) …
stillalex Nov 8, 2023
713d41e
SOLR-17041 Make CommitTracker currentTlogSize lazy (#2027)
stillalex Nov 8, 2023
3f96c45
SOLR-16252 Server admins cannot override default value for UPDATE_TIM…
stillalex Nov 8, 2023
f452930
Fix errorprone with alternative runtime (ported from https://github.c…
uschindler Nov 14, 2023
77fc707
SOLR-16397: Tweak v2 'renamecore' API to be more REST-ful (#2072)
iamsanjay Nov 15, 2023
bd921f8
SOLR-17075: Fix ref-guide links and renable site checks by default (#…
HoustonPutman Nov 16, 2023
598600d
SOLR-17035 Add trace id to jetty thread names to improve debuggabilit…
stillalex Nov 16, 2023
be3e946
fix typo in tutorial-techproducts.adoc (#2083)
kai687 Nov 17, 2023
8277c13
SOLR-17076: Optimize `OrderedNodePlacementPlugin#getAllReplicasOnNode…
patsonluk Nov 21, 2023
b7994f5
Merge branch_9x to fs/branch_9x
patsonluk Nov 23, 2023
2ab6e24
Updated lucene hash to point to lucene fs/branch_9_8
patsonluk Nov 24, 2023
19d455b
Updated lucene hash to point to lucene fs/branch_9_8
patsonluk Nov 24, 2023
1d520fb
Avoid using raw type on AsyncListener
patsonluk Nov 24, 2023
4aa8199
Updated lucene hash with a luence that uses gradle 8.4
patsonluk Nov 24, 2023
5f0cd37
Fixed merge conflict
patsonluk Nov 24, 2023
c4bba20
Node level cache, for CacheConfig.newInstance(core) pass in null
patsonluk Nov 24, 2023
c4b3214
reuse DocValues iterators in SolrDocumentFetcher/udvas (#144)
magibney Sep 15, 2023
827cc02
port test from upstream PR; fix multivalued reuse bug (#146)
magibney Sep 20, 2023
5733bc5
Fixed test case after merge
patsonluk Nov 24, 2023
abdd8f3
./gradlew tidy
patsonluk Nov 24, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
SOLR-16490: Create v2 equivalent for core backup API (apache#1740)
No v2 equivalent existed prior to this commit.  The new v2 API is
`POST /api/cores/cName/backups`.

---------

Co-authored-by: Jason Gerlowski <[email protected]>
iamsanjay and gerlowskija committed Jul 31, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
commit 49419a562a107d597d0a72bc97c0a1afe1aa13a7
3 changes: 2 additions & 1 deletion solr/CHANGES.txt
Original file line number Diff line number Diff line change
@@ -12,7 +12,8 @@ New Features

Improvements
---------------------
(No changes)
* SOLR-16490: `/admin/cores?action=backupcore` now has a v2 equivalent, available at
`GET /api/cores/coreName/backups` (Sanjay Dutt via Jason Gerlowski)

Optimizations
---------------------
Original file line number Diff line number Diff line change
@@ -17,6 +17,8 @@

package org.apache.solr.handler;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.net.URI;
@@ -29,8 +31,6 @@
import org.apache.lucene.store.Directory;
import org.apache.solr.cloud.CloudDescriptor;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.core.DirectoryFactory;
import org.apache.solr.core.IndexDeletionPolicyWrapper;
import org.apache.solr.core.SolrCore;
@@ -39,6 +39,7 @@
import org.apache.solr.core.backup.ShardBackupId;
import org.apache.solr.core.backup.ShardBackupMetadata;
import org.apache.solr.core.backup.repository.BackupRepository;
import org.apache.solr.jersey.SolrJerseyResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@@ -80,7 +81,7 @@ public IncrementalShardBackup(
this.commitNameOption = commitNameOption;
}

public NamedList<Object> backup() throws Exception {
public IncrementalShardSnapshotResponse backup() throws Exception {
final IndexCommit indexCommit = getAndSaveIndexCommit();
try {
return backup(indexCommit);
@@ -134,14 +135,14 @@ private IndexCommit getAndSaveLatestIndexCommit(IndexDeletionPolicyWrapper delPo
}

// note: remember to reserve the indexCommit first so it won't get deleted concurrently
protected NamedList<Object> backup(final IndexCommit indexCommit) throws Exception {
protected IncrementalShardSnapshotResponse backup(final IndexCommit indexCommit)
throws Exception {
assert indexCommit != null;
URI backupLocation = incBackupFiles.getBackupLocation();
log.info(
"Creating backup snapshot at {} shardBackupMetadataFile:{}", backupLocation, shardBackupId);
NamedList<Object> details = new SimpleOrderedMap<>();
;
details.add("startTime", Instant.now().toString());
IncrementalShardSnapshotResponse details = new IncrementalShardSnapshotResponse();
details.startTime = Instant.now().toString();

Collection<String> files = indexCommit.getFileNames();
Directory dir =
@@ -153,21 +154,21 @@ protected NamedList<Object> backup(final IndexCommit indexCommit) throws Excepti
solrCore.getSolrConfig().indexConfig.lockType);
try {
BackupStats stats = incrementalCopy(files, dir);
details.add("indexFileCount", stats.fileCount);
details.add("uploadedIndexFileCount", stats.uploadedFileCount);
details.add("indexSizeMB", stats.getIndexSizeMB());
details.add("uploadedIndexFileMB", stats.getTotalUploadedMB());
details.indexFileCount = stats.fileCount;
details.uploadedIndexFileCount = stats.uploadedFileCount;
details.indexSizeMB = stats.getIndexSizeMB();
details.uploadedIndexFileMB = stats.getTotalUploadedMB();
} finally {
solrCore.getDirectoryFactory().release(dir);
}

CloudDescriptor cd = solrCore.getCoreDescriptor().getCloudDescriptor();
if (cd != null) {
details.add("shard", cd.getShardId());
details.shard = cd.getShardId();
}

details.add("endTime", Instant.now().toString());
details.add("shardBackupId", shardBackupId.getIdAsString());
details.endTime = Instant.now().toString();
details.shardBackupId = shardBackupId.getIdAsString();
log.info(
"Done creating backup snapshot at {} shardBackupMetadataFile:{}",
backupLocation,
@@ -241,4 +242,38 @@ public double getTotalUploadedMB() {
return Precision.round(totalUploadedBytes / (1024.0 * 1024), 3);
}
}

public static class IncrementalShardSnapshotResponse extends SolrJerseyResponse {
@Schema(description = "The time at which backup snapshot started at.")
@JsonProperty("startTime")
public String startTime;

@Schema(description = "The count of index files in the snapshot.")
@JsonProperty("indexFileCount")
public int indexFileCount;

@Schema(description = "The count of uploaded index files.")
@JsonProperty("uploadedIndexFileCount")
public int uploadedIndexFileCount;

@Schema(description = "The size of index in MB.")
@JsonProperty("indexSizeMB")
public double indexSizeMB;

@Schema(description = "The size of uploaded index in MB.")
@JsonProperty("uploadedIndexFileMB")
public double uploadedIndexFileMB;

@Schema(description = "Shard Id.")
@JsonProperty("shard")
public String shard;

@Schema(description = "The time at which backup snapshot completed at.")
@JsonProperty("endTime")
public String endTime;

@Schema(description = "ShardId of shard to which core belongs to.")
@JsonProperty("shardBackupId")
public String shardBackupId;
}
}
64 changes: 51 additions & 13 deletions solr/core/src/java/org/apache/solr/handler/SnapShooter.java
Original file line number Diff line number Diff line change
@@ -16,6 +16,8 @@
*/
package org.apache.solr.handler;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.net.URI;
@@ -44,6 +46,8 @@
import org.apache.solr.core.backup.repository.BackupRepository.PathType;
import org.apache.solr.core.backup.repository.LocalFileSystemRepository;
import org.apache.solr.core.snapshots.SolrSnapshotMetaDataManager;
import org.apache.solr.handler.api.V2ApiUtils;
import org.apache.solr.jersey.SolrJerseyResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@@ -170,7 +174,7 @@ public void validateCreateSnapshot() throws IOException {
}
}

public NamedList<Object> createSnapshot() throws Exception {
public CoreSnapshotResponse createSnapshot() throws Exception {
final IndexCommit indexCommit = getAndSaveIndexCommit();
try {
return createSnapshot(indexCommit);
@@ -246,9 +250,9 @@ public void createSnapAsync(final int numberToKeep, Consumer<NamedList<?>> resul
// TODO should use Solr's ExecutorUtil
new Thread(
() -> {
NamedList<Object> snapShootDetails;
NamedList<Object> snapShootDetails = new SimpleOrderedMap<>();
try {
snapShootDetails = createSnapshot();
V2ApiUtils.squashIntoNamedListWithoutHeader(snapShootDetails, createSnapshot());
} catch (Exception e) {
log.error("Exception while creating snapshot", e);
snapShootDetails = new NamedList<>();
@@ -277,7 +281,7 @@ public void createSnapAsync(final int numberToKeep, Consumer<NamedList<?>> resul
* @see IndexDeletionPolicyWrapper#saveCommitPoint
* @see IndexDeletionPolicyWrapper#releaseCommitPoint
*/
protected NamedList<Object> createSnapshot(final IndexCommit indexCommit) throws Exception {
protected CoreSnapshotResponse createSnapshot(final IndexCommit indexCommit) throws Exception {
assert indexCommit != null;
if (log.isInfoEnabled()) {
log.info(
@@ -287,8 +291,8 @@ protected NamedList<Object> createSnapshot(final IndexCommit indexCommit) throws
}
boolean success = false;
try {
NamedList<Object> details = new SimpleOrderedMap<>();
details.add("startTime", Instant.now().toString());
CoreSnapshotResponse details = new CoreSnapshotResponse();
details.startTime = Instant.now().toString();

Collection<String> files = indexCommit.getFileNames();
Directory dir =
@@ -311,13 +315,13 @@ protected NamedList<Object> createSnapshot(final IndexCommit indexCommit) throws
String endTime = Instant.now().toString();

// DEPRECATED: fileCount for removal, replaced with indexFileCount
details.add("fileCount", files.size());
details.add("indexFileCount", files.size());
details.add("status", "success");
details.add("snapshotCompletedAt", endTime); // DEPRECATED: for removal, replaced with endTime
details.add("endTime", endTime);
details.add("snapshotName", snapshotName);
details.add("directoryName", directoryName);
details.fileCount = files.size();
details.indexFileCount = files.size();
details.status = "success";
details.snapshotCompletedAt = endTime; // DEPRECATED: for removal, replaced with endTime
details.endTime = endTime;
details.snapshotName = snapshotName;
details.directoryName = directoryName;
if (log.isInfoEnabled()) {
log.info(
"Done creating backup snapshot: {} into {}",
@@ -389,4 +393,38 @@ protected void deleteNamedSnapshot(ReplicationHandler replicationHandler) {
}

public static final String DATE_FMT = "yyyyMMddHHmmssSSS";

public static class CoreSnapshotResponse extends SolrJerseyResponse {
@Schema(description = "The time at which snapshot started at.")
@JsonProperty("startTime")
public String startTime;

@Schema(description = "The number of files in the snapshot.")
@JsonProperty("fileCount")
public int fileCount;

@Schema(description = "The number of index files in the snapshot.")
@JsonProperty("indexFileCount")
public int indexFileCount;

@Schema(description = "The status of the snapshot")
@JsonProperty("status")
public String status;

@Schema(description = "The time at which snapshot completed at.")
@JsonProperty("snapshotCompletedAt")
public String snapshotCompletedAt;

@Schema(description = "The time at which snapshot completed at.")
@JsonProperty("endTime")
public String endTime;

@Schema(description = "The name of the snapshot")
@JsonProperty("snapshotName")
public String snapshotName;

@Schema(description = "The name of the directory where snapshot created.")
@JsonProperty("directoryName")
public String directoryName;
}
}
89 changes: 26 additions & 63 deletions solr/core/src/java/org/apache/solr/handler/admin/BackupCoreOp.java
Original file line number Diff line number Diff line change
@@ -17,84 +17,47 @@

package org.apache.solr.handler.admin;

import java.net.URI;
import java.nio.file.Paths;
import java.util.Optional;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.CoreAdminParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.backup.BackupFilePaths;
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.core.backup.ShardBackupId;
import org.apache.solr.core.backup.repository.BackupRepository;
import org.apache.solr.handler.IncrementalShardBackup;
import org.apache.solr.handler.SnapShooter;
import org.apache.solr.handler.admin.api.BackupCoreAPI;
import org.apache.solr.handler.api.V2ApiUtils;
import org.apache.solr.jersey.SolrJerseyResponse;

class BackupCoreOp implements CoreAdminHandler.CoreAdminOp {

@Override
public void execute(CoreAdminHandler.CallInfo it) throws Exception {
final SolrParams params = it.req.getParams();

String cname = params.required().get(CoreAdminParams.CORE);
boolean incremental = isIncrementalBackup(params);
final String name = parseBackupName(params);
final ShardBackupId shardBackupId = parseShardBackupId(params);
String prevShardBackupIdStr = params.get(CoreAdminParams.PREV_SHARD_BACKUP_ID, null);
String repoName = params.get(CoreAdminParams.BACKUP_REPOSITORY);
BackupCoreAPI.BackupCoreRequestBody backupCoreRequestBody =
new BackupCoreAPI.BackupCoreRequestBody();
backupCoreRequestBody.repository = params.get(CoreAdminParams.BACKUP_REPOSITORY);
backupCoreRequestBody.location = params.get(CoreAdminParams.BACKUP_LOCATION);
// An optional parameter to describe the snapshot to be backed-up. If this
// parameter is not supplied, the latest index commit is backed-up.
String commitName = params.get(CoreAdminParams.COMMIT_NAME);

try (BackupRepository repository = it.handler.coreContainer.newBackupRepository(repoName);
SolrCore core = it.handler.coreContainer.getCore(cname)) {
String location = repository.getBackupLocation(params.get(CoreAdminParams.BACKUP_LOCATION));
if (location == null) {
throw new SolrException(
SolrException.ErrorCode.BAD_REQUEST,
"'location' is not specified as a query"
+ " parameter or as a default repository property");
}
backupCoreRequestBody.commitName = params.get(CoreAdminParams.COMMIT_NAME);

URI locationUri = repository.createDirectoryURI(location);
repository.createDirectory(locationUri);
String cname = params.required().get(CoreAdminParams.CORE);
backupCoreRequestBody.backupName = parseBackupName(params);
boolean incremental = isIncrementalBackup(params);
if (incremental) {
backupCoreRequestBody.shardBackupId = params.required().get(CoreAdminParams.SHARD_BACKUP_ID);
backupCoreRequestBody.prevShardBackupId =
params.get(CoreAdminParams.PREV_SHARD_BACKUP_ID, null);
backupCoreRequestBody.incremental = true;
}
BackupCoreAPI backupCoreAPI =
new BackupCoreAPI(
it.handler.coreContainer, it.req, it.rsp, it.handler.coreAdminAsyncTracker);
try {
SolrJerseyResponse response = backupCoreAPI.createBackup(cname, backupCoreRequestBody);
NamedList<Object> namedList = new SimpleOrderedMap<>();
V2ApiUtils.squashIntoNamedListWithoutHeader(namedList, response);
it.rsp.addResponse(namedList);

if (incremental) {
if ("file".equals(locationUri.getScheme())) {
core.getCoreContainer().assertPathAllowed(Paths.get(locationUri));
}
final ShardBackupId prevShardBackupId =
prevShardBackupIdStr != null ? ShardBackupId.from(prevShardBackupIdStr) : null;
BackupFilePaths incBackupFiles = new BackupFilePaths(repository, locationUri);
IncrementalShardBackup incSnapShooter =
new IncrementalShardBackup(
repository,
core,
incBackupFiles,
prevShardBackupId,
shardBackupId,
Optional.ofNullable(commitName));
NamedList<Object> rsp = incSnapShooter.backup();
it.rsp.addResponse(rsp);
} else {
SnapShooter snapShooter = new SnapShooter(repository, core, locationUri, name, commitName);
// validateCreateSnapshot will create parent dirs instead of throw; that choice is dubious.
// But we want to throw. One reason is that this dir really should, in fact must, already
// exist here if triggered via a collection backup on a shared file system. Otherwise,
// perhaps the FS location isn't shared -- we want an error.
if (!snapShooter.getBackupRepository().exists(snapShooter.getLocation())) {
throw new SolrException(
SolrException.ErrorCode.BAD_REQUEST,
"Directory to contain snapshots doesn't exist: "
+ snapShooter.getLocation()
+ ". "
+ "Note that Backup/Restore of a SolrCloud collection "
+ "requires a shared file system mounted at the same path on all nodes!");
}
snapShooter.validateCreateSnapshot();
it.rsp.addResponse(snapShooter.createSnapshot());
}
} catch (Exception e) {
throw new SolrException(
SolrException.ErrorCode.SERVER_ERROR,
Original file line number Diff line number Diff line change
@@ -55,6 +55,7 @@
import org.apache.solr.core.CoreDescriptor;
import org.apache.solr.handler.RequestHandlerBase;
import org.apache.solr.handler.admin.api.AllCoresStatusAPI;
import org.apache.solr.handler.admin.api.BackupCoreAPI;
import org.apache.solr.handler.admin.api.CoreSnapshotAPI;
import org.apache.solr.handler.admin.api.CreateCoreAPI;
import org.apache.solr.handler.admin.api.InstallCoreDataAPI;
@@ -381,7 +382,7 @@ public Collection<Api> getApis() {

@Override
public Collection<Class<? extends JerseyResource>> getJerseyResources() {
return List.of(CoreSnapshotAPI.class, InstallCoreDataAPI.class);
return List.of(CoreSnapshotAPI.class, InstallCoreDataAPI.class, BackupCoreAPI.class);
}

static {
Loading