axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marin Bek <marin....@gmail.com>
Subject Re: Axis2 - multiple calls memory violation
Date Mon, 13 Dec 2010 14:25:46 GMT
Hello,

yes, it seems heap gets corrupted when SSL is used. The situation is: My
application uses axis2, which uses SSL. I built them all using /MD now,
since I found in openSSL documentation that heap corruption could occur if
SSL used in multiple threads, and the error doesn't occur when pure HTTP is
used. Suggested method is to use \MD threading. It is now more stable, and
it seems it is now my application failing due to heap corruption. But if I
understand correctly, that shouldn't be an issue since it is also
dynamically linked.

I built openssl using instructions included in source and nasm.
Axis2 is version 1.6 and built using options:
ENABLE_SSL = 1
ENABLE_LIBCURL = 0
ENABLE_LIBXML2=0
WITH_TCP = 0
WITH_ARCHIVE = 0
OPENSSL_BIN_DIR = H:\openssl\dir
CRUNTIME = /MD
EMBED_MANIFEST = 1
DEBUG = 1

Application is built using \MD as I already said.

Am I supposed to do anything else to prevent heap corruption when
multithreading?

Thank you


On Mon, Dec 13, 2010 at 1:05 PM, Rico M <rickomuer@gmail.com> wrote:

> Getting back to the topic....
>
> If i understand correctly, you are creating the environemnt with every call
> and the failure seems to happen on the second call...?
>
> I am doing something similar as above and it does not fail. It may be a
> case of heap corruption some where after the first call is processed.
>
> Cheers!
>
>
>
> On Fri, Dec 10, 2010 at 3:27 PM, Marin Bek <marin.bek@gmail.com> wrote:
>
>> Hello,
>>
>> our app uses axis2 to communicate with our java service via SOAP.
>> Everything works, but there are issues when a new call is made.
>>
>> Way it works:
>> 1. app signs in to server using https, env is opened with
>> axutil_env_create_all and stub with axis2_stub_create_MyApp
>> Return data is successfully received and signout is conducted. stub and
>> env are freed with axis2_stub_free and axutil_env_free. Pointers are not
>> reset to 0, so I don't know if this actually works?
>>
>> 2. The same functions are called with the same data (sign in), env and
>> stub are created once more, and sign is being conducted, but I get a "memory
>> access violation" on :
>>             ret_node =  axis2_svc_client_send_receive_with_op_qname(
>> svc_client, env, op_qname, payload);
>>
>>
>> Methods are auto-generated, so I guess they should be ok.
>>
>> Any ideas why this should happen? We don't have env and stub open all the
>> time because it may be that there is no activity for several hours.
>>
>> Thank you...
>>
>
>

Mime
View raw message