You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Attila Doroszlai (Jira)" <ji...@apache.org> on 2026/09/24 10:05:00 UTC
[jira] [Resolved] (HDDS-16375) Recon fileCount API silently ignores the fileSize parameter unless volume and bucket are both set
[ https://issues.apache.org/jira/browse/HDDS-16375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Attila Doroszlai resolved HDDS-16375.
-------------------------------------
Fix Version/s: 2.3.0
Resolution: Fixed
> 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
> Labels: pull-request-available
> Fix For: 2.3.0
>
>
> {{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: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org