[ https://issues.apache.org/jira/browse/ZOOKEEPER-2420?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ed Rowe updated ZOOKEEPER-2420: ------------------------------- Description: Autopurge retains all log files whose zxid are >= the zxid of the oldest snapshot file that it is going to retain (in PurgeTxnLog retainNRecentSnapshots()). However, unless there is a log file with the same zxid as the oldest snapshot file being retained (and whether log file and snapshot file zxids are equal is timing dependent), loading the database from snapshots/logs will start with the log file _prior_ to the snapshot's zxid. Thus, to avoid data loss autopurge should retain the log file prior to the oldest retained snapshot as well, unless it verifies that it contains no zxids beyond what the snapshot contains or there is a log file whose zxid == snapshot zxid. was:Autopurge retains all log files whose zxid are >= the zxid of the oldest snapshot file that it is going to retain (in PurgeTxnLog retainNRecentSnapshots()). Given that loading the database from snapshots/logs will start with the log file _prior_ to the snapshot's zxid, autopurge should retain the log file prior to the oldest retained snapshot as well, unless it verifies that it contains no zxids beyond what the snapshot contains. > Autopurge deletes log file prior to oldest retained snapshot even though > restore may need it > -------------------------------------------------------------------------------------------- > > Key: ZOOKEEPER-2420 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2420 > Project: ZooKeeper > Issue Type: Bug > Components: server > Reporter: Ed Rowe > Assignee: Ed Rowe > Attachments: ZOOKEEPER-2420.patch, ZOOKEEPER-2420.patch_v2, > ZOOKEEPER-2420.patch_v3 > > > Autopurge retains all log files whose zxid are >= the zxid of the oldest > snapshot file that it is going to retain (in PurgeTxnLog > retainNRecentSnapshots()). However, unless there is a log file with the same > zxid as the oldest snapshot file being retained (and whether log file and > snapshot file zxids are equal is timing dependent), loading the database from > snapshots/logs will start with the log file _prior_ to the snapshot's zxid. > Thus, to avoid data loss autopurge should retain the log file prior to the > oldest retained snapshot as well, unless it verifies that it contains no > zxids beyond what the snapshot contains or there is a log file whose zxid == > snapshot zxid. -- This message was sent by Atlassian JIRA (v6.3.4#6332)