Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]

2026-05-11 Thread via GitHub


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]

2026-05-11 Thread via GitHub


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]

2026-05-11 Thread via GitHub


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]

2026-05-11 Thread via GitHub


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]

2026-05-11 Thread via GitHub


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]

2026-05-11 Thread via GitHub


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]

2026-05-11 Thread via GitHub


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]

2026-05-11 Thread via GitHub


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]

2026-05-11 Thread via GitHub


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]

2026-05-11 Thread via GitHub


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]

2026-05-11 Thread via GitHub


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]

2026-05-11 Thread via GitHub


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]

2026-05-11 Thread via GitHub


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]

2026-05-10 Thread via GitHub


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]

2026-05-10 Thread via GitHub


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]

2026-05-10 Thread via GitHub


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]

2026-05-10 Thread via GitHub


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]

2026-05-10 Thread via GitHub


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]

2026-05-10 Thread via GitHub


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]

2026-05-10 Thread via GitHub


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]

2026-05-10 Thread via GitHub


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]

2026-05-08 Thread via GitHub


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();
   }
+
+ 

Re: [PR] HDDS-14927. Add Quasi-Closed Container Tracking in Recon. [ozone]

2026-05-04 Thread via GitHub


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]

2026-05-04 Thread via GitHub


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]

2026-04-27 Thread via GitHub


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]