On 8/15/25 1:23 PM, ic...@apache.org wrote:
> Author: icing
> Date: Fri Aug 15 11:23:29 2025
> New Revision: 1927807
> 
> Log:
> *) mod_md: update to version 2.6.1
>      - Increasing default `MDRetryDelay` to 30 seconds to generate less bursty
>        traffic on errored renewals for the ACME CA. This leads to error 
> retries
>         of 30s, 1 minute, 2, 4, etc. up to daily attempts.
>      - Checking that configuring `MDRetryDelay` will result in a positive
>        duration. A delay of 0 is not accepted.
>      - Fix a bug in checking Content-Type of responses from the ACME server.
>      - Added ACME ARI support (rfc9773) to the module. Enabled by default. New
>        directive "MDRenewViaARI on|off" for controlling this.
>      - Removing tailscale support. It has not been working for a long time
>        as the company decided to change their APIs. Away with the dead code,
>        documentation and tests.
>      - Fixed a compilation issue with pre-industrial versions of libcurl.
> 
> Added:
>    httpd/httpd/trunk/changes-entries/md_v2.6.1.txt
> Deleted:
>    httpd/httpd/trunk/modules/md/md_tailscale.c
>    httpd/httpd/trunk/modules/md/md_tailscale.h
>    httpd/httpd/trunk/test/modules/md/test_780_tailscale.py
> Modified:
>    httpd/httpd/trunk/docs/manual/mod/mod_md.xml
>    httpd/httpd/trunk/modules/md/config2.m4
>    httpd/httpd/trunk/modules/md/md.h
>    httpd/httpd/trunk/modules/md/md_acme.c
>    httpd/httpd/trunk/modules/md/md_acme.h
>    httpd/httpd/trunk/modules/md/md_acme_authz.c
>    httpd/httpd/trunk/modules/md/md_acme_drive.c
>    httpd/httpd/trunk/modules/md/md_acme_order.c
>    httpd/httpd/trunk/modules/md/md_acme_order.h
>    httpd/httpd/trunk/modules/md/md_acmev2_drive.c
>    httpd/httpd/trunk/modules/md/md_core.c
>    httpd/httpd/trunk/modules/md/md_crypt.c
>    httpd/httpd/trunk/modules/md/md_crypt.h
>    httpd/httpd/trunk/modules/md/md_http.c
>    httpd/httpd/trunk/modules/md/md_json.c
>    httpd/httpd/trunk/modules/md/md_reg.c
>    httpd/httpd/trunk/modules/md/md_reg.h
>    httpd/httpd/trunk/modules/md/md_status.c
>    httpd/httpd/trunk/modules/md/md_time.c
>    httpd/httpd/trunk/modules/md/md_time.h
>    httpd/httpd/trunk/modules/md/md_version.h
>    httpd/httpd/trunk/modules/md/mod_md.c
>    httpd/httpd/trunk/modules/md/mod_md.dsp
>    httpd/httpd/trunk/modules/md/mod_md_config.c
>    httpd/httpd/trunk/modules/md/mod_md_config.h
>    httpd/httpd/trunk/modules/md/mod_md_drive.c
>    httpd/httpd/trunk/modules/md/mod_md_status.c
>    httpd/httpd/trunk/test/modules/md/md_conf.py
>    httpd/httpd/trunk/test/modules/md/test_702_auto.py
>    httpd/httpd/trunk/test/modules/md/test_710_profiles.py
>    httpd/httpd/trunk/test/modules/md/test_730_static.py
>    httpd/httpd/trunk/test/modules/md/test_920_status.py
> 

> 
> Modified: httpd/httpd/trunk/modules/md/md_status.c
> ==============================================================================
> --- httpd/httpd/trunk/modules/md/md_status.c  Fri Aug 15 10:27:32 2025        
> (r1927806)
> +++ httpd/httpd/trunk/modules/md/md_status.c  Fri Aug 15 11:23:29 2025        
> (r1927807)

> @@ -598,11 +612,19 @@ apr_time_t md_job_delay_on_errors(md_job
>          delay = max_delay;
>      }
>      else if (err_count > 0) {
> -        /* back off duration, depending on the errors we encounter in a row 
> */
> -        delay = job->min_delay << (err_count - 1);
> -        if (delay > max_delay) {
> -            delay = max_delay;
> +        /* back off duration, depending on the errors we encounter in a row.
> +         * As apr_time_t is signed, this might wrap around*/
> +        int i;
> +        delay = job->min_delay;
> +        for (i = 0; i < err_count; ++i) {
> +          delay <<= 1;
> +          if ((delay <= 0) || (delay > max_delay)) {
> +              delay = max_delay;
> +              break;
> +          }
>          }
> +        if (delay > max_delay)
> +            delay = max_delay;

I don't think that delay can be > max_delay here.


>      }
>      if (delay > 0) {
>          /* jitter the delay by +/- 0-50%.
> 

Regards

RĂ¼diger

Reply via email to