You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ph...@apache.org on 2008/10/21 20:45:21 UTC

svn commit: r706718 - in /hadoop/zookeeper/trunk: CHANGES.txt src/java/main/org/apache/zookeeper/server/persistence/FileSnap.java src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java

Author: phunt
Date: Tue Oct 21 11:45:20 2008
New Revision: 706718

URL: http://svn.apache.org/viewvc?rev=706718&view=rev
Log:
ZOOKEEPER-201. validate magic number when reading snapshot and transaction

Modified:
    hadoop/zookeeper/trunk/CHANGES.txt
    hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileSnap.java
    hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java

Modified: hadoop/zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=706718&r1=706717&r2=706718&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/CHANGES.txt (original)
+++ hadoop/zookeeper/trunk/CHANGES.txt Tue Oct 21 11:45:20 2008
@@ -35,6 +35,9 @@
 
   BUGFIXES: 
 
+  ZOOKEEPER-201. validate magic number when reading snapshot and transaction
+  logs (mahadev via phunt)
+
   ZOOKEEPER-200. the magic number for snapshot and log must be different
   (currently same) (phunt)
 

Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileSnap.java
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileSnap.java?rev=706718&r1=706717&r2=706718&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileSnap.java (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileSnap.java Tue Oct 21 11:45:20 2008
@@ -94,6 +94,11 @@
             InputArchive ia) throws IOException {
         FileHeader header = new FileHeader();
         header.deserialize(ia, "fileheader");
+        if (header.getMagic() != SNAP_MAGIC) {
+            throw new IOException("mismatching magic headers "
+                    + header.getMagic() + 
+                    " !=  " + FileSnap.SNAP_MAGIC);
+        }
         SerializeUtils.deserializeSnapshot(dt,ia,sessions);
     }
 

Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java?rev=706718&r1=706717&r2=706718&view=diff
==============================================================================
--- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java (original)
+++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/persistence/FileTxnLog.java Tue Oct 21 11:45:20 2008
@@ -384,6 +384,10 @@
             throws IOException{
             FileHeader header= new FileHeader();
             header.deserialize(ia, "fileheader");
+            if (header.getMagic() != FileTxnLog.TXNLOG_MAGIC) {
+                throw new IOException("Invalid magic number " + header.getMagic() 
+                        + " != " + FileTxnLog.TXNLOG_MAGIC);
+            }  
         }
         
         /**
@@ -395,10 +399,10 @@
         protected InputArchive createInputArchive(File logFile) throws IOException {
             if(inputStream==null){
                 inputStream= new FileInputStream(logFile);
-                LOG.info("Created new input stream " + logFile);
+                LOG.debug("Created new input stream " + logFile);
                 ia  = BinaryInputArchive.getArchive(new BufferedInputStream(inputStream));
                 inStreamCreated(ia,inputStream);
-                LOG.info("created new input archive " + logFile);
+                LOG.debug("created new input archive " + logFile);
             }
             return ia;
         }