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

ASF GitHub Bot commented on TAJO-1250:
--------------------------------------

Github user hyunsik commented on a diff in the pull request:

    https://github.com/apache/tajo/pull/303#discussion_r22088891
  
    --- Diff: 
tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/text/DelimitedTextFile.java
 ---
    @@ -165,8 +167,9 @@ public void init() throws IOException {
           serializer = getLineSerde().createSerializer(schema, meta);
           serializer.init();
     
    +      bufferSize = conf.getInt(WRITE_BUFFER_SIZE, 128 * StorageUnit.KB);
    --- End diff --
    
    How about using some constants for default buffer size? I know that in most 
cases default values is in storage-default.xml. Nevertheless, constants would 
be better.


> RawFileAppender occasionally causes BufferOverflowException
> -----------------------------------------------------------
>
>                 Key: TAJO-1250
>                 URL: https://issues.apache.org/jira/browse/TAJO-1250
>             Project: Tajo
>          Issue Type: Bug
>          Components: data shuffle, storage
>    Affects Versions: 0.8.0, 0.9.0
>            Reporter: Jinho Kim
>            Assignee: Jinho Kim
>             Fix For: 0.10
>
>
> The main problem is the maximum bytes size of variant int64.
> if a value is long.max, varint64 length is 10 bytes .
> * Variant int32 : 1~5 bytes
> * Variant int64 : 1~10 bytes
> {noformat}
> 2014-12-15 13:25:47,908 ERROR 
> org.apache.tajo.engine.planner.physical.HashShuffleFileWriteExec:
> java.nio.BufferOverflowException
>         at java.nio.Buffer.nextPutIndex(Buffer.java:513)
>         at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:291)
>         at 
> org.apache.tajo.storage.RawFile$RawFileAppender.writeRawVarint64(RawFile.java:604)
>         at 
> org.apache.tajo.storage.RawFile$RawFileAppender.addTuple(RawFile.java:659)
>         at 
> org.apache.tajo.storage.HashShuffleAppender.addTuples(HashShuffleAppender.java:92)
>         at 
> org.apache.tajo.engine.planner.physical.HashShuffleFileWriteExec.next(HashShuffleFileWriteExec.java:137)
>         at org.apache.tajo.worker.Task.run(Task.java:407)
>         at org.apache.tajo.worker.TaskRunner$1.run(TaskRunner.java:276)
>         at java.lang.Thread.run(Thread.java:745)
> 2014-12-15 13:25:47,910 ERROR org.apache.tajo.worker.Task: 
> java.nio.BufferOverflowException
> java.io.IOException: java.nio.BufferOverflowException
>         at 
> org.apache.tajo.engine.planner.physical.HashShuffleFileWriteExec.next(HashShuffleFileWriteExec.java:152)
>         at org.apache.tajo.worker.Task.run(Task.java:407)
>         at org.apache.tajo.worker.TaskRunner$1.run(TaskRunner.java:276)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: java.nio.BufferOverflowException
>         at java.nio.Buffer.nextPutIndex(Buffer.java:513)
>         at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:291)
>         at 
> org.apache.tajo.storage.RawFile$RawFileAppender.writeRawVarint64(RawFile.java:604)
>         at 
> org.apache.tajo.storage.RawFile$RawFileAppender.addTuple(RawFile.java:659)
>         at 
> org.apache.tajo.storage.HashShuffleAppender.addTuples(HashShuffleAppender.java:92)
>         at 
> org.apache.tajo.engine.planner.physical.HashShuffleFileWriteExec.next(HashShuffleFileWriteExec.java:137)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to