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]