Dian-Xuan Yang created HDDS-17610:
-------------------------------------

             Summary: Remove volume table rows written under the bare volume 
name by earlier quota repairs
                 Key: HDDS-17610
                 URL: https://issues.apache.org/jira/browse/HDDS-17610
             Project: Apache Ozone
          Issue Type: Bug
          Components: Ozone Manager
            Reporter: Dian-Xuan Yang
            Assignee: Dian-Xuan Yang


Before HDDS-17240, a full quota repair ({{ozone repair om quota start}} without 
{{--buckets}}, or the {{QUOTA}} upgrade action) wrote each converted volume to 
the volume table under the bare volume name ({{vol}}) instead of the volume 
table key ({{/vol}}). HDDS-17240 fixed the write but did not remove the rows 
that earlier repairs had already written.

Volume lookups use the {{/}} prefixed key and never read these rows. The volume 
table is fully cached, though, and the rows are loaded into the cache on 
restart, so they show up wherever the whole table is iterated:
* {{ozone sh volume list --all}} ({{listAllVolumes}}) lists each repaired 
volume twice.
* {{VolumeUtilizationMetrics}} emits two records for it.
* Volume delete removes only the {{/vol}} row, so the bare row is still listed 
after the volume is deleted.

No existing tool removes a single volume table row: {{ozone debug ldb}} is read 
only, and {{ozone sh volume delete}} addresses the {{/}} prefixed key.

Suggested in the review of apache/ozone#11846: remove each row whose key has no 
{{/}} prefix and equals its {{getVolume()}}. Doing it in a Ratis request, for 
example in the volume part of the quota repair, which already iterates the 
volume table, would keep every OM in the same state.




--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to