[
https://issues.apache.org/jira/browse/HDDS-16375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mahesh kumar gaddam reassigned HDDS-16375:
------------------------------------------
Assignee: Mahesh kumar gaddam
> Recon fileCount API silently ignores the fileSize parameter unless volume and
> bucket are both set
> -------------------------------------------------------------------------------------------------
>
> Key: HDDS-16375
> URL: https://issues.apache.org/jira/browse/HDDS-16375
> Project: Apache Ozone
> Issue Type: Bug
> Components: Ozone Recon
> Reporter: Chi-Hsuan Huang
> Assignee: Mahesh kumar gaddam
> Priority: Minor
>
> {{GET /api/v1/utilization/fileCount}} applies the {{fileSize}} filter only
> when {{volume}}, {{bucket}} and {{fileSize}} are all provided. Any other
> combination falls into the scan branch, which filters on volume and bucket
> only, so {{fileSize}} is dropped without an error or warning.
> Measured on current master by calling {{UtilizationEndpoint#getFileCounts}}
> directly from {{TestEndpoints#testGetFileCounts}}. The dataset has 3 bins:
> {{vol1/bucket1:1024}}, {{vol1/bucket1:131072}}, {{vol2/bucket1:1024}}.
> {noformat}
> getFileCounts\(null, null, 131072\) \-> 3 results: \[vol1/bucket1:1024,
> vol1/bucket1:131072, vol2/bucket1:1024\]
> getFileCounts\("vol1", null, 131072\) \-> 2 results: \[vol1/bucket1:1024,
> vol1/bucket1:131072\]
> {noformat}
> Both should return a single bin. The responses include bins that do not match
> the requested size, so the caller receives an unfiltered list that looks like
> a filtered one.
> ReconApi.md lists {{fileSize}} as optional and describes it as "Filters the
> results based on the given fileSize", with no stated dependency on the other
> two parameters.
> This matters more now that the Recon chatbot \(HDDS\-14816, HDDS\-15570\)
> registers this endpoint as an LLM tool and advertises {{fileSize}} as a
> parameter in {{LlmToolSpecFactory}}. A model answering "how many files around
> 1MB are there" will pass {{fileSize}} on its own and present the full
> distribution as a filtered answer.
> Two ways to resolve this, and the choice needs a maintainer call:h1. Apply
> the {{fileSize}} filter independently in the scan branch, matching the
> documented behaviour.
> h1. Keep the current parameter hierarchy and update ReconApi.md to state that
> {{fileSize}} requires {{volume}} and {{bucket}}.
> This is pre\-existing and dates back to HDDS\-3681. HDDS\-16357 fixed a
> separate normalization bug in the same method and does not overlap with this.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]