This release of ProxySQL 3.0.5 delivers significant improvements in PostgreSQL SSL enforcement, security hardening, build performance optimization, and enhanced documentation. With critical fixes for SSL/TLS configuration handling, improved timezone parsing support, and streamlined development workflow optimizations, this release strengthens ProxySQL's reliability and usability for both MySQL and PostgreSQL deployments.
PostgreSQL Security Enhancements: Critical fixes ensure use_ssl configurations are properly enforced on frontend connections, preventing unauthorized connections when SSL is required.
Security & Reliability Improvements: Hardening against timezone parsing vulnerabilities and fixing critical bugs in file descriptor handling for fork/exec scenarios.
Development Workflow Optimization: Significant performance improvements for development builds by preserving test dependencies during clean operations.
Documentation & Testing: Comprehensive documentation updates and expanded test coverage to ensure robust functionality across different deployment scenarios.
Enhancements & Fixes
Security & Compatibility Improvements
PostgreSQL SSL Enforcement (876d4ad3, #5285)
Fixes critical security vulnerability where clients could bypass SSL requirements even when use_ssl=1 was configured. Ensures frontend connections properly respect SSL configuration for PostgreSQL users, preventing unauthorized connections. Includes proper value assignment from pgsql_users to sessions and adds regression testing.
Version Forwarding Control (591e1bca, #5277)
Adds mysql-select_version_forwarding global variable to restore SQLAlchemy and ORM compatibility. Fixes the issue introduced in v3.0.4 where SELECT VERSION() queries returned ProxySQL's internal version instead of forwarding to backend servers.
Protocol & Parser Enhancements
Enhanced Timezone Parsing (ef872c7f, #5280)
Improves MySQL SET statement parser to handle complex timezone configurations, including three-component IANA names (e.g., America/Argentina/Buenos_Aires) and hyphenated timezone names. Resolves parsing errors for SET time_zone statements with modern timezone formats.
PostgreSQL Bind Packet Fix (c6ed5b96, #5282)
Fixes malformed Bind packets in PostgreSQL extended query protocol when clients provide single parameter format. Resolves protocol violations and connection failures caused by improper handling of single-element parameter format arrays.
Fork/Exec Safety Improvements (e6cbdcad, #5276)
Fixes critical bugs in close_all_non_term_fd() function that caused undefined behavior and potential deadlocks in multi-threaded programs when called after fork() before execve(). Ensures proper file descriptor handling for processes that spawn child processes.
Improvements
Performance & Build Optimization
Build Performance Improvements During Clean Operations (a8e759c9, #5289)
Significant performance enhancements for development workflow by optimizing the make clean behavior to preserve expensive-to-rebuild test dependencies. This change eliminates the need to rebuild the entire cpp-dotenv dependency during clean operations, reducing development cycle times and improving productivity for developers working with ProxySQL's test suite.
Enhanced SQLite Mathematical Function Support (4cf85d3f, #5262)
Enables the SQLITE_ENABLE_MATH_FUNCTIONS compile flag to provide mathematical function support in SQLite queries through ProxySQL's SQLite interface. This enhancement expands the capabilities of ProxySQL's embedded SQLite database for query analysis and caching operations, supporting functions like abs(), round(), and other mathematical operations.
Security & Reliability
Parameterized Prepared Statements in REST API (af231878, #5270)
Implements parameterized prepared statements in the REST API for safer SQL execution. This enhancement replaces direct SQL string concatenation with parameterized queries, preventing SQL injection vulnerabilities in administrative operations and improving the overall security posture of ProxySQL's REST interface.
Documentation & Testing
Comprehensive ProxySQL_Poll Usage Documentation (9c3f6b0a, #5286)
Adds extensive documentation throughout the ProxySQL codebase explaining the core I/O multiplexing system. This comprehensive documentation helps developers understand how ProxySQL_Poll is used and integrated throughout the codebase, improving maintainability and reducing the learning curve for new contributors.
TAP Testing Documentation Enhancements (2d114058, #5269)
Updates the TAP (Test Anything Protocol) documentation with detailed unit test instructions and examples. The restructured guide includes best practices for writing TAP tests, examples of unit tests under test/tap/tests, and improved documentation for test groups, making it easier for developers to contribute to ProxySQL's test suite.
Documentation
Security & Feature Documentation
Comprehensive SSL/TLS Key Logging Documentation (4f675ed1, #5279)
Adds detailed documentation for the ssl_keylog_file feature, which enables TLS key logging for debugging encrypted traffic. The documentation explains how to configure the feature, use it for debugging SSL/TLS issues, and provides guidance on secure file handling and access control for key log files.
PostgreSQL Support Documentation Updates (a83bba1c, #5271)
Updates README.md and installation documentation to reflect PostgreSQL support alongside MySQL (and forks). The changes include proper version references, updated repository URLs, and enhanced information about ProxySQL's dual-database support capabilities.
Installation Documentation Updates (96af0fd2, #5264)
Comprehensive updates to README.md and INSTALL.md to reflect ProxySQL 3.0.5 release, with proper version references throughout documentation and updated repository URLs from legacy proxysql-2.4.x branches.
Testing
Test Infrastructure Improvements
Enhanced Test Coverage and Organization (7e9e0099, #5293)
Adds comprehensive test coverage improvements and better organizes test structure for improved validation of ProxySQL's functionality.
Security Testing
SSL Enforcement Testing (ba53c75c, #5285)
Adds comprehensive regression tests for SSL enforcement functionality, ensuring that the PostgreSQL use_ssl configuration is properly validated and enforced across different connection scenarios.
Build/Packaging
Package Management Improvements
RPM Spec File Rework (06873650, #5235)
Reworks RPM specification files to use proper RPM macros for handling systemd integration. This addresses systemd-related issues during package installation in container environments where systemd commands and units are unavailable, improving the reliability of ProxySQL packages in Docker and other containerized deployments.
Deprecation Cleanup (8b2b2991, #5291)
Removes deprecated code implementations that were scheduled for cleanup, improving code maintainability.
Other Changes
Version Management
Development Cycle Version Bump (8b662563, #5265)
Sets CURVER=3.0.5 in the Makefile at the beginning of the development cycle to properly track version progression and enable release automation processes for the 3.0.5 release branch.
The release commit is: 7e9e00997d7d9fa4811c86c3a3bec9c886386e1f
Full Changelog: https://github.com/sysown/proxysql/compare/3.0.4...v3.0.5