[
https://issues.apache.org/jira/browse/AVRO-1165?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vivek Nadkarni updated AVRO-1165:
---------------------------------
Status: Patch Available (was: Open)
The patch for AVRO-1165 is now available for review and for merging with the
trunk.
> Avro-C: Memory leak in value iface containing AVRO_LINK.
> --------------------------------------------------------
>
> Key: AVRO-1165
> URL: https://issues.apache.org/jira/browse/AVRO-1165
> Project: Avro
> Issue Type: Bug
> Components: c
> Affects Versions: 1.7.1
> Environment: Ubuntu Linux 11.10
> Reporter: Vivek Nadkarni
> Fix For: 1.7.2
>
> Attachments: AVRO-1165-FIX.patch, AVRO-1165-TEST.patch
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> A memory leak can be seen when the following matched pair of commands is
> called, using a schema containing an AVRO_LINK. This pair of commands
> constructs a class (value iface) from a schema and then destroys the
> constructed class.
> record_class = avro_generic_class_from_schema( schema );
> avro_value_iface_decref( record_class );
> If schema contains an AVRO_LINK, then avro_generic_class_from_schema() calls
> avro_generic_link_class(), which calls avro_schema_incref() on the AVRO_LINK
> target schema and assigns the target schema pointer to the iface->schema.
> When we subsequently call avro_value_iface_decref() to deallocate the class,
> this function calls avro_generic_link_decref_iface(), which frees the memory
> for the link interface without calling avro_schema_decref() on the target
> schema pointed to by iface->schema.
> Thus the memory of the target schema is leaked when we create and destroy a
> value interface for an AVRO_LINK.
> Calling avro_schema_decref() on the the target schema (iface->schema) before
> calling avro_freet() on the iface fixes this memory leak.
> Note: The pair of commands shown above results in a memory leak, when we
> create and destroy a value interface from *any* schema containing an
> AVRO_LINK, regardless of whether it is recursive or not. There is a separate
> issue regarding memory leaks with recursive schemas described in AVRO-766.
> The fix for this issue can only be tested with non-recursive schemas
> containing AVRO_LINKs until AVRO-766 is fixed.
--
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