Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
0585c2a
Initial plan
Copilot Feb 22, 2026
4aa9e8b
Migrate NodeHealthAPI from @EndPoint to JAX-RS annotations
Copilot Feb 22, 2026
8e2ccd5
Add NodeHealthAPITest2: integration tests without Mockito mocks
Copilot Feb 22, 2026
a50f682
Restore logic to HealthCheckHandler, simplify NodeHealthAPI, update r…
Copilot Feb 22, 2026
b8159ab
restore docs
epugh Feb 28, 2026
01696e3
lint
epugh Feb 28, 2026
dac4e14
Keep the non mock version
epugh Mar 1, 2026
ec8252a
Responding to feedback
epugh Mar 1, 2026
b592322
lint
epugh Mar 1, 2026
ca88d6e
add changelog
epugh Mar 3, 2026
0809a34
Improve changelog
epugh Mar 9, 2026
55bf2ce
Use the name healthcheck
epugh Mar 9, 2026
abea29c
Use enum for status and proper HTTP SolrJ classes in testing.
epugh Mar 9, 2026
9c52897
WIP of hacking this guy up to work with enum :-(
epugh Mar 9, 2026
b47383b
Merge remote-tracking branch 'upstream/main' into copilot/migrate-nod…
epugh Mar 9, 2026
ff53a9d
Restore the exception raised on error behavior that v1 apis had
epugh Mar 9, 2026
2d0c50b
better title
epugh Mar 9, 2026
1452364
Flip delegation: move health-check logic to NodeHealthAPI, HealthChec…
Copilot Mar 9, 2026
71feb02
Migrate business logic into NodeHealthAPI, and fix enum issue
epugh Mar 10, 2026
2a81e9e
Follow the existing naming pattern.
epugh Mar 11, 2026
fc6ee9e
Add test for failure cases.
epugh Mar 12, 2026
4462204
SOLR-18140: Try to bandaid the DELETENODE docs for a broken API (#4170)
epugh Mar 17, 2026
c8cf0db
SOLR-18159 Add metrics for system memory (#4209)
janhoy Mar 17, 2026
e2f9a50
SolrClientTestRule usage conformance (#4217)
dsmiley Mar 17, 2026
5bbf003
JettySolrRunner: catch TimeoutException from Jetty 12 graceful shutdo…
dsmiley Mar 18, 2026
f955c30
LB2SolrClientTest: improve teardown (#4221)
dsmiley Mar 18, 2026
aed1c3e
SOLR-18126 Benchmark, refactor: MiniClusterState -> SolrBenchState (#…
dsmiley Mar 18, 2026
6f41a78
SOLR-17973: Fix `shards.preference` not respected for cross-collectio…
KhushJain Mar 18, 2026
f2c6343
TikaServerExtractionBackendTest: ignore on s390x
dsmiley Mar 18, 2026
8873cf1
SOLR-18155: Abort shard leader election if container shutdown has sta…
psalagnac Mar 18, 2026
1b7c709
Merge remote-tracking branch 'upstream/main' into copilot/migrate-nod…
epugh Mar 18, 2026
e9e6c02
Nicer coding style
epugh Mar 18, 2026
3f5e8ab
Nicer assert style.
epugh Mar 18, 2026
4a5fb4d
Updates from merging latest code in.
epugh Mar 18, 2026
ee3cc2a
use assertThat
epugh Mar 19, 2026
bec1201
Migrate to hamcrest, and use standalone not legacy terms.
epugh Mar 19, 2026
aecb703
Split up standalone versus cloud mode tests.
epugh Mar 19, 2026
3b48bdd
clearer changelog
epugh Mar 19, 2026
e44c779
Expose maxGenerationLag as a V2 query parameter on /api/node/health
Copilot Mar 19, 2026
a029f9c
docs: add maxGenerationLag monitoring section to replication ref guide
Copilot Mar 19, 2026
df5c6f9
better name
epugh Mar 19, 2026
3165c6e
Merge branch 'copilot/migrate-node-health-api' of github.com:epugh/so…
epugh Mar 19, 2026
fc7c7cf
Responding to feedback
epugh Mar 19, 2026
71a778d
Post discussion with jason...
epugh Mar 21, 2026
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
8 changes: 8 additions & 0 deletions changelog/unreleased/SOLR-16458-migrate-node-health-api.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
title: "SolrJ now offers a SolrRequest class allowing users to perform v2 single-node healthchecks: NodeApi.Healthcheck"
type: added
authors:
- name: Eric Pugh
- name: Jason Gerlowski
links:
- name: SOLR-16458
url: https://issues.apache.org/jira/browse/SOLR-16458
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
title: "SOLR-17973: Fix `shards.preference` not respected for cross-collection join queries"
type: fixed
authors:
- name: khushjain
links:
- name: SOLR-17973
url: https://issues.apache.org/jira/browse/SOLR-17973
7 changes: 7 additions & 0 deletions changelog/unreleased/SOLR-18155-election-leak.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
title: Abort shard leader election if container shutdown sequence has started, so we don't have leaders elected very late and not properly closed.
type: fixed
authors:
- name: Pierre Salagnac
links:
- name: SOLR-18155
url: https://issues.apache.org/jira/browse/SOLR-18155
9 changes: 9 additions & 0 deletions changelog/unreleased/SOLR-18159-physical-memory-metrics.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
title: Add new metric jvm_system_memory_bytes
type: added
authors:
- name: Jan Høydahl
url: https://home.apache.org/phonebook.html?uid=janhoy
- name: Matthew Biscocho
links:
- name: SOLR-18159
url: https://issues.apache.org/jira/browse/SOLR-18159
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.solr.client.api.endpoint;

import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.QueryParam;
import org.apache.solr.client.api.model.NodeHealthResponse;

/** V2 API definition for checking the health of a Solr node. */
@Path("/node/health")
public interface NodeHealthApi {

@GET
@Operation(
summary = "Determine the health of a Solr node.",
tags = {"node"})
NodeHealthResponse healthcheck(
@QueryParam("requireHealthyCores") Boolean requireHealthyCores,
@Parameter(
description =
"Maximum number of index generations a follower replica may lag behind its"
+ " leader before the health check reports FAILURE. Only relevant when"
+ " running in Standalone mode with leader/follower replication.")
@QueryParam("maxGenerationLag")
Integer maxGenerationLag);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.solr.client.api.model;

import com.fasterxml.jackson.annotation.JsonProperty;

/** Response body for the '/api/node/health' endpoint. */
public class NodeHealthResponse extends SolrJerseyResponse {

/** The possible health statuses for a Solr node. */
public enum NodeStatus {
OK,
FAILURE
}

@JsonProperty public NodeStatus status;

@JsonProperty public String message;

@JsonProperty("num_cores_unhealthy")
public Integer numCoresUnhealthy;
}
Loading
Loading