You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Thawan Kooburat (JIRA)" <ji...@apache.org> on 2013/09/13 02:02:51 UTC
[jira] [Updated] (ZOOKEEPER-1757) Adler32 may not be sufficient to
protect aginst data corruption
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thawan Kooburat updated ZOOKEEPER-1757:
---------------------------------------
Attachment: TEST-org.apache.zookeeper.server.persistence.FileSnapTest.txt
ZOOKEEPER.1757.patch
Attached a test case that show the example of corrupted snapshot passed Adler32 check.
I hard coded a seek value trigger this condition. On other environment, the value may have to change by using the random seek.
In my case, I only need to do a few run to trigger a case that can bypass checksum.
Also attached a sample log file from this unit test run.
> Adler32 may not be sufficient to protect aginst data corruption
> ---------------------------------------------------------------
>
> Key: ZOOKEEPER-1757
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1757
> Project: ZooKeeper
> Issue Type: Bug
> Components: server
> Environment: Linux. Oracle JDK6/7
> Reporter: Thawan Kooburat
> Attachments: TEST-org.apache.zookeeper.server.persistence.FileSnapTest.txt, ZOOKEEPER.1757.patch
>
>
> I was investigating data inconsistency bug in our internal branch. One possible area is snapshot/txnlog corruption. So I wrote a more robust corruption test and found that it is easy to break our checksum algorithm which is Adler32.
> When this happen, it is more likely that corrupted data will fail other sanity check during deserialization phase, but it is still scary that it can pass the checksum.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira