You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by Vivian Wang <vi...@yahoo.com> on 2009/06/19 02:29:36 UTC

Help -- Need to figure out what has changed in source code

Hi All, 

I am using axis2/c 1.5+ (checked out from trunk roughly one and half month before 1.6 release) for ws client. I have built my application first using 1.3. I notice that one piece of my code for freeing resources goes working fine in 1.3, crashes in 1.5+ and now working again in 1.6. I need to figure out what caused the crash in 1.5+ and what change make it work again in 1.6, as I am not ready yet to upgrade fully to 1.6. Please help me if you can. Thanks in advance!

Here is the code:

//freeing resources
//axiom_output_t* om_output
 if (om_output)
 {
        axiom_output_free(om_output, env);
        om_output = NULL;
 }
// axis2_svc_client_t* wsf_service_client
 if (wsf_service_client)
 {
      axis2_svc_client_free(wsf_service_client, env);
      wsf_service_client = NULL;
 }
//axiom_stax_builder_t* om_builder
 if(om_builder)
 {
       axiom_stax_builder_free(om_builder, env);
       om_builder = NULL;
 }

//axutil_env_t* env
 if (env)
 {
      axutil_env_free((axutil_env_t *) env);
      env = NULL;
 }

I am using axiom_output_t* to serialize ws reply node  (together with xml_write), and using axiom_stax_builder_t*  to create the request payload. 

Thanks again!
Vivian


      

Re: Help -- Need to figure out what has changed in source code

Posted by Uthaiyashankar <sh...@wso2.com>.
Hi Vivian,

I think, this[1] is the fix, but could not confirm. You can try it and see.
By the way, it is better to move to Axis2/C 1.6.0 because it has lots of bug
fixes.

Regards,
Shankar

[1]
http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/hash.c?r1=762752&r2=762751&pathrev=762752

On Fri, Jun 19, 2009 at 1:26 PM, Vivian Wang <vi...@yahoo.com> wrote:

> Hi Shankar,
>
> The access violation happens in the following line when it tries to free
> om_builder (See code snappet in my previous message).
>
>                 AXIS2_FREE(env->allocator, (ht->array));
> Looking from the debugger, env->allocator points to an invalid address
> (0xfeeefeee), suggesting it has been released already.
>
> Here is the stack trace in debugger:
> ======
> axutil.dll!axutil_hash_free(axutil_hash_t * ht=0x089df150, const axutil_env
> * env=0x089deaf0)  Line 623 + 0x12
>  axiom.dll!axiom_element_free(axiom_element * om_element=0x089def50, const
> axutil_env * env=0x089deaf0)  Line 723
>  axiom.dll!axiom_node_free_detached_subtree(axiom_node *
> om_node=0x089deee8, const axutil_env * env=0x089deaf0)  Line 165
>   axiom.dll!axiom_node_free_tree(axiom_node * om_node=0x089deee8, const
> axutil_env * env=0x089deaf0)  Line 224 + 0xd
> axiom.dll!axiom_document_free(axiom_document * document=0x089ded48, const
> axutil_env * env=0x089deaf0)  Line 89
>   axiom.dll!axiom_stax_builder_free(axiom_stax_builder *
> om_builder=0x089debf8, const axutil_env * env=0x089deaf0)  Line 898
> ======
> Again, I am working on axis2/c 1.5+ code, I verified that the code works in
> 1.6 or even 1.3.
>
> Thanks for your help!
> Vivian
>
>  ------------------------------
> *From:* Uthaiyashankar <sh...@wso2.com>
> *To:* Apache AXIS C User List <ax...@ws.apache.org>
> *Sent:* Thursday, June 18, 2009 7:38:33 PM
> *Subject:* Re: Help -- Need to figure out what has changed in source code
>
> Hi Vivian,
>
> Can you run your client with valgrind and send the logs when it crashes? We
> need the stack trace when it is crashing.
>
> Regards,
> Shankar
>
> On Fri, Jun 19, 2009 at 5:59 AM, Vivian Wang <vi...@yahoo.com>wrote:
>
>>
>> Hi All,
>>
>> I am using axis2/c 1.5+ (checked out from trunk roughly one and half month
>> before 1.6 release) for ws client. I have built my application first using
>> 1.3. I notice that one piece of my code for freeing resources goes working
>> fine in 1.3, crashes in 1.5+ and now working again in 1.6. I need to figure
>> out what caused the crash in 1.5+ and what change make it work again in 1.6,
>> as I am not ready yet to upgrade fully to 1.6. Please help me if you can.
>> Thanks in advance!
>>
>> Here is the code:
>>
>> //freeing resources
>> //axiom_output_t* om_output
>>  if (om_output)
>>  {
>>         axiom_output_free(om_output, env);
>>         om_output = NULL;
>>  }
>> // axis2_svc_client_t* wsf_service_client
>>  if (wsf_service_client)
>>  {
>>       axis2_svc_client_free(wsf_service_client, env);
>>       wsf_service_client = NULL;
>>  }
>> //axiom_stax_builder_t* om_builder
>>  if(om_builder)
>>  {
>>        axiom_stax_builder_free(om_builder, env);
>>        om_builder = NULL;
>>  }
>>
>> //axutil_env_t* env
>>  if (env)
>>  {
>>       axutil_env_free((axutil_env_t *) env);
>>       env = NULL;
>>  }
>>
>> I am using axiom_output_t* to serialize ws reply node  (together with
>> xml_write), and using axiom_stax_builder_t*  to create the request payload.
>>
>> Thanks again!
>> Vivian
>>
>>
>>
>>
>
>
> --
> S.Uthaiyashankar
> Software Architect
> WSO2 Inc.
> http://wso2.com/ - "The Open Source SOA Company"
>
>
>
>


-- 
S.Uthaiyashankar
Software Architect
WSO2 Inc.
http://wso2.com/ - "The Open Source SOA Company"

Re: Help -- Need to figure out what has changed in source code

Posted by Vivian Wang <vi...@yahoo.com>.
Hi Shankar,

The access violation happens in the following line when it tries to free om_builder (See code snappet in my previous message).
                AXIS2_FREE(env->allocator, (ht->array));
Looking from the debugger, env->allocator points to an invalid address (0xfeeefeee), suggesting it has been released already.
  
Here is the stack trace in debugger:
======
axutil.dll!axutil_hash_free(axutil_hash_t * ht=0x089df150, const axutil_env * env=0x089deaf0)  Line 623 + 0x12
 axiom.dll!axiom_element_free(axiom_element * om_element=0x089def50, const axutil_env * env=0x089deaf0)  Line 723
 axiom.dll!axiom_node_free_detached_subtree(axiom_node * om_node=0x089deee8, const axutil_env * env=0x089deaf0)  Line 165
  axiom.dll!axiom_node_free_tree(axiom_node * om_node=0x089deee8, const axutil_env * env=0x089deaf0)  Line 224 + 0xd
axiom.dll!axiom_document_free(axiom_document * document=0x089ded48, const axutil_env * env=0x089deaf0)  Line 89
  axiom.dll!axiom_stax_builder_free(axiom_stax_builder * om_builder=0x089debf8, const axutil_env * env=0x089deaf0)  Line 898 
======
Again, I am working on axis2/c 1.5+ code, I verified that the code works in 1.6 or even 1.3.

Thanks for your help!
Vivian



________________________________
From: Uthaiyashankar <sh...@wso2.com>
To: Apache AXIS C User List <ax...@ws.apache.org>
Sent: Thursday, June 18, 2009 7:38:33 PM
Subject: Re: Help -- Need to figure out what has changed in source code

Hi Vivian, 

Can you run your client with valgrind and send the logs when it crashes? We need the stack trace when it is crashing.

Regards, 
Shankar


On Fri, Jun 19, 2009 at 5:59 AM, Vivian Wang <vi...@yahoo.com> wrote:


Hi All,

I am using axis2/c 1.5+ (checked out from trunk roughly one and half month before 1.6 release) for ws client. I have built my application first using 1.3. I notice that one piece of my code for freeing resources goes working fine in 1.3, crashes in 1.5+ and now working again in 1.6. I need to figure out what caused the crash in 1.5+ and what change make it work again in 1.6, as I am not ready yet to upgrade fully to 1.6. Please help me if you can. Thanks in advance!

Here is the code:

//freeing resources
//axiom_output_t* om_output
 if (om_output)
 {
        axiom_output_free(om_output, env);
        om_output = NULL;
 }
// axis2_svc_client_t* wsf_service_client
 if (wsf_service_client)
 {
      axis2_svc_client_free(wsf_service_client, env);
      wsf_service_client = NULL;
 }
//axiom_stax_builder_t* om_builder
 if(om_builder)
 {
       axiom_stax_builder_free(om_builder, env);
       om_builder = NULL;
 }

//axutil_env_t* env
 if (env)
 {
      axutil_env_free((axutil_env_t *) env);
      env = NULL;
 }

I am using axiom_output_t* to serialize ws reply node  (together with xml_write), and using axiom_stax_builder_t*  to create the request payload.

Thanks again!
Vivian






-- 
S.Uthaiyashankar
Software Architect
WSO2 Inc. 
http://wso2.com/ - "The Open Source SOA Company" 


      

Re: Help -- Need to figure out what has changed in source code

Posted by Uthaiyashankar <sh...@wso2.com>.
Hi Vivian,

Can you run your client with valgrind and send the logs when it crashes? We
need the stack trace when it is crashing.

Regards,
Shankar

On Fri, Jun 19, 2009 at 5:59 AM, Vivian Wang <vi...@yahoo.com> wrote:

>
> Hi All,
>
> I am using axis2/c 1.5+ (checked out from trunk roughly one and half month
> before 1.6 release) for ws client. I have built my application first using
> 1.3. I notice that one piece of my code for freeing resources goes working
> fine in 1.3, crashes in 1.5+ and now working again in 1.6. I need to figure
> out what caused the crash in 1.5+ and what change make it work again in 1.6,
> as I am not ready yet to upgrade fully to 1.6. Please help me if you can.
> Thanks in advance!
>
> Here is the code:
>
> //freeing resources
> //axiom_output_t* om_output
>  if (om_output)
>  {
>         axiom_output_free(om_output, env);
>         om_output = NULL;
>  }
> // axis2_svc_client_t* wsf_service_client
>  if (wsf_service_client)
>  {
>       axis2_svc_client_free(wsf_service_client, env);
>       wsf_service_client = NULL;
>  }
> //axiom_stax_builder_t* om_builder
>  if(om_builder)
>  {
>        axiom_stax_builder_free(om_builder, env);
>        om_builder = NULL;
>  }
>
> //axutil_env_t* env
>  if (env)
>  {
>       axutil_env_free((axutil_env_t *) env);
>       env = NULL;
>  }
>
> I am using axiom_output_t* to serialize ws reply node  (together with
> xml_write), and using axiom_stax_builder_t*  to create the request payload.
>
> Thanks again!
> Vivian
>
>
>
>


-- 
S.Uthaiyashankar
Software Architect
WSO2 Inc.
http://wso2.com/ - "The Open Source SOA Company"