httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Graham Leggett <minf...@sharp.fm>
Subject Re: A push for 2.4.2
Date Sat, 31 Mar 2012 19:44:37 GMT
On 31 Mar 2012, at 7:25 PM, Gregg Smith wrote:

> It was nss and I was pulling away nss dll files to see just what was needed and what
wasn't. Interesting was that the error was different for most but that error came up for some.
The other was
> 
> [Fri Mar 30 18:12:05.018600 2012] [session_crypto:error] [pid 3404:tid 700] (OS 126)The
specified module could not be found.  : AH01845: The specified module could not be found.
> 
> This does give better info
> [Sat Mar 31 10:15:59.017600 2012] [session_crypto:error] [pid 4932:tid 700] (100005)Error
string not specified yet: AH01845: The crypto library 'nss' could not be loaded: (null) (Error
during 'nss' initialisation)
> 
> Maybe however, "Error string not specified by the driver yet" or something to that effect?
It cannot be incorrectly read as "we're not sure what to say here yet," as I embarrassingly
did.

The string "Error string not specified yet" belongs to APR, and is returned if an error code
(in this case 
100005) isn't recognised by apr_error_string().

If it's nss, then the following code is generating the error:

    if (s != SECSuccess) {
        if (result) {
            apu_err_t *err = apr_pcalloc(pool, sizeof(apu_err_t));
            err->rc = PR_GetError();
            err->msg = PR_ErrorToName(s);
            err->reason = "Error during 'nss' initialisation";
            *result = err;
        }
        return APR_ECRYPT;
    }

In turn, it means that PR_ErrorToName(s) is returning the string "(null)".

It may be worth logging the value err->rc as well to see the value of the NSS error. When
I developed this stuff way back when I discovered a number of places where NSS errors were
either missing or were duplicated (ie multiple failures mapped to the same error code). When
the errors were pointed out, the NSS guys were very quick to fix the problems. Are you using
a recent version of NSS?

Index: modules/session/mod_session_crypto.c
===================================================================
--- modules/session/mod_session_crypto.c	(revision 1307617)
+++ modules/session/mod_session_crypto.c	(working copy)
@@ -435,7 +435,7 @@
         }
         if (APR_SUCCESS != rv && err) {
             ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, APLOGNO(01845)
-                    "%s", err->msg);
+                    "The crypto library '%s' could not be loaded: %s (%s: %d)", conf->library,
err->msg, err->reason, err->rc);
             return rv;
         }
         if (APR_ENOTIMPL == rv) {

Regards,
Graham
--


Mime
View raw message