The ticket does not contain a fix version or patch with asf inclusion so
when looking for available tickets for a resease this would have been
missed unless someone was active on the ticket or searching for this
specific problem.

-Jake


http://thrift.apache.org/docs/HowToContribute/







On Thursday, March 29, 2012, Jerry Gally (Commented) (JIRA) wrote:

>
>    [
> https://issues.apache.org/jira/browse/THRIFT-1389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13241828#comment-13241828]
>
> Jerry Gally commented on THRIFT-1389:
> -------------------------------------
>
> When I ran accross this issue last year, and went searching for kindred
> spirits, I was left with the distinct impression that the C Thrift
> community was, as far as I could tell, virtually non-existent beyond the
> original _c_glib_generator.cc developer/contributer.
>
> Recieving your follow-up question on this issue is kind of like detecting
> a radio signal in the Search for Extra-Terrestrial Intellgence (SETI)
> program ;-)
>
> I, on the other hand, am no longer delving into the C Thrift context, but
> I do hope you find kindred spirits 8-)
>
> > c_glib_generator.cc generates leaking code for
> cassandra_client_get_slice() and cassandra_client_get()
> >
> ------------------------------------------------------------------------------------------------------
> >
> >                 Key: THRIFT-1389
> >                 URL: https://issues.apache.org/jira/browse/THRIFT-1389
> >             Project: Thrift
> >          Issue Type: Bug
> >          Components: C glib - Compiler, C glib - Library
> >    Affects Versions: 0.6.1
> >         Environment: Used with Cassandra 0.8.4 on Linux 2.6.32 with
> x86_64
> >            Reporter: Jerry Gally
> >
> > The generated cassandra.c cassandra_client_recv_get_slice() code for
> list processing instantiates an object of TYPE_COLUMN_OR_SUPER_COLUMN  then
> calls thrift_struct_read() as in the following code snippet,:
> > <... snip>
> >       switch (fid)
> >       {
> >         case 0:
> >           if (ftype == T_LIST)
> >           {
> >             {
> >               guint32 size;
> >               ThriftType element_type;
> >               if ((ret = thrift_protocol_read_list_begin (protocol,
> &element_type, &size, error)) < 0)
> >                 return 0;
> >               xfer += ret;
> >               /* iterate through list elements */
> >               guint32 i;
> >               for (i = 0; i < size; i++)
> >               {
> >                 ColumnOrSuperColumn * _elem19;
> >                 _elem19 = g_object_new (TYPE_COLUMN_OR_SUPER_COLUMN,
> NULL);
> >                 //printf("\nrecv_slice made %p\n", _elem19->column);
> >                 if ((ret = thrift_struct_read (THRIFT_STRUCT (_elem19),
> protocol, error)) < 0)
> > <\snip ...>
> > When the object of TYPE_COLUMN_OR_SUPER_COLUMN is instantiated, it
> in-turn instantiates a child of TYPE_COLUMN:
> > <... snip>
> > void
> > column_or_super_column_instance_init (ColumnOrSuperColumn * object)
> > {
> >   /* satisfy -Wall */
> >   THRIFT_UNUSED_VAR (object);
> >   object->column = g_object_new (TYPE_COLUMN, NULL);
> >   object->__isset_column = FALSE;
> > </snip ...>
> > But this instance reference is lost and replaced by a new TYPE_COLUMN
> instantiation reference when the column member is read by
> column_or_super_column_read() within the same execution context of the top
> level cassandra_client_recv_get_slice() call:
> > <... snip>
> >     switch (fid)
> >     {
> >       case 1:
> >         if (ftype == T_STRUCT)
> >         {
> >           this_object->column = g_object_new (TYPE_COLUMN, NULL);
> >           if ((ret = thrift_struct_read (THRIFT_STRUCT
> (this_object->column), protocol, error)) < 0)
> > </snip ...>
> > The above snippits/logic/leak described above for
> cassandra_client_get_slice() also apply for cassandra_client_get().
>
> --
> 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