Fred'ô / Module Apache mod_ratelimit : rate limit:error : rl: conn aborted

Created Mon, 23 Jan 2017 00:00:00 +0000 Modified Mon, 23 Jan 2017 00:00:00 +0000
211 Words

Ce module fournit un filtre RATE_LIMIT pour limiter la bande passante des clients, il semblerait qu’il soit utilisé chez PHPNET.ORG.

J’ai du mal à comprendre l’erreur, voici un exemple :

[mutu0312] [Tue Jan 03 18:34:12.710507 2017] [ratelimit:error] [pid 26451] [client 131.253.26.254:53732] AH01454: rl: conn aborted, referer: https://www.cyber-neurones.org/2015/10/spartan-race-le-castellet-la-trifecta-dans-le-weekend/

L’historique des erreurs sur mes sites :

grep "limit:error" error.log.201701* | grep "conn aborted" | awk '{print $4 " " $3}' | sort -n | uniq -c
   6 03 Jan
  11 04 Jan
  12 05 Jan
   7 06 Jan
   6 07 Jan
   5 08 Jan
  12 09 Jan
  14 10 Jan
   7 11 Jan
   9 12 Jan
   8 13 Jan
   5 14 Jan
   7 15 Jan
   8 16 Jan
  15 17 Jan
  11 18 Jan
   9 19 Jan
  10 20 Jan
   7 21 Jan

Si je regarde le source sous SVN :

static apr_status_t
rate_limit_filter(ap_filter_t *f, apr_bucket_brigade *input_bb)
{
    apr_status_t rv = APR_SUCCESS;
    rl_ctx_t *ctx = f->ctx;
    apr_bucket *fb;
    int do_sleep = 0;
    apr_bucket_alloc_t *ba = f->r->connection->bucket_alloc;
    apr_bucket_brigade *bb = input_bb;

    if (f->c->aborted) {
        ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, f->r, APLOGNO(01454) "rl: conn aborted");
        apr_brigade_cleanup(bb);
        return APR_ECONNABORTED;
    }

J’ai l’impression que le client coupe la connexion avant que le ratelimit n’ait eu le temps de faire un calcul … à suivre, pour l’instant l’occurence est faible.