Migrating to HAProxy v3.4-dev6
Version v3.4-dev6 introduces 12 breaking changes. This guide details how to update your code.
Released: 3/5/2026
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
acmeproxyserverhatermquicsslspoecpu-topomux-h2counterspromexluastreamhluahpackqpackhtxh1-htxhttp-anafcgiresolversmux-fcgifill_stats()srv_free_params()srv_drop()defaults_px_ref/unref_all()channel_add_input()Breaking Changes
●Issue #1
MEDIUM: counters: change the fill_stats() API to pass the module and extra_counters. This requires updating callers to pass the module and extra_counters to fill_stats().
●Issue #2
MEDIUM: counters: add a dedicated storage for extra_counters in various structs. This is a structural change that might affect code directly manipulating counter storage.
●Issue #3
MEDIUM: counters: return aggregate extra counters in ->fill_stats(). Callers of fill_stats() might need to adjust how they process the returned data.
●Issue #4
MEDIUM: proxy: add lock for global accesses during proxy free. Code that frees proxies concurrently might need to be reviewed for thread safety.
●Issue #5
MEDIUM: proxy: add lock for global accesses during default free. Code that frees default proxies concurrently might need to be reviewed for thread safety.
●Issue #6
MEDIUM: proxy: implement backend deletion. This introduces new logic for backend deletion which might have subtle behavioral changes.
●Issue #7
MEDIUM: quic/mux-quic: adjust app-ops install. This change in app-ops installation for QUIC/mux-QUIC might require adjustments in how app-ops are managed.
●Issue #8
MEDIUM: http-fetch: Rework how HTTP message version is retrieved. Code relying on the previous method of retrieving HTTP message version might need updates.
●Issue #9
MEDIUM: http-ana: Use the version of the opposite side for internal messages. This change in how internal messages use version information might affect internal processing.
●Issue #10
BUG/MAJOR: qpack: unchecked length passed to huffman decoder. This is a critical bug fix that could lead to crashes or incorrect decoding if not addressed. Ensure all lengths passed to the huffman decoder are validated.
●Issue #11
BUG/MAJOR: fcgi: Fix param decoding by properly checking its size. This is a critical bug fix that could lead to crashes or incorrect decoding if not addressed. Ensure all param sizes are properly checked during FCGI decoding.
●Issue #12
BUG/MAJOR: resolvers: Properly lowered the names found in DNS response. This change in how DNS response names are processed might affect lookups if case sensitivity was implicitly relied upon.
Migration Steps
- 1Update callers of fill_stats() to pass the module and extra_counters.
- 2Review code that frees proxies concurrently for thread safety.
- 3Review code that frees default proxies concurrently for thread safety.
- 4Ensure all lengths passed to the huffman decoder are validated.
- 5Ensure all param sizes are properly checked during FCGI decoding.
Release Summary
This release includes numerous bug fixes and minor improvements across various components like QUIC, ACME, and proxy handling. It also introduces new features for haterm and improved error reporting in SSL.
Need More Details?
View the full release notes and all changes for HAProxy v3.4-dev6.
View Full Changelog