axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Samisa Abeysinghe <sam...@wso2.com>
Subject Re: Axis2/C 1.7.0 - RC3
Date Tue, 30 Aug 2011 23:07:34 GMT
Good to see that you are recovering from the hurricane.

I think the most help can come on the form of testing. I am happy to apply
this fix and there are other folks who better understand SSL than me on this
community, so they can test too.

It would be great if you have time to send us a patch in, for these fixes.
Else I can take some time and see if I can apply this patch manually.

On Wed, Aug 31, 2011 at 1:05 AM, Steve Leland <steve@pouchapond.com> wrote:

>  Hi Samisa,
>
> For some reason I can't explain, I feel compelled to ask - how can I help?
>
> Comcast is only just now getting my internet back up after the hurricane,
> and I have a day job, too.  But if you can tell me how you want it tested,
> and can give me a couple of days in which to do it, I'm happy to give it a
> go.  We have a webservice running on Exchange, and generate the axis stubs
> from the wsdl which are then run within Domino - so I need to know what
> version of the code generator you want me to use.  I'm currently using Axis2
> 1.5.1, and then doing lots of manual fixups to the generated code.
>
> OpenSSL changes quite a lot when going from the 0.9.8x branch to the 1.x
> branch.  We are using Axis 1.6 and OpenSSL 0.9.8r, but I would expect 1.7 to
> use the newer branch of OpenSSL.  I was hitting some random crashes when we
> shifted to multithreaded processing, and found I had to add some code from
> the OpenSSL thread sample (OpenSSL\crypto\threads\mttest.c) to fix it.  I
> have no idea how the changes will map to the OpenSSL 1.x branch, or how
> Windows specific it might be.
>
> I do know the bug chose to show up only as we cranked up our final testing,
> so there wasn't much time to fix it.  From my code, outside Axis, I init and
> term it as follows:
>
>  {
>   void (*thread_setup_ForSSL) (void);
>   HINSTANCE hhttpSender = GetModuleHandle("axis2_http_sender.dll");
>
>   if (hhttpSender != NULL)
>   {
>    thread_setup_ForSSL = (void(*)(void)) GetProcAddress ( hhttpSender, "
> _thread_setup_ForSSL@0");
>    if (thread_setup_ForSSL != NULL)
>     thread_setup_ForSSL();
>   }
>  }
>  {
>   void (*thread_cleanup_ForSSL) (void);
>   HINSTANCE hSender = GetModuleHandle("axis2_http_sender.dll");
>
>   if (hSender != NULL)
>   {
>    thread_cleanup_ForSSL = (void(*)(void)) GetProcAddress ( hSender, "
> _thread_cleanup_ForSSL@0");
>    if (thread_cleanup_ForSSL != NULL)
>     thread_cleanup_ForSSL();
>   }
>  }
> That clearly should be an internal initialization step - perhaps you know a
> better place for it?
>
> I put the OpenSSL sample code in ssl_utils.c :
>
> #include "ssl_utils.h"
> #include <openssl/err.h>
> BIO *bio_err = 0;
>
> // #ifdef OPENSSL_SYS_WIN32 lifted from OpenSSL\crypto\threads\mttest.c ,
> added threadCounter
>
> static HANDLE *lock_cs = NULL;
>
> // forward declares
> void win32_locking_callback(int mode,int type,const char *file,int line);
>
> // OpenSSL sample thread support code
> // add in global initialization, to stop threads on startup from clobbering
> one another
> AXIS2_EXTERN void AXIS2_CALL
> thread_setup_ForSSL()
>  {
>  int i;
>
>  if (!lock_cs)
>   {
>   lock_cs=OPENSSL_malloc(CRYPTO_num_locks() * sizeof(HANDLE));
>   for (i=0; i<CRYPTO_num_locks(); i++)
>    {
>    lock_cs[i]=CreateMutex(NULL,FALSE,NULL);
>    }
>
>   CRYPTO_set_locking_callback((void (*)(int,int,const char
> *,int))win32_locking_callback);
>   /* id callback defined */
>
>   if (!bio_err)
>    {
>    /* Global system initialization */
>    SSL_library_init();
>    SSL_load_error_strings();
>
>    /* An error write context */
>    bio_err = BIO_new_fp(stderr, BIO_NOCLOSE);
>    }
>   }
>  }
>
> AXIS2_EXTERN void AXIS2_CALL
> thread_cleanup_ForSSL()
>  {
>  int i;
>
>  if (lock_cs)
>   {
>   CRYPTO_set_locking_callback(NULL);
>   for (i=0; i<CRYPTO_num_locks(); i++)
>    CloseHandle(lock_cs[i]);
>   OPENSSL_free(lock_cs);
>   }
>  }
>
> void win32_locking_callback(int mode, int type, const char *file, int line)
>  {
>  if (mode & CRYPTO_LOCK)
>   {
>   WaitForSingleObject(lock_cs[type],INFINITE);
>   }
>  else
>   {
>   ReleaseMutex(lock_cs[type]);
>   }
>  }
>
> /* #endif  OPENSSL_SYS_WIN32 */
> Anyway, let me know what you'd like me to do!
>
> Regards,
> Steve
> ----- Original Message -----
>
> *From:* Samisa Abeysinghe <samisa@wso2.com>
> *To:* Apache AXIS C Developers List <c-dev@axis.apache.org>
> *Sent:* Tuesday, August 30, 2011 12:12 PM
> *Subject:* Axis2/C 1.7.0 - RC3
>
> http://people.apache.org/~samisa/axis2c-1.7.0-RC3/
>
> I have the source and Linux binary pack in there. I need someone to help
> with the Windows pack.
>
> I applied all patches that I could to this pack. So we are almost ready to
> go after a test round.
>
> Thanks,
> Samisa...
>
>
> On Thu, Sep 2, 2010 at 3:17 PM, Samisa Abeysinghe <samisa@wso2.com> wrote:
>
>> I just had a look at these pathces, and it seems to me that there
>> would not be any side effects. So I am +1 to ship these patches.
>>
>> Samisa...
>>
>> On Wednesday, September 1, 2010, Steve Leland <steve@pouchapond.com>
>> wrote:
>> > During the 8 years I was on the Domino web server team I never really
>> appreciated customers telling me what my top priority should be - and now
>> that I'm on the other side, as your customer, I don't want to make the same
>> mistake.  But it looks like you are close to calling for a vote on 1.7, and
>> I think there's something that might have been overlooked - I hope bringing
>> it up via this list is OK.
>> >
>> > BinaryTree ships a product that uses Axis2c 1.6, and staticly links in
>> OpenSSL (since Domino installs with its own versions of the OpenSSL dlls). I
>> spent a considerable amount time getting it to run without leaking any
>> memory.  When the time comes, it will be much easier to convince the boss to
>> upgrade to 1.7 if I don't have to go through that again.  The biggest leak I
>> found had already been reported in JIRA -1237 - and I added 3 very small
>> patches to fix it.
>> >
>> > I know that's not your top priority, but it's one of mine - could I just
>> put in a plea that you consider them for the 1.7 release?
>> >
>> >  [
>> https://issues.apache.org/jira/browse/AXIS2C-1237?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12883168#action_12883168]
>> >
>> > Regards,
>> > Steve Leland
>> > ----- Original Message ----- From: "Selvaratnam Uthaiyashankar" <
>> uthaiyashankar@gmail.com>
>> > To: "Apache AXIS C Developers List" <c-dev@axis.apache.org>; "Apache
>> AXIS C User List" <c-user@axis.apache.org>
>> > Sent: Wednesday, September 01, 2010 2:04 AM
>> > Subject: Axis2/C 1.7.0 - RC2
>> >
>> >
>> >
>> > Hi Devs,
>> >
>> > You can find Axis2/C RC2 in [1]. Please test and give your feedback.
>> > RAT report is in [2]. There are some files[3] (mostly visual studio
>> > project files) excluded from the RAT report. Also, generated API
>> > documents (doxygen documents) and Makefile.in files are not having any
>> > headers. Since they are generated files, we can omit them.
>> >
>> > If they are fine, can start a format voting thread.
>> >
>> > Regards,
>> > Shankar
>> >
>> > [1] http://people.apache.org/~shankar/axis2c/1.7.0-RC2/
>> > [2] http://people.apache.org/~shankar/axis2c/1.7.0-RC2/rat-report.txt
>> > [3] http://people.apache.org/~shankar/axis2c/1.7.0-RC2/rat-avoid.txt
>> >
>> > --
>> > S.Uthaiyashankar
>> > Senior Software Architect
>> > WSO2 Inc.
>> > http://wso2.com/ - "lean . enterprise . middleware"
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: c-user-unsubscribe@axis.apache.org
>> > For additional commands, e-mail: c-user-help@axis.apache.org
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: c-dev-unsubscribe@axis.apache.org
>> > For additional commands, e-mail: c-dev-help@axis.apache.org
>> >
>> >
>>
>
>

Mime
View raw message