avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ben Walsh (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AVRO-1364) Avro-C reader ignores final block in file
Date Wed, 21 Aug 2013 13:31:51 GMT

     [ https://issues.apache.org/jira/browse/AVRO-1364?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Ben Walsh updated AVRO-1364:
----------------------------

    Description: 
The Avro-C reader can ignore the final block(s) in a file. It buffers the final block(s) to
memory then detects EOF and returns. It doesn't finish reading from the buffer before returning
EOF.

This bug was introduced in AVRO-1238 (https://issues.apache.org/jira/browse/AVRO-1238).

To reproduce:

{code}
cd avro/lang/c/tests

# copy file with 1 block
cp avro-1238-good.avro two-blocks.avro

# copy block to make file with 2 blocks
xxd -c1 -p avro-1238-good.avro | tail -22 | xxd -r -p >>two-blocks.avro

# should return 2*2 = 4 records:
../build/src/avrocat two-blocks.avro 
null
{"int": 100}

{code}


  was:
The Avro-C reader can ignore the final block(s) in a file. It buffers the final block(s) to
memory then detects EOF and returns. It doesn't finish reading from the buffer before returning
EOF.

This bug was introduced in AVRO-1238 (https://issues.apache.org/jira/browse/AVRO-1238).

To reproduce:

$ cd avro/lang/c/tests

# copy file with 1 block
$ cp avro-1238-good.avro two-blocks.avro

# copy block to make file with 2 blocks
$ xxd -c1 -p avro-1238-good.avro | tail -22 | xxd -r -p >>two-blocks.avro

# should return 2*2 = 4 records:
$ ../build/src/avrocat two-blocks.avro 
null
{"int": 100}


    
> Avro-C reader ignores final block in file
> -----------------------------------------
>
>                 Key: AVRO-1364
>                 URL: https://issues.apache.org/jira/browse/AVRO-1364
>             Project: Avro
>          Issue Type: Bug
>          Components: c
>    Affects Versions: 1.7.5
>            Reporter: Ben Walsh
>
> The Avro-C reader can ignore the final block(s) in a file. It buffers the final block(s)
to memory then detects EOF and returns. It doesn't finish reading from the buffer before returning
EOF.
> This bug was introduced in AVRO-1238 (https://issues.apache.org/jira/browse/AVRO-1238).
> To reproduce:
> {code}
> cd avro/lang/c/tests
> # copy file with 1 block
> cp avro-1238-good.avro two-blocks.avro
> # copy block to make file with 2 blocks
> xxd -c1 -p avro-1238-good.avro | tail -22 | xxd -r -p >>two-blocks.avro
> # should return 2*2 = 4 records:
> ../build/src/avrocat two-blocks.avro 
> null
> {"int": 100}
> {code}

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

Mime
View raw message