Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 merged PR #10198: URL: https://github.com/apache/ozone/pull/10198 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on PR #10198: URL: https://github.com/apache/ozone/pull/10198#issuecomment-4422990868 Hey devesh! Thanks for the reviews! Could you take a final look at the changes? I’ve addressed the review comments and added a test coverage section to the PR description (unit and integration scenarios). Testing was done with both unit tests and integration tests. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3218336257
##
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/pages/containers/containers.tsx:
##
@@ -272,20 +276,86 @@ const Containers: React.FC<{}> = () => {
};
// ── Container data fetching ───
+
+ // Fetches the quasi-closed count independently to populate Highlights on
page load.
+ const fetchQuasiClosedCount = async () => {
+try {
+ const response = await fetchData(
+'/api/v1/containers/quasiClosed',
+'GET',
+{ limit: 1, minContainerId: 0 }
Review Comment:
**Count-only fetch (`limit=0`):** Updated `fetchQuasiClosedCount` to call
`/quasiClosed` with `limit=0` and `minContainerId=0`. On the backend, `limit=0`
means `getContainers(..., 0, QUASI_CLOSED)` returns an empty list, so we don’t
build any row metadata or hit replica history for a throwaway first row we only
return `quasiClosedCount` from `getContainerStateCount` plus empty `containers`
and the usual pagination keys.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3218338503
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -976,4 +978,55 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param minContainerId cursor — return containers with ID >
minContainerId.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
+ @DefaultValue(DEFAULT_FETCH_COUNT) @QueryParam(RECON_QUERY_LIMIT) int
limit,
+ @DefaultValue(PREV_CONTAINER_ID_DEFAULT_VALUE)
+ @QueryParam(RECON_QUERY_MIN_CONTAINER_ID) long minContainerId) {
+
+List containers = containerManager.getContainers(
Review Comment:
**Validation on `limit` / `minContainerId`:** Added checks at the start of
`getQuasiClosedContainers`: reject `minContainerId < 0` or `limit < 0` with
`400 BAD_REQUEST`. `limit=0` is explicitly allowed so the count-only path above
stays valid.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r321830
##
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/types/container.types.ts:
##
@@ -84,6 +101,16 @@ export type TabPaginationState = {
hasNextPage: boolean;
}
+export type QuasiClosedTabState = {
+ data: QuasiClosedContainer[];
Review Comment:
Removed it. The quasi-closed tab still uses TabPaginationState with data:
Container[]; we map each QuasiClosedContainer from the API through
toContainer() before putting rows in state, so a separate QuasiClosedTabState
was never needed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3218298695
##
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/pages/containers/containers.tsx:
##
@@ -64,6 +65,7 @@ const TAB_STATE_MAP: Record = {
'3': 'OVER_REPLICATED',
'4': 'MIS_REPLICATED',
'5': 'REPLICA_MISMATCH',
+ '6': 'QUASI_CLOSED',
Review Comment:
TAB_STATE_MAP: The '6': 'QUASI_CLOSED' entry is removed. That map is only
for building /api/v1/containers/unhealthy/{state} URLs for tabs 1–5. Tab 6
never used that value in practice because it always calls /quasiClosed instead.
Keeping it in the map was misleading. The flow is now: handle tabKey === '6'
first (quasi-closed path), then if (!containerStateName) return for the Export
tab and any unknown keys, then the unhealthy fetch for tabs 1–5.
##
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/pages/containers/containers.tsx:
##
@@ -272,20 +276,86 @@ const Containers: React.FC<{}> = () => {
};
// ── Container data fetching ───
+
+ // Fetches the quasi-closed count independently to populate Highlights on
page load.
+ const fetchQuasiClosedCount = async () => {
+try {
+ const response = await fetchData(
+'/api/v1/containers/quasiClosed',
+'GET',
+{ limit: 1, minContainerId: 0 }
+ );
+ setState(prev => ({
+...prev,
+quasiClosedCount: response.quasiClosedCount ?? prev.quasiClosedCount,
+ }));
+} catch (_) {
+ // Non-critical: count stays 0 until the tab is opened.
+}
+ };
+
const fetchTabData = async (
tabKey: string,
minContainerId: number,
currentPageSize: number
) => {
const containerStateName = TAB_STATE_MAP[tabKey];
-if (!containerStateName) return; // skip Export tab (key='6') or unknown
keys
+if (!containerStateName) return; // skip Export tab (key='7') or unknown
keys
const fetchSize = currentPageSize + 1;
setTabStates(prev => ({
...prev,
[tabKey]: { ...prev[tabKey], loading: true },
}));
+if (tabKey === '6') {
+ // Quasi-closed tab uses its own dedicated in-memory endpoint.
+ try {
+const response = await fetchData(
+ '/api/v1/containers/quasiClosed',
+ 'GET',
+ { limit: fetchSize, minContainerId }
+);
+const allContainers = response.containers ?? [];
+const hasNextPage = allContainers.length > currentPageSize;
+const pageContainers = allContainers.slice(0, currentPageSize);
+// Map stateEnterTime → unhealthySince so the shared ContainerTable
renders correctly.
+const mapped = pageContainers.map(c => ({
+ ...c,
+ containerState: 'QUASI_CLOSED',
+ unhealthySince: c.stateEnterTime,
Review Comment:
The inline spread + cast is replaced with a small toContainer(qc:
QuasiClosedContainer): Container helper that maps every field explicitly, then
const mapped: Container[] = pageContainers.map(toContainer). That way renames
or shape changes on QuasiClosedContainer surface at compile time instead of
silently breaking at runtime.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3218298695
##
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/pages/containers/containers.tsx:
##
@@ -64,6 +65,7 @@ const TAB_STATE_MAP: Record = {
'3': 'OVER_REPLICATED',
'4': 'MIS_REPLICATED',
'5': 'REPLICA_MISMATCH',
+ '6': 'QUASI_CLOSED',
Review Comment:
Removed '6': 'QUASI_CLOSED' from the map with an explanatory comment. The
quasi-closed branch now checks tabKey === '6' first before the map is
consulted, exactly as suggested.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3215044996
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -812,4 +818,54 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param prevKey the containerID after which results are returned.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
+ @DefaultValue(DEFAULT_FETCH_COUNT) @QueryParam(RECON_QUERY_LIMIT) int
limit,
+ @DefaultValue(PREV_CONTAINER_ID_DEFAULT_VALUE)
@QueryParam(RECON_QUERY_PREVKEY) long prevKey) {
+
+List containers = containerManager.getContainers(
+ContainerID.valueOf(prevKey + 1), limit,
HddsProtos.LifeCycleState.QUASI_CLOSED);
+
+List metaList = containers.stream()
+.map(ci -> {
+ long containerID = ci.getContainerID();
+ int requiredNodes = 0;
+ try {
+requiredNodes = ci.getReplicationConfig().getRequiredNodes();
+ } catch (Exception e) {
+LOG.warn("Could not get required nodes for container {}",
containerID, e);
+ }
+ List replicas =
containerManager.getLatestContainerHistory(containerID, requiredNodes);
+
+ UnhealthyContainerMetadata metadata = new UnhealthyContainerMetadata(
+ containerID,
+ "QUASI_CLOSED",
+ ci.getStateEnterTime() != null ?
ci.getStateEnterTime().toEpochMilli() : 0L,
+ requiredNodes,
+ replicas.size(),
+ replicas.size() - requiredNodes,
+ "",
+ ci.getNumberOfKeys(),
+ ci.getPipelineID() != null ? ci.getPipelineID().getId() : null,
+ replicas
+ );
+ return metadata;
+})
+.collect(Collectors.toList());
+
+long firstKey = metaList.isEmpty() ? prevKey :
metaList.get(0).getContainerID();
+long lastKey = metaList.isEmpty() ? prevKey :
metaList.get(metaList.size() - 1).getContainerID();
+long total=
containerManager.getContainerStateCount(HddsProtos.LifeCycleState.QUASI_CLOSED);
+
+return Response.ok(new QuasiClosedContainersResponse(total, firstKey,
lastKey, metaList)).build();
Review Comment:
Removed the unused totalCount field from ContainersPaginationResponse in
container.types.ts. The QuasiClosedContainersResponse type now has its own
dedicated quasiClosedCount field.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3218298695
##
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/pages/containers/containers.tsx:
##
@@ -64,6 +65,7 @@ const TAB_STATE_MAP: Record = {
'3': 'OVER_REPLICATED',
'4': 'MIS_REPLICATED',
'5': 'REPLICA_MISMATCH',
+ '6': 'QUASI_CLOSED',
Review Comment:
Fixed. Removed '6': 'QUASI_CLOSED' from the map with an explanatory comment.
The quasi-closed branch now checks tabKey === '6' first before the map is
consulted, exactly as suggested.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3218298695
##
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/pages/containers/containers.tsx:
##
@@ -64,6 +65,7 @@ const TAB_STATE_MAP: Record = {
'3': 'OVER_REPLICATED',
'4': 'MIS_REPLICATED',
'5': 'REPLICA_MISMATCH',
+ '6': 'QUASI_CLOSED',
Review Comment:
Fixed. quasiClosedCount is initialized to 0 in state, populated via an
independent fetchQuasiClosedCount call on page load and refresh, and rendered
in the Highlights card. The Quasi Closed tab (key='6') is also fully present in
the JSX.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3218226582
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -976,4 +978,55 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param minContainerId cursor — return containers with ID >
minContainerId.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
+ @DefaultValue(DEFAULT_FETCH_COUNT) @QueryParam(RECON_QUERY_LIMIT) int
limit,
+ @DefaultValue(PREV_CONTAINER_ID_DEFAULT_VALUE)
+ @QueryParam(RECON_QUERY_MIN_CONTAINER_ID) long minContainerId) {
+
+List containers = containerManager.getContainers(
+ContainerID.valueOf(minContainerId + 1), limit,
HddsProtos.LifeCycleState.QUASI_CLOSED);
+
+List metaList = containers.stream()
+.map(this::toQuasiClosedMetadata)
+.collect(Collectors.toList());
+
+long firstKey = metaList.isEmpty() ? minContainerId :
metaList.get(0).getContainerID();
+long lastKey = metaList.isEmpty() ? minContainerId :
metaList.get(metaList.size() - 1).getContainerID();
+long total=
containerManager.getContainerStateCount(HddsProtos.LifeCycleState.QUASI_CLOSED);
Review Comment:
Hey @devmadhuu are you suggesting that the quasi-closed endpoint should also
return UnhealthyContainersResponse for consistency across container endpoints
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
devmadhuu commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3217648609
##
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/pages/containers/containers.tsx:
##
@@ -272,20 +276,86 @@ const Containers: React.FC<{}> = () => {
};
// ── Container data fetching ───
+
+ // Fetches the quasi-closed count independently to populate Highlights on
page load.
+ const fetchQuasiClosedCount = async () => {
+try {
+ const response = await fetchData(
+'/api/v1/containers/quasiClosed',
+'GET',
+{ limit: 1, minContainerId: 0 }
+ );
+ setState(prev => ({
+...prev,
+quasiClosedCount: response.quasiClosedCount ?? prev.quasiClosedCount,
+ }));
+} catch (_) {
+ // Non-critical: count stays 0 until the tab is opened.
+}
+ };
+
const fetchTabData = async (
tabKey: string,
minContainerId: number,
currentPageSize: number
) => {
const containerStateName = TAB_STATE_MAP[tabKey];
-if (!containerStateName) return; // skip Export tab (key='6') or unknown
keys
+if (!containerStateName) return; // skip Export tab (key='7') or unknown
keys
const fetchSize = currentPageSize + 1;
setTabStates(prev => ({
...prev,
[tabKey]: { ...prev[tabKey], loading: true },
}));
+if (tabKey === '6') {
+ // Quasi-closed tab uses its own dedicated in-memory endpoint.
+ try {
+const response = await fetchData(
+ '/api/v1/containers/quasiClosed',
+ 'GET',
+ { limit: fetchSize, minContainerId }
+);
+const allContainers = response.containers ?? [];
+const hasNextPage = allContainers.length > currentPageSize;
+const pageContainers = allContainers.slice(0, currentPageSize);
+// Map stateEnterTime → unhealthySince so the shared ContainerTable
renders correctly.
+const mapped = pageContainers.map(c => ({
+ ...c,
+ containerState: 'QUASI_CLOSED',
+ unhealthySince: c.stateEnterTime,
Review Comment:
Instead of doing like this, better define a mapper function, so in future it
can catch any type safety issues. If tomorrow someone renames `containerID` to
id in `QuasiClosedContainer`, TypeScript won't warn you that `c.containerID` is
now undefined
```
function toContainer(qc: QuasiClosedContainer): Container {
return {
containerID: qc.containerID,
pipelineID: qc.pipelineID,
keys: qc.keys,
containerState: 'QUASI_CLOSED',
unhealthySince: qc.stateEnterTime, // clear rename
expectedReplicaCount: qc.expectedReplicaCount,
actualReplicaCount: qc.actualReplicaCount,
replicaDeltaCount: qc.actualReplicaCount - qc.expectedReplicaCount,
reason: '',
replicas: qc.replicas,
};
}
const mapped: Container[] = pageContainers.map(toContainer); // fully
typed, no 'any'
```
##
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/types/container.types.ts:
##
@@ -84,6 +101,16 @@ export type TabPaginationState = {
hasNextPage: boolean;
}
+export type QuasiClosedTabState = {
+ data: QuasiClosedContainer[];
Review Comment:
This is not used because `TabPaginationState` has data: `Container[]`, not
data: `QuasiClosedContainer[]`.
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -976,4 +978,55 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param minContainerId cursor — return containers with ID >
minContainerId.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
+ @DefaultValue(DEFAULT_FETCH_COUNT) @QueryParam(RECON_QUERY_LIMIT) int
limit,
+ @DefaultValue(PREV_CONTAINER_ID_DEFAULT_VALUE)
+ @QueryParam(RECON_QUERY_MIN_CONTAINER_ID) long minContainerId) {
+
+List containers = containerManager.getContainers(
+ContainerID.valueOf(minContainerId + 1), limit,
HddsProtos.LifeCycleState.QUASI_CLOSED);
+
+List metaList = containers.stream()
+.map(this::toQuasiClosedMetadata)
+.collect(Collectors.toList());
+
+long firstKey = metaList.isEmpty() ? minContainerId :
metaList.get(0).getContainerID();
+long lastKey = metaList.isEmpty() ? minContainerId :
metaList.get(metaList.size() - 1).getContainerID();
+long total=
containerManager.getContainerStateCount(HddsProtos.LifeCycleState.QUASI_CLOSED);
Review Comment:
Keep the return type same as underlying API return type.
##
hadoop-ozo
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
devmadhuu commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3217448264
##
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/types/container.types.ts:
##
@@ -121,8 +149,10 @@ export type ContainerState = {
overReplicatedCount: number;
misReplicatedCount: number;
replicaMismatchCount: number;
+ quasiClosedCount: number;
Review Comment:
This is required field, but from containers.tsx, its removed
##
hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/src/v2/types/container.types.ts:
##
@@ -121,8 +149,10 @@ export type ContainerState = {
overReplicatedCount: number;
misReplicatedCount: number;
replicaMismatchCount: number;
+ quasiClosedCount: number;
}
Review Comment:
Pls check , in latest commit, quasi closed tab is removed from UI code.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3215080951
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -447,6 +448,11 @@ private Response getUnhealthyContainersFromSchema(
for (UnhealthyContainersSummary s : summary) {
response.setSummaryCount(s.getContainerState(), s.getCount());
}
+
+// Also include the quasi-closed count in the summary for the frontend
Highlights tab
+long quasiClosedCount =
containerManager.getContainerStateCount(HddsProtos.LifeCycleState.QUASI_CLOSED);
Review Comment:
Fixed. Removed `quasiClosedCount` from `UnhealthyContainersResponse` and the
injection from `getUnhealthyContainersFromSchema`. On the frontend, the
Highlights card now gets the quasi-closed count via an independent background
call to `/api/v1/containers/quasiClosed?limit=1` on page load and on full
refresh, keeping the unhealthy DB query path completely separate from the
in-memory quasi-closed count.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3215045407
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -812,4 +818,54 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param prevKey the containerID after which results are returned.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
+ @DefaultValue(DEFAULT_FETCH_COUNT) @QueryParam(RECON_QUERY_LIMIT) int
limit,
+ @DefaultValue(PREV_CONTAINER_ID_DEFAULT_VALUE)
@QueryParam(RECON_QUERY_PREVKEY) long prevKey) {
+
+List containers = containerManager.getContainers(
+ContainerID.valueOf(prevKey + 1), limit,
HddsProtos.LifeCycleState.QUASI_CLOSED);
+
+List metaList = containers.stream()
+.map(ci -> {
+ long containerID = ci.getContainerID();
+ int requiredNodes = 0;
+ try {
+requiredNodes = ci.getReplicationConfig().getRequiredNodes();
+ } catch (Exception e) {
+LOG.warn("Could not get required nodes for container {}",
containerID, e);
+ }
+ List replicas =
containerManager.getLatestContainerHistory(containerID, requiredNodes);
+
+ UnhealthyContainerMetadata metadata = new UnhealthyContainerMetadata(
Review Comment:
*Fixed. Created a dedicated `QuasiClosedContainerMetadata` DTO with
semantically correct fields (`stateEnterTime`, `expectedReplicaCount`,
`actualReplicaCount`, `pipelineID`, `keys`, `replicas`). Updated
`QuasiClosedContainersResponse` to use `List` and
removed the temporary extra constructor that was added to
`UnhealthyContainerMetadata`. The frontend types are also updated with a
separate `QuasiClosedContainer` type.*
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3215049788
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -812,4 +818,54 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param prevKey the containerID after which results are returned.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
+ @DefaultValue(DEFAULT_FETCH_COUNT) @QueryParam(RECON_QUERY_LIMIT) int
limit,
+ @DefaultValue(PREV_CONTAINER_ID_DEFAULT_VALUE)
@QueryParam(RECON_QUERY_PREVKEY) long prevKey) {
+
+List containers = containerManager.getContainers(
+ContainerID.valueOf(prevKey + 1), limit,
HddsProtos.LifeCycleState.QUASI_CLOSED);
+
+List metaList = containers.stream()
+.map(ci -> {
+ long containerID = ci.getContainerID();
+ int requiredNodes = 0;
+ try {
+requiredNodes = ci.getReplicationConfig().getRequiredNodes();
+ } catch (Exception e) {
+LOG.warn("Could not get required nodes for container {}",
containerID, e);
+ }
+ List replicas =
containerManager.getLatestContainerHistory(containerID, requiredNodes);
Review Comment:
Fixed. Extracted a `toQuasiClosedMetadata(ContainerInfo ci)` helper method
with a proper `try/catch` block that wraps exceptions in
`WebApplicationException` with `INTERNAL_SERVER_ERROR`, mirroring the existing
`toUnhealthyMetadata` pattern.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3215049788
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -812,4 +818,54 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param prevKey the containerID after which results are returned.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
+ @DefaultValue(DEFAULT_FETCH_COUNT) @QueryParam(RECON_QUERY_LIMIT) int
limit,
+ @DefaultValue(PREV_CONTAINER_ID_DEFAULT_VALUE)
@QueryParam(RECON_QUERY_PREVKEY) long prevKey) {
+
+List containers = containerManager.getContainers(
+ContainerID.valueOf(prevKey + 1), limit,
HddsProtos.LifeCycleState.QUASI_CLOSED);
+
+List metaList = containers.stream()
+.map(ci -> {
+ long containerID = ci.getContainerID();
+ int requiredNodes = 0;
+ try {
+requiredNodes = ci.getReplicationConfig().getRequiredNodes();
+ } catch (Exception e) {
+LOG.warn("Could not get required nodes for container {}",
containerID, e);
+ }
+ List replicas =
containerManager.getLatestContainerHistory(containerID, requiredNodes);
Review Comment:
*Fixed. Extracted a `toQuasiClosedMetadata(ContainerInfo ci)` helper method
with a proper `try/catch` block that wraps exceptions in
`WebApplicationException` with `INTERNAL_SERVER_ERROR`, mirroring the existing
`toUnhealthyMetadata` pattern.*
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3215045407
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -812,4 +818,54 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param prevKey the containerID after which results are returned.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
+ @DefaultValue(DEFAULT_FETCH_COUNT) @QueryParam(RECON_QUERY_LIMIT) int
limit,
+ @DefaultValue(PREV_CONTAINER_ID_DEFAULT_VALUE)
@QueryParam(RECON_QUERY_PREVKEY) long prevKey) {
+
+List containers = containerManager.getContainers(
+ContainerID.valueOf(prevKey + 1), limit,
HddsProtos.LifeCycleState.QUASI_CLOSED);
+
+List metaList = containers.stream()
+.map(ci -> {
+ long containerID = ci.getContainerID();
+ int requiredNodes = 0;
+ try {
+requiredNodes = ci.getReplicationConfig().getRequiredNodes();
+ } catch (Exception e) {
+LOG.warn("Could not get required nodes for container {}",
containerID, e);
+ }
+ List replicas =
containerManager.getLatestContainerHistory(containerID, requiredNodes);
+
+ UnhealthyContainerMetadata metadata = new UnhealthyContainerMetadata(
Review Comment:
Created a dedicated QuasiClosedContainerMetadata DTO with semantically
correct fields (stateEnterTime, expectedReplicaCount, actualReplicaCount,
pipelineID, keys, replicas). Updated QuasiClosedContainersResponse to use
List and removed the temporary extra constructor
that was added to UnhealthyContainerMetadata. The frontend types are also
updated with a separate QuasiClosedContainer type.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3215044996
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -812,4 +818,54 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param prevKey the containerID after which results are returned.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
+ @DefaultValue(DEFAULT_FETCH_COUNT) @QueryParam(RECON_QUERY_LIMIT) int
limit,
+ @DefaultValue(PREV_CONTAINER_ID_DEFAULT_VALUE)
@QueryParam(RECON_QUERY_PREVKEY) long prevKey) {
+
+List containers = containerManager.getContainers(
+ContainerID.valueOf(prevKey + 1), limit,
HddsProtos.LifeCycleState.QUASI_CLOSED);
+
+List metaList = containers.stream()
+.map(ci -> {
+ long containerID = ci.getContainerID();
+ int requiredNodes = 0;
+ try {
+requiredNodes = ci.getReplicationConfig().getRequiredNodes();
+ } catch (Exception e) {
+LOG.warn("Could not get required nodes for container {}",
containerID, e);
+ }
+ List replicas =
containerManager.getLatestContainerHistory(containerID, requiredNodes);
+
+ UnhealthyContainerMetadata metadata = new UnhealthyContainerMetadata(
+ containerID,
+ "QUASI_CLOSED",
+ ci.getStateEnterTime() != null ?
ci.getStateEnterTime().toEpochMilli() : 0L,
+ requiredNodes,
+ replicas.size(),
+ replicas.size() - requiredNodes,
+ "",
+ ci.getNumberOfKeys(),
+ ci.getPipelineID() != null ? ci.getPipelineID().getId() : null,
+ replicas
+ );
+ return metadata;
+})
+.collect(Collectors.toList());
+
+long firstKey = metaList.isEmpty() ? prevKey :
metaList.get(0).getContainerID();
+long lastKey = metaList.isEmpty() ? prevKey :
metaList.get(metaList.size() - 1).getContainerID();
+long total=
containerManager.getContainerStateCount(HddsProtos.LifeCycleState.QUASI_CLOSED);
+
+return Response.ok(new QuasiClosedContainersResponse(total, firstKey,
lastKey, metaList)).build();
Review Comment:
Removed the unused totalCount field from ContainersPaginationResponse in
container.types.ts. The QuasiClosedContainersResponse type now has its own
dedicated quasiClosedCount field.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3215044694
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -812,4 +818,54 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param prevKey the containerID after which results are returned.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
+ @DefaultValue(DEFAULT_FETCH_COUNT) @QueryParam(RECON_QUERY_LIMIT) int
limit,
+ @DefaultValue(PREV_CONTAINER_ID_DEFAULT_VALUE)
@QueryParam(RECON_QUERY_PREVKEY) long prevKey) {
Review Comment:
Fixed. Changed @QueryParam(RECON_QUERY_PREVKEY) to
@QueryParam(RECON_QUERY_MIN_CONTAINER_ID) so the backend now correctly reads
the minContainerId parameter that the frontend sends. Pagination should work
correctly now.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3215023214
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -812,4 +818,54 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param prevKey the containerID after which results are returned.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
Review Comment:
My Idea was that The `/unhealthy` endpoint reads from the Derby
UNHEALTHY_CONTAINERS table which tracks replication health. `QUASI_CLOSED` is a
lifecycle state, not a replication health problem, so I feel It doesn't belong
in that table or that flow.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
devmadhuu commented on code in PR #10198:
URL: https://github.com/apache/ozone/pull/10198#discussion_r3199851443
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -812,4 +818,54 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param prevKey the containerID after which results are returned.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
Review Comment:
Can we not use existing /unhealthy API endpoint, why need new API end point ?
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -812,4 +818,54 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param prevKey the containerID after which results are returned.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
+ @DefaultValue(DEFAULT_FETCH_COUNT) @QueryParam(RECON_QUERY_LIMIT) int
limit,
+ @DefaultValue(PREV_CONTAINER_ID_DEFAULT_VALUE)
@QueryParam(RECON_QUERY_PREVKEY) long prevKey) {
Review Comment:
Also this new API endpoint uses `prevKey` as parameter, but frontend is
sending `minContainerId`, so API will always fallback to default value of
`prevKey` as 0 and pagination is broke here completely. Every `"next page"
`click will return the first page again.
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -812,4 +818,54 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+ /**
+ * Return all containers in QUASI_CLOSED state.
+ *
+ * @param limit max no. of containers to get.
+ * @param prevKey the containerID after which results are returned.
+ * @return {@link Response}
+ */
+ @GET
+ @Path("/quasiClosed")
+ public Response getQuasiClosedContainers(
+ @DefaultValue(DEFAULT_FETCH_COUNT) @QueryParam(RECON_QUERY_LIMIT) int
limit,
+ @DefaultValue(PREV_CONTAINER_ID_DEFAULT_VALUE)
@QueryParam(RECON_QUERY_PREVKEY) long prevKey) {
+
+List containers = containerManager.getContainers(
+ContainerID.valueOf(prevKey + 1), limit,
HddsProtos.LifeCycleState.QUASI_CLOSED);
+
+List metaList = containers.stream()
+.map(ci -> {
+ long containerID = ci.getContainerID();
+ int requiredNodes = 0;
+ try {
+requiredNodes = ci.getReplicationConfig().getRequiredNodes();
+ } catch (Exception e) {
+LOG.warn("Could not get required nodes for container {}",
containerID, e);
+ }
+ List replicas =
containerManager.getLatestContainerHistory(containerID, requiredNodes);
+
+ UnhealthyContainerMetadata metadata = new UnhealthyContainerMetadata(
+ containerID,
+ "QUASI_CLOSED",
+ ci.getStateEnterTime() != null ?
ci.getStateEnterTime().toEpochMilli() : 0L,
+ requiredNodes,
+ replicas.size(),
+ replicas.size() - requiredNodes,
+ "",
+ ci.getNumberOfKeys(),
+ ci.getPipelineID() != null ? ci.getPipelineID().getId() : null,
+ replicas
+ );
+ return metadata;
+})
+.collect(Collectors.toList());
+
+long firstKey = metaList.isEmpty() ? prevKey :
metaList.get(0).getContainerID();
+long lastKey = metaList.isEmpty() ? prevKey :
metaList.get(metaList.size() - 1).getContainerID();
+long total=
containerManager.getContainerStateCount(HddsProtos.LifeCycleState.QUASI_CLOSED);
+
+return Response.ok(new QuasiClosedContainersResponse(total, firstKey,
lastKey, metaList)).build();
Review Comment:
Here, this `QuasiClosedContainersResponse` object is used to wrap the
response sent to frontend, but frontend uses `ContainersPaginationResponse` and
two new fields added `quasiClosedCount` and `totalCount` there, but don't see
totalCount field got added in backend response object -
`QuasiClosedContainersResponse`
##
hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/ContainerEndpoint.java:
##
@@ -812,4 +818,54 @@ public Response getOmContainersDeletedInSCM(
response.put("containerDiscrepancyInfo", containerDiscrepancyInfoList);
return Response.ok(response).build();
}
+
+
[PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 opened a new pull request, #10198: URL: https://github.com/apache/ozone/pull/10198 ## What changes were proposed in this pull request? Provide a one-liner summary of the changes in the PR **Title** field above. It should be in the form of `HDDS-1234. Short summary of the change`. Please describe your PR in detail: * What changes are proposed in the PR? and Why? It would be better if it is written from third person's perspective not just for the reviewer. * Provide as much context and rationale for the pull request as possible. It could be copy-paste from the Jira's description if the jira is well defined. * If it is complex code, describe the approach used to solve the issue. If possible attach design doc, issue investigation, github discussion, etc. Examples of well-written pull requests: * [#3980](https://github.com/apache/ozone/pull/3980) * [#5265](https://github.com/apache/ozone/pull/5265) * [#4701](https://github.com/apache/ozone/pull/4701) * [#5283](https://github.com/apache/ozone/pull/5283) * [#5300](https://github.com/apache/ozone/pull/5300) ## What is the link to the Apache JIRA Please create an issue in ASF JIRA before opening a pull request, and you need to set the title of the pull request which starts with the corresponding JIRA issue number. (e.g. HDDS-. Fix a typo in YYY.) If you do not have an ASF Jira account yet, please follow the first-time contributor instructions in the [Jira guideline](../CONTRIBUTING.md#jira-guideline). (Please replace this section with the link to the Apache JIRA) ## How was this patch tested? (Please explain how this patch was tested. Ex: unit tests, manual tests, workflow run on the fork git repo.) (If this patch involves UI changes, please attach a screenshot; otherwise, remove this.) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
github-actions[bot] commented on PR #10001: URL: https://github.com/apache/ozone/pull/10001#issuecomment-4375573169 Thank you for your contribution. This PR is being closed due to inactivity. Please contact a maintainer if you would like to reopen it. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
github-actions[bot] closed pull request #10001: HDDS-14927. Add Quasi-Closed Container Tracking in Recon. URL: https://github.com/apache/ozone/pull/10001 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
github-actions[bot] commented on PR #10001: URL: https://github.com/apache/ozone/pull/10001#issuecomment-4331414978 This PR has been marked as stale due to 21 days of inactivity. Please comment or remove the stale label to keep it open. Otherwise, it will be automatically closed in 7 days. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
[PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]
ArafatKhan2198 opened a new pull request, #10001: URL: https://github.com/apache/ozone/pull/10001 ## What changes were proposed in this pull request? Provide a one-liner summary of the changes in the PR **Title** field above. It should be in the form of `HDDS-1234. Short summary of the change`. Please describe your PR in detail: * What changes are proposed in the PR? and Why? It would be better if it is written from third person's perspective not just for the reviewer. * Provide as much context and rationale for the pull request as possible. It could be copy-paste from the Jira's description if the jira is well defined. * If it is complex code, describe the approach used to solve the issue. If possible attach design doc, issue investigation, github discussion, etc. Examples of well-written pull requests: * [#3980](https://github.com/apache/ozone/pull/3980) * [#5265](https://github.com/apache/ozone/pull/5265) * [#4701](https://github.com/apache/ozone/pull/4701) * [#5283](https://github.com/apache/ozone/pull/5283) * [#5300](https://github.com/apache/ozone/pull/5300) ## What is the link to the Apache JIRA Please create an issue in ASF JIRA before opening a pull request, and you need to set the title of the pull request which starts with the corresponding JIRA issue number. (e.g. HDDS-. Fix a typo in YYY.) If you do not have an ASF Jira account yet, please follow the first-time contributor instructions in the [Jira guideline](../CONTRIBUTING.md#jira-guideline). (Please replace this section with the link to the Apache JIRA) ## How was this patch tested? (Please explain how this patch was tested. Ex: unit tests, manual tests, workflow run on the fork git repo.) (If this patch involves UI changes, please attach a screenshot; otherwise, remove this.) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] - To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
