Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.0.0-alpha1
-
None
-
None
-
Reviewed
Description
Say, the InProgress_000X node is corrupted due to not writing the data(version, ledgerId, firstTxId) to this inProgress_000X znode. Namenode startup has the logic to recover all the unfinalized segments, here will try to read the segment and getting shutdown.
EditLogLedgerMetadata.java: static EditLogLedgerMetadata read(ZooKeeper zkc, String path) throws IOException, KeeperException.NoNodeException { byte[] data = zkc.getData(path, false, null); String[] parts = new String(data).split(";"); if (parts.length == 3) ....reading inprogress metadata else if (parts.length == 4) ....reading inprogress metadata else throw new IOException("Invalid ledger entry, " + new String(data)); }
Scenario:- Leaving bad inProgress_000X node ?
Assume BKJM has created the inProgress_000X zNode and ZK is not available when trying to add the metadata. Now, inProgress_000X ends up with partial information.
Attachments
Attachments
Issue Links
- depends upon
-
HDFS-3058 HA: Bring BookKeeperJournalManager up to date with HA changes
- Closed