You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "Jess M. Holle" <je...@ptc.com> on 2003/04/14 19:22:31 UTC

mod_auth_ldap on Windows...

I built my own Apache 2.0.45 on Windows including HTTPS support and the 
recently proposed Nagle patch.

Unfortunately, mod_auth_ldap crashes on me -- somewhere within 
util_ldap_connection_open().

Yet I try the same config files on Apache 2.0.45 stock and it works just 
fine.

Any ideas?

I'm about to rebuild with full debug and without the Nagle stuff, but 
any clues would be appreciated...

--
Jess Holle



Re: mod_auth_ldap on Windows...

Posted by "Jess M. Holle" <je...@ptc.com>.
Ooops.  That'll show me to be hasty.

I was originally sending this only to Jeff -- then thought to send it to 
the group, but forgot to form a patch...

--
Jess Holle

Jeff Trawick wrote:

> Jess M. Holle wrote:
>
>> P.S.  Would you be the right person to get a send buffer addition 
>> made to win32/sockopt.c?  See attached file (based on 2.0.45 sources 
>> -- sorry it's in full not diff format...)  Basically APR does not 
>> support normal adjustment of the socket send buffer size on Windows 
>> -- which appears to simply be an oversight.  This can make a 
>> substantive difference in performance in cases.
>
>
> Bill is certainly qualified and in general eager to perform such 
> tasks, but the best way to submit such a change is via the 
> dev@apr.apache.org mailing list in the form of a patch.  That will 
> significantly increase the number of people willing to deal with it.



Re: mod_auth_ldap on Windows...

Posted by Jeff Trawick <tr...@attglobal.net>.
Jess M. Holle wrote:
> P.S.  Would you be the right person to get a send buffer addition made 
> to win32/sockopt.c?  See attached file (based on 2.0.45 sources -- sorry 
> it's in full not diff format...)  Basically APR does not support normal 
> adjustment of the socket send buffer size on Windows -- which appears to 
> simply be an oversight.  This can make a substantive difference in 
> performance in cases.

Bill is certainly qualified and in general eager to perform such tasks, 
but the best way to submit such a change is via the dev@apr.apache.org 
mailing list in the form of a patch.  That will significantly increase 
the number of people willing to deal with it.


Re: mod_auth_ldap on Windows...

Posted by "Jess M. Holle" <je...@ptc.com>.
Well, unfortunately I was in a hurry so I don't know what did the trick, 
but updating to MSVC++ 6.0 SP 5 and the latest core platform SDK (and 
putting it's include and lib directories in front of MSVC++'s) fixed my 
mod_auth_ldap troubles.  The util_ldap.so and mod_auth_ldap.so that I'm 
now building work just fine.  Thus I think it's safe to say that keeping 
abreast of both MSVC++ service packs and MS PSDK updates is recommended 
and at least one of these is required for proper util_ldap/mod_auth_ldap 
functioning.

I rebuilt OpenSSL (0.9.7b) and mod_jk (1.2.2) with the new MSVC++ and MS 
PSDK as well -- which got rid of some of the compiler warnings I'd been 
seeing (as my old compiler did not recognize /Ob2), but this did not 
address bug #'s 16375, 17055, and 17701 -- which all have to do with 
Apache crashing on shutdown on Windows if an HTTPS request was served 
during the last server uptime.  I even threw in a -NDEBUG in the 
ntdll.mak to make doubly sure no debug refs fell through the cracks -- 
though OpenSSL builds non-debug by default and I'd not had any issues 
with 0.9.6h and 2.0.43.

This HTTPS-specific failure is really bugging me as it just gives an 
overall impression of instability -- though the resulting build works 
fine for me as long as LogLevel verbosity is error or less.

--
Jess Holle

P.S.  Would you be the right person to get a send buffer addition made 
to win32/sockopt.c?  See attached file (based on 2.0.45 sources -- sorry 
it's in full not diff format...)  Basically APR does not support normal 
adjustment of the socket send buffer size on Windows -- which appears to 
simply be an oversight.  This can make a substantive difference in 
performance in cases.

2.0.45 and recent OpenSSL's on Windows

Posted by "Jess M. Holle" <je...@ptc.com>.
It would appear we have a shutdown issue in Apache 2.0.45 (and 2.0.44) 
with recent OpenSSL's on Windows when an https connection has been made 
at some point during the current uptime.

There are now 3 bugs on this topic: 16375, 17055, and 17701.  One of 
these was closed as being a symptom of a mixed debug / non-debug build 
-- but that appears to be bogus (I've triple checked all of this).

The only workaround appears to be simply to set the LogLevel to error or 
above so that no attempt is made to produce warnings at this point 
during the shutdown.

Any thoughts on this issue would be appreciated!

--
Jess Holle



Re: mod_auth_ldap on Windows...

Posted by "Jess M. Holle" <je...@ptc.com>.
Just a note:

I replaced my Apache 2.0.45 build's util_ldap.so and mod_auth_ldap.so 
with the binary release's copies of these files -- and the problem went 
away!

I guess I'll use these 2 .so's as (magically?) built by the core team 
and only tinker with the rest of Apache!

--
Jess Holle



Re: mod_auth_ldap on Windows...

Posted by "Jess M. Holle" <je...@ptc.com>.
William A. Rowe, Jr. wrote:

>At 12:54 PM 4/14/2003, Jess M. Holle wrote:
>  
>
>>P.S.  I rebuilt with debug symbols but without any changes to the code, HTTPS support, etc.
>>
>>The resulting binary still pukes in the same spot -- though I must admit my VC++ skills are sufficiently rusty that I'm having trouble nailing down exactly where and why the issue is occuring...
>>    
>>
>Jess... you better be using *all* debug or *all* release modules, there are
>really weird interactions between msvcrt-compiled code and msvcrtd compiles.
>
I am.  I've done enough Win32 stuff to realize that much.

>The LDAP observation is interesting, other users had reported early problems
>with that module.  I doubt nagle is the problem, and wonder what else could
>be going on inside of the Win32 LDAP implementation.
>
Nagle is not the problem as I am getting the same crash without *any* 
patches zlib or OpenSSL additions.

>If you are using Netscape's SDK or openldap, etc, those too must be compiled
>debug if you hope to load them into a debug build of the server.
>
I'm trying to use Microsoft's LDAP on Windows just like 2.0.45 stock.  I 
am getting a crash from within ldap_set_option in util_ldap.c at:

    /* Set the alias dereferencing option */
    ldap_set_option(ldc->ldap, LDAP_OPT_DEREF, &(ldc->deref));  /*
    CRASHES HEREIN */

This seems to correspond to Brad Nicholes original caveat statements on 
his recent LDAP portability improvements.  I'd simply switch over to 
using the Netscape SDK (as I did previously) except that 2.0.45 as 
released by Apache works fine (on the same machine with the same LDAP 
.conf entries, etc).

I'm wondering whether:

   1. Could the released 2.0.45 Windows sources be stale vis-a-vis what
      was actually used to build the 2.0.45 Windows binary?  [Who built
      this binary?  Can they provide any insights?]
   2. Could my wldap32.lib be out-of-date or mangled?  [I'm using a
      stock VC++ 6.0 on W2K SP3.]

>Try a full release build with the nagle patch, if the problem goes away that 
>is likely to be the reason.
>  
>
Given that I'm getting the same issue with no patches I tend to think 
the issue is a bit deeper than this.  I've been sanity checking the 
args, etc, to no avail thus far...

--
Jess Holle


Re: mod_auth_ldap on Windows...

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
At 12:54 PM 4/14/2003, Jess M. Holle wrote:
>P.S.  I rebuilt with debug symbols but without any changes to the code, HTTPS support, etc.
>
>The resulting binary still pukes in the same spot -- though I must admit my VC++ skills are sufficiently rusty that I'm having trouble nailing down exactly where and why the issue is occuring...

Jess... you better be using *all* debug or *all* release modules, there are
really weird interactions between msvcrt-compiled code and msvcrtd compiles.

The LDAP observation is interesting, other users had reported early problems
with that module.  I doubt nagle is the problem, and wonder what else could
be going on inside of the Win32 LDAP implementation.

If you are using Netscape's SDK or openldap, etc, those too must be compiled
debug if you hope to load them into a debug build of the server.

Try a full release build with the nagle patch, if the problem goes away that 
is likely to be the reason.

Bill 


Re: mod_auth_ldap on Windows...

Posted by "Jess M. Holle" <je...@ptc.com>.
P.S.  I rebuilt with debug symbols but without any changes to the code, 
HTTPS support, etc.

The resulting binary still pukes in the same spot -- though I must admit 
my VC++ skills are sufficiently rusty that I'm having trouble nailing 
down exactly where and why the issue is occuring...

--
Jess Holle

Jess M. Holle wrote:

> I built my own Apache 2.0.45 on Windows including HTTPS support and 
> the recently proposed Nagle patch.
>
> Unfortunately, mod_auth_ldap crashes on me -- somewhere within 
> util_ldap_connection_open().
>
> Yet I try the same config files on Apache 2.0.45 stock and it works 
> just fine.
>
> Any ideas?
>
> I'm about to rebuild with full debug and without the Nagle stuff, but 
> any clues would be appreciated...
>
> -- 
> Jess Holle