Wei-Chiu Chuang created HDDS-17681:
--------------------------------------
Summary: Recon must reject metadata layout versions newer than its
software supports
Key: HDDS-17681
URL: https://issues.apache.org/jira/browse/HDDS-17681
Project: Apache Ozone
Issue Type: Bug
Components: Ozone Recon
Affects Versions: 2.0.0
Reporter: Wei-Chiu Chuang
ReconLayoutVersionManager accepts a stored metadata layout version (MLV)
greater than its software layout version (SLV). Older Recon can consequently
start and serve incorrect derived metadata after a direct downgrade.
Reproduced with Apache release images:
1. Start Ozone 2.0.0 with an FSO bucket containing nested keys; Recon metadata
version is 1.
2. Stop services and back up Recon, then upgrade to 2.2.2 without finalizing OM
or SCM. Recon automatically migrates its metadata to version 5. Let Recon
synchronize a third key written while pre-finalized.
3. Stop services and downgrade to 2.0.0. On a separate copy of the migrated
Recon data, do not restore the backup.
4. Recon logs Current MLV: 5. SLV: 1 and initializes successfully, but
namespace summary reports zero directories/keys and disk usage zero. The bucket
actually has three keys. The cluster API reports a stale count of two.
5. Another key can be written/read through OM. Recon catches up to OM with zero
sequence-number lag, yet its namespace remains empty and its cluster count
remains stale. Offline SQL still reports metadata version 5.
Control: restoring the stopped 2.0.0 Recon backup before downgrade succeeds.
Recon metadata returns to version 1 and resynchronizes all three keys with
correct counts and usage. This is incorrect Recon reporting, not evidence of
lost Ozone keys.
Regression:
TestReconLayoutVersionManager#testInitializationRejectsNewerMetadataLayoutVersion
supplies MLV 3 with SLV 2. It fails because initialization throws no
exception. A matching-version control passes. The constructor has no MLV > SLV
compatibility check.
Expected: reject an unsupported newer MLV before schema repair or upgrade
actions, report both versions and explain that compatible binaries or the
pre-upgrade Recon backup are required. Preserve startup support when MLV equals
or is older than SLV.
This is a concrete product follow-up to HDDS-17625, separate from Recon
intentionally migrating at startup. Documentation is tracked in HDDS-17624.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]