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

        

Reply via email to