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 12:33:17 GMT
On 31 Mar 2012, at 3:10 AM, Gregg Smith wrote:

> I found this to be an interesting error message:
> 
> [Fri Mar 30 18:07:41.019600 2012] [session_crypto:error] [pid 4236:tid 700] (100005)Error
string not specified yet: AH01845: (null)
> 
> very informative :)

Can you give more details of the crypto driver you're trying to use?

Using the error code "AH01845", a quick search of the source shows up this:

        rv = apr_crypto_get_driver(&driver, conf->library, conf->params, &err,
p);
        ...
        if (APR_SUCCESS != rv && err) {
            ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, APLOGNO(01845)
                    "%s", err->msg);
            return rv;
        }

It looks like the error code returned by apr_crypto_get_driver() is not recognised as an APR
error, and the error message being printed is the string "(null)".

This comes from here:

            apr_dso_error(dso, buffer, ERROR_SIZE - 1);
            err->msg = buffer;
            err->reason = modname;

What this means is that an attempt to load a DSO is failing, with an unknown APR error code
and an error message of "(null)".

The assumption that the underlying driver will always return a sensible error message seems
to be bogus, this won't help with the message, but will in theory give a hint to the driver
involved:

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)", conf->library,
err->msg, err->reason);
             return rv;
         }
         if (APR_ENOTIMPL == rv) {

Can you confirm?

Regards,
Graham
--


Mime
View raw message