github benoitc/gunicorn 24.1.0
Gunicorn 24.1.0

latest release: 24.1.1
16 hours ago

New Features

  • Official Docker Image: Gunicorn now publishes official Docker images to GitHub Container Registry (PR #3454)

    • Available at ghcr.io/benoitc/gunicorn
    • Based on Python 3.12 slim image
    • Uses recommended worker formula (2 × CPU + 1)
    • Configurable via environment variables
  • PROXY Protocol v2 Support: Extended PROXY protocol implementation to support the binary v2 format in addition to the existing text-based v1 format (PR #3451)

    • New --proxy-protocol modes: off, v1, v2, auto
    • auto mode (default when enabled) detects v1 or v2 automatically
    • v2 binary format is more efficient and supports additional metadata
    • Works with HAProxy, AWS NLB/ALB, and other PROXY protocol v2 sources
  • CIDR Network Support: --forwarded-allow-ips and --proxy-allow-from now accept CIDR notation (e.g., 192.168.0.0/16) for specifying trusted networks (PR #3449)

  • Socket Backlog Metric: New gunicorn.socket.backlog gauge metric reports the current socket backlog size on Linux systems (PR #3450)

  • InotifyReloader Enhancement: The inotify-based reloader now watches newly imported modules, not just those loaded at startup (PR #3447)

Bug Fixes

  • Fix signal handling regression where SIGCLD alias caused "Unhandled signal: cld" errors on Linux when workers fail during boot (#3453)
  • Fix socket blocking mode on keepalive connections preventing SSL handshake failures with async workers (PR #3452)
  • Use smaller buffer size in finish_body() for faster timeout detection on slow or abandoned connections (PR #3453)
  • Handle SSLWantReadError in finish_body() to prevent worker hangs during SSL renegotiation (PR #3448)
  • Log SIGTERM as info level instead of warning to reduce noise in orchestrated environments (PR #3446)
  • Print exception details to stderr when worker fails to boot (PR #3443)
  • Fix unreader.unread() to prepend data to buffer instead of appending (PR #3442)
  • Prevent RecursionError when pickling Config objects (PR #3441)
  • Use proper exception chaining with raise from in glogging.py (PR #3440)

Installation

pip install gunicorn==24.1.0

Or use the official Docker image:

docker pull ghcr.io/benoitc/gunicorn:24.1.0

Don't miss a new gunicorn release

NewReleases is sending notifications on new releases.