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:
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}
Attachments
Attachments
Issue Links
- is duplicated by
-
AVRO-1405 Avro-c may not handle eof correctly if avro data file contains multiple sync markers
- Closed