[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-1513?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13478046#comment-13478046
 ] 

Hadoop QA commented on ZOOKEEPER-1513:
--------------------------------------

-1 overall.  Here are the results of testing the latest attachment 
  
http://issues.apache.org/jira/secure/attachment/12549534/ZOOKEEPER-1513_2012.10.17.patch
  against trunk revision 1391526.

    +1 @author.  The patch does not contain any @author tags.

    +1 tests included.  The patch appears to include 21 new or modified tests.

    +1 javadoc.  The javadoc tool did not generate any warning messages.

    +1 javac.  The applied patch does not increase the total number of javac 
compiler warnings.

    +1 findbugs.  The patch does not introduce any new Findbugs (version 1.3.9) 
warnings.

    +1 release audit.  The applied patch does not increase the total number of 
release audit warnings.

    -1 core tests.  The patch failed core unit tests.

    +1 contrib tests.  The patch passed contrib unit tests.

Test results: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1235//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1235//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
Console output: 
https://builds.apache.org/job/PreCommit-ZOOKEEPER-Build/1235//console

This message is automatically generated.
                
> "Unreasonable length" exception while starting a server.
> --------------------------------------------------------
>
>                 Key: ZOOKEEPER-1513
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1513
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: server
>    Affects Versions: 3.3.4
>            Reporter: Patrick Hunt
>            Assignee: Skye Wanderman-Milne
>             Fix For: 3.4.6
>
>         Attachments: ZOOKEEPER-1513_2012.10.17.patch, ZOOKEEPER-1513.patch
>
>
> The server is allowing a client to set data larger than the server can then 
> later read:
> {noformat}
> 2012-07-18 14:28:12,555 - FATAL [main:QuorumPeer@400] - Unable to load 
> database on disk 
> java.io.IOException: Unreasonable length = 1048583 
> at org.apache.jute.BinaryInputArchive.readBuffer(BinaryInputArchive.java:100) 
> at org.apache.zookeeper.server.persistence.Util.readTxnBytes(Util.java:232) 
> at 
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.next(FileTxnLog.java:602)
>  
> at 
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.init(FileTxnLog.java:529)
>  
> at 
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.<init>(FileTxnLog.java:504)
>  
> at 
> org.apache.zookeeper.server.persistence.FileTxnLog.read(FileTxnLog.java:341) 
> at 
> org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:131)
>  
> at org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:222) 
> at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:398) 
> at 
> org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:143)
>  
> at 
> org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:103)
>  
> at 
> org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:76)
>  
> 2012-07-18 14:28:12,555 - FATAL [main:QuorumPeerMain@87] - Unexpected 
> exception, exiting abnormally 
> java.lang.RuntimeException: Unable to run quorum server 
> at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:401) 
> at 
> org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:143)
>  
> at 
> org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:103)
>  
> at 
> org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:76)
>  
> Caused by: java.io.IOException: Unreasonable length = 1048583 
> at org.apache.jute.BinaryInputArchive.readBuffer(BinaryInputArchive.java:100) 
> at org.apache.zookeeper.server.persistence.Util.readTxnBytes(Util.java:232) 
> at 
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.next(FileTxnLog.java:602)
>  
> at 
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.init(FileTxnLog.java:529)
>  
> at 
> org.apache.zookeeper.server.persistence.FileTxnLog$FileTxnIterator.<init>(FileTxnLog.java:504)
>  
> at 
> org.apache.zookeeper.server.persistence.FileTxnLog.read(FileTxnLog.java:341) 
> at 
> org.apache.zookeeper.server.persistence.FileTxnSnapLog.restore(FileTxnSnapLog.java:131)
>  
> at org.apache.zookeeper.server.ZKDatabase.loadDataBase(ZKDatabase.java:222) 
> at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:398) 
> ... 3 more
> {noformat}
> Notice the size is 0x100007 - 7 bytes beyond.
> The SetDataTxn contains the client data + a couple extra fields. On ingest 
> the server is applying the jute.maxbuffer size to the data (expected) but not 
> handling the fact that the data plus these extra fields may exceed the 
> jute.maxbuffer check when reading from disk.
> Workaround was simple here: set the jute.maxbuffer size a bit higher (and fix 
> the mis-behaving client, expectation was not that the data would grow this 
> large).

--
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

Reply via email to