avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Douglas Creager (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AVRO-1034) Avro C Resolved reader does not initialize children of arrays, resulting in segmentation faults
Date Wed, 29 Feb 2012 01:22:09 GMT

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

Douglas Creager updated AVRO-1034:

    Attachment: 0001-AVRO-1034.-C-Resolved-reader-initializes-child-array.patch

Here's a different patch.  It only initializes any given element of the array when that element
is created.  That happens the first time that element, or any element that appears after it,
is accessed.  This fixes the segfault in Vivek's test case.

If I don't hear objections, I'll commit this patch to SVN tomorrow so that it makes it in
for 1.6.3.
> Avro C Resolved reader does not initialize children of arrays, resulting in segmentation
> -----------------------------------------------------------------------------------------------
>                 Key: AVRO-1034
>                 URL: https://issues.apache.org/jira/browse/AVRO-1034
>             Project: Avro
>          Issue Type: Bug
>          Components: c
>    Affects Versions: 1.6.2
>         Environment: GNU/Linux Ubuntu 11.10 64-bit
>            Reporter: Vivek Nadkarni
>             Fix For: 1.6.3
>         Attachments: 0001-AVRO-1034.-C-Resolved-reader-initializes-child-array.patch,
AVRO-1034.patch, avro-1034-test.c
>   Original Estimate: 168h
>  Remaining Estimate: 168h
> As I did in AVRO-984, I created a test program that creates an avro 
> value corresponding to the following schema: 
>   {"type":"array", "items": {"type": "array", "items": "long"}}
> The avro_value is then resolved using a resolved_reader, and an 
> attempt is made to read from the resolved_reader. This results in a
> segmentation fault on Linux.
> I believe this issue is similar to the issue in AVRO-984, in which
> nested arrays did not work because avro_resolved_array_writer_init()
> did not recursively call the init function on its children. In that
> case the initialization had to be deferred until a new item was
> appended to the array.
> I believe that avro_resolved_array_reader_init() should also
> recursively call the init function on its children, in a deferred
> manner as in AVRO-984, but I don't know how to implement this yet.
> I will attach a test program that shows the crash. 
> Thanks,
> Vivek

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message