Skip to content

v2.4.0

Compare
Choose a tag to compare
@renecannao renecannao released this 11 May 14:50

v2.4.0 Release notes

Release date: 2022-05-11

This is a major release for ProxySQL 2.x series containing several important features, fixes and enhancements.

Compared to ProxySQL 2.3.2 , ProxySQL 2.4.0 introduces the following changes:

New features and enhancements

Major

  • Session variable 'transaction_isolation' now doesn't disable multiplexing #3664 .

  • OpenSSL updated from version 1.1.1j to v3.0.2 #3844 #3675 .

  • Introduced new variable mysql-unshun_algorithm . It controls if the automatic unshunning of a host is performed just on the hostgroup where traffic is sent, or on all hostgroups where the host exists #3649 .

  • Added support for command COM_RESET_CONNECTION for frontend connections #3645 .

  • Improved startup time when MySQL worker threads are listening to multiple sockets #3700 .

  • Added pidfile to be configurable through config file #3707 .

  • The implementation of the parsing of queries and the query digests was extensively improved: #3680

    • Multiple fixes for query digests parsing for more homogeneous digest generation.
    • Added new configuration variable mysql-query_digests_groups_grouping_limit allowing to grouping over digests grouped by mysql-query_digests_grouping_limit , for example for INSERT statements that inserts multiple rows.
    • Added new configuration variable mysql-query_digests_keep_comment: when enabled, comments of the kind /* */ are not stripped from the query digest.
  • Several improvements on how session variables are parsed and processed, including an improved handling of SQL_LOG_BIN and tracking of the following variables: #3702 and #3754

    • aurora_read_replica_read_committed
    • group_replication_consistency
    • lc_messages
    • lc_time_names
    • max_execution_time
    • optimizer_prune_level
    • optimizer_search_depth
    • query_cache_type
    • sort_buffer_size
    • timestamp
    • tmp_table_size
  • Multiple ProxySQL Cluster improvements #3305:

    • Each ProxySQL node now must have an UUID, that can be either:
      • configured in the configuration file
      • supplied by command line using option -U (or -uuid), or
      • automatically generated
    • Cluster nodes register themselves when connecting to another Cluster node using their own UUID
    • Because nodes register themselves when connecting to another node, core ProxySQL Cluster nodes are now aware of other client ProxySQL nodes. Such information is accessible via stats_proxysql_servers_clients_status table
    • To avoid race conditions and verify correctness, the checksums of the configuration is checked before and after the synchronization itself
  • Added support for SELECT current_user() and SELECT user() in Admin #3725 .

  • Added Clang build support #3775

  • Added new distros for builds and packages:

  • Removed variables mysql-client_multi_statements and mysql-client_found_rows , as they were already deprecated #3793

  • Added new config variable mysql-auto_increment_delay_multiplex_timeout_ms that allows to specify a timeout, after which mysql-auto_increment_delay_multiplex is invalidated, thus re-enabling multiplexing #3839 .

  • Added regex support for spiffe_id user attribute #3820 .

  • Added tracking of protocol flag NO_BACKSLASH_ESCAPES in case it is changed #3854

  • Added several new prometheus metrics:

    • proxysql_fds_in_use, exposing the number of FD currently in use #3676
    • proxysql_version_info #3782
    • exporting several stats cluster tables #3790 :
      - stats_proxysql_servers_checksums
      - stats_proxysql_servers_clients_status
      - stats_proxysql_servers_metrics
  • Added new variable mysql-monitor_replication_lag_group_by_host . When enabled, MySQL Monitor will perform only 1 replication lag check per server even if present in multiple hostgroups #3867

Minor

  • Improved the processing of tablestats_history.history_mysql_status_variables for better scalability and reduced storage requirement #3674 .
  • Field last_updated from table stats_mysql_client_host_cache is now reported in seconds #3735 .
  • After ProxySQL packages generation copy created ProxySQL binaries sha1 files into 'binaries' directory #3755 .
  • Added new debug_filters table in Debug build. This table can be used to filter specific information from error log when debug_levels is enabled .
  • Added extra logging when no servers are available in a hostgroup #3806 .
  • Version check now limits fetched output to '32' bytes. See commit ccf6d9e .
  • Added stats capabilities for log messages. Relevant for future logging messaging improvement #3824 .
  • Improved error report for RESTAPI scripts #3838 .
  • Various performance improvements

Bug Fixes

Major

  • If fast_forward was enabled for a user and during authentication a large packet was received, the authentication itself could fail #3658
  • Under certain high load conditions multiplexing was incorrectly disabled #3658
  • When mysql-log_mysql_warnings_enabled was enabled, MySQL warnings generated from a query were incorrectly returned as the resultset of the next executed query #3652 .
  • Fixed a stall in MySQL_Thread due to an immediate return of function mysql_real_query_start() #3652 .
  • When mysql-query_digests=false , some USE query could cause proxysql to crash #3657 .
  • When a client issues COM_CHANGE_USER, variable user_attributes was not being preserved #3645 .
  • Fixed crashes due to invalid handling of big packets for Admin #3710 .
  • wsrep_sync_wait was not check on several backend versions, including PXC 8.0 #3727 .
  • Fixed conflict between fast_forward and CLIENT_DEPRECATE_EOF when frontend and backend connections didn't have the same flag #3757.
  • create_new_connection annotation could not work as intended if a connection was retrieved from thread-local connection pool #3757 .
  • When a client issued a COM_CHANGE_USER command, 'Auth Method Switch' during handshake was not being properly handled. This affected libmysqlclient #3504.
  • Fixed several invalid query interceptions for prepared statements , specifically: #3826
    • SELECT CONNECTION_ID()
    • SELECT LAST_INSERT_ID()
    • SELECT @@IDENTIFY
  • Fixed monitoring not working properly for AWS aurora auto-discovered servers #3797 .
  • If many backend connections were used, some idle backend connections were not getting pinged #3836 .
  • Fixed multiple deadlocks regarding ProxySQL Cluster nodes synchronization , and the interaction between ProxySQL Cluster and Admin #3305 and #3848
  • Added proper handling of signal EINTR affecting scripts launched by the RESTAPI #3838 .
  • Fixed several issues reported by CodeQL #3815 .
  • Fixed several invalid memory usage.

Minor

  • Fixed compilation inside rootless containers #3686.
  • Fixed mysql-ssl_p2s_capath typo in 'refresh_variables' #3834.
  • Fixed crashes when 'gtid_executed' reported by proxysql_mysqlbinlog reader is empty #3817 .
  • To track GTID , ProxySQL was incorrectly trying to connect also to server in OFFLINE_HARD status #3817 .
  • Fixed duplicated counting of MySQL errors for client connections #3856 .

SHA256s:

7c889e19979ffdee2c5825a6df054483c6337b3d5402fc2ca9c7d0b999db97f5  proxysql-2.4.0-1-almalinux8-clang.x86_64.rpm
8293277bbb7398050747d8c6c54dca6d336c2ebd9f8c75ed208cc05087a6bba3  proxysql-2.4.0-1-almalinux8.aarch64.rpm
382ff92354747fcc4caae50ee815f9586b1280a134057c7bcb81a4cd9a803d5c  proxysql-2.4.0-1-almalinux8.x86_64.rpm
3792991f6aac57be9b5fb993931bd886482111d74fa25761d130703ef662835d  proxysql-2.4.0-1-centos6.x86_64.rpm
6394245991c8ab564a044dd9ee3dfde3df335aa8d708ad25e7375da6631e7aa1  proxysql-2.4.0-1-centos7.aarch64.rpm
d04cd74b4c7b5485594aa441974937aeb9cbce55ce59828172ffc8d10d104654  proxysql-2.4.0-1-centos7.x86_64.rpm
354ed60547607259cc4ce7b5e110efcf4640dd1bab09f53d69d129a0fb458c40  proxysql-2.4.0-1-centos8-clang.x86_64.rpm
e763516bc5b6abff28dd1963a2b8b9b1308e26e9d8a3622811815b239ad609cc  proxysql-2.4.0-1-centos8.aarch64.rpm
a41134ed3458101211c01a16fcefcf953c78b8e3ff837c132236f30b09096d9f  proxysql-2.4.0-1-centos8.x86_64.rpm
d677752287eab6d2be24965a678efe64734e69c16944e5a39d317a2bc810dfbb  proxysql-2.4.0-1-dbg-almalinux8.x86_64.rpm
dcdd5def0a991c49754ac3a42cf34a9fa37c101fe30944a5111ee4fb10f1deea  proxysql-2.4.0-1-dbg-centos6.x86_64.rpm
ad8f8229d62749d4eca07b3d7934fb351f47e523680a9c440c015df7303f2ac2  proxysql-2.4.0-1-dbg-centos7.x86_64.rpm
be8ffcc32924673e5188bda287b2d4dc6d06b1463ae877bc9ecb17b16da213ee  proxysql-2.4.0-1-dbg-centos8.x86_64.rpm
92f522893e4f9af52b8aebb7496a4e37306b8169a77e568950e8746fdb73c3e5  proxysql-2.4.0-1-dbg-fedora27.x86_64.rpm
cd1c77b65801a81f3c4ef3e1f42aaaf8645a76e8125696b06906a4c50ccecc8e  proxysql-2.4.0-1-dbg-fedora28.x86_64.rpm
5226ef24c1c39c0fd710b51f1bb105fd4565aa56ec769b66f3ca63503166aac4  proxysql-2.4.0-1-dbg-fedora33.x86_64.rpm
3e9502dfcf102d24dddf5384ecaa4e4402f9b424e3aee44d2be79de93f69ec3d  proxysql-2.4.0-1-dbg-fedora34.x86_64.rpm
31932ca4c9f6df8c363e0c54c838687986c6502735cac712f820d59310439af3  proxysql-2.4.0-1-dbg-opensuse15.x86_64.rpm
0e53b07336ca266e1bbf25ed37626d07dc3023bbaeb8e5718a1439ca36bbcdc4  proxysql-2.4.0-1-fedora27.x86_64.rpm
ea62bcb5a356253346cfc38fbf341de17e5f04a43e2e5089ff8f423e34050e5c  proxysql-2.4.0-1-fedora28.x86_64.rpm
88c4fdd6eb029a5f722650543508fc673e10fbce09e524a524a92e2886fe53af  proxysql-2.4.0-1-fedora33.aarch64.rpm
ecd0c75724b73da835c226c388d46465e1fcfa5f19994014b26d567c2749352c  proxysql-2.4.0-1-fedora33.x86_64.rpm
15c67b31f10f5c7d41ac2494d6d189111710db7653c10a020b026d790fdf4436  proxysql-2.4.0-1-fedora34-clang.x86_64.rpm
e045ddb2c9edbd016af5c6e2350ad3359b56d2a3bf29a4efa5febcd381a72119  proxysql-2.4.0-1-fedora34.aarch64.rpm
815fd02dbf7823f187fb47fde3836f4b0c35bbf13db94d793009597c196eddf6  proxysql-2.4.0-1-fedora34.x86_64.rpm
63c10556787ac98b9cc95ddab0a838c7da2dcef4e3e625c75e10804189622860  proxysql-2.4.0-1-opensuse15-clang.x86_64.rpm
e26e78ba0e6afc2f55fcf40c4445712bcbdaf497606e83ec5062e664b3904571  proxysql-2.4.0-1-opensuse15.aarch64.rpm
2caab0ee71ba9bd69f55565c4d81a7ae26e8507b76954535bf14e8a7d654170c  proxysql-2.4.0-1-opensuse15.x86_64.rpm
c19fcca46819a1e8bfea9a7f9e69519426b828355427def69aab0d756d84b3aa  proxysql_2.4.0-dbg-debian10_amd64.deb
af447c74f1da08d2a54eeb04c2ad343f505b122d50bf050d67debedb6bae9b55  proxysql_2.4.0-dbg-debian11_amd64.deb
94f8139e1524a85e73266040830f79b63332e79b7a5bb3c04f2a218136e37d63  proxysql_2.4.0-dbg-debian8_amd64.deb
8f58ceb242938966844c5a728ff9de8d1f26ee182289c9f1f30aea5c6c8a305b  proxysql_2.4.0-dbg-debian9_amd64.deb
c93a9dbe7c0bf8a57559b8c3564adf82ad3ca3854ea606f3e66e328898b26591  proxysql_2.4.0-dbg-ubuntu14_amd64.deb
95baf1b8759e7b71bd601ee92af5f10aff5820f3cef9074c8ab1735d82729360  proxysql_2.4.0-dbg-ubuntu16_amd64.deb
83284e61f21176f22f7de8b44b73e223b311a66bd0366604f8a85a7507219e17  proxysql_2.4.0-dbg-ubuntu18_amd64.deb
70424ebae6881ccae61786837a33bcd531d102de550a099d09ed02926a156147  proxysql_2.4.0-dbg-ubuntu20_amd64.deb
997a8cdbed2c306d476955bfcb7ad0c6a0bd3d2a19958d66f33d79c681fa3344  proxysql_2.4.0-dbg-ubuntu22_amd64.deb
3141e7e920c8be8bc0224668934201839c3de5a680ac6d1d0027d85fa17acde9  proxysql_2.4.0-debian10_amd64.deb
50494ed564367183ab9daea711e66e7520e53f6e4eb04f24742cc682017e2a48  proxysql_2.4.0-debian10_arm64.deb
6de0bf08a390409846866f0779a47f1ac6076c7912fe2b5f158dbfc3ce9815ad  proxysql_2.4.0-debian11-clang_amd64.deb
d0fdb91ad915beffcf0e9cadac0d541f32a75ec6863ab1aad790cce417ec955e  proxysql_2.4.0-debian11_amd64.deb
5c0e5a010e01dc3e09d4e4ac8bbdb2388be4bb1a443eff98b64b99c305b6b005  proxysql_2.4.0-debian11_arm64.deb
4b7ae3b7087b3a0b22702fa67ea9856db6eada78b004dd7f42046ed0254cebbe  proxysql_2.4.0-debian8_amd64.deb
18f1e0f33e6e0eb95f9e6a3504839eb68c6bb543934c2c26920a2d46c208d4fc  proxysql_2.4.0-debian9_amd64.deb
6a1cca37d2124adaaa53a3b324af612b4b65c164c31c1d70636ecf01040fe953  proxysql_2.4.0-debian9_arm64.deb
3c53a5ef32e9091eeeb4b99c9803d3fa5ae83a22581f3b40e31abc1b431321e5  proxysql_2.4.0-ubuntu14_amd64.deb
d560bc0cecaab5513789b0b5561c56d78803ca1d1ecc2cfd8d46ebd3def3763f  proxysql_2.4.0-ubuntu16_amd64.deb
a9a1675725593b75477f8704a7d921735762db865e8c9978e83a8ef5b22e91a9  proxysql_2.4.0-ubuntu16_arm64.deb
ea2a0fff1e376e4d2b783ebac81b3df70e4ed8a298bb62f2cceae1e9ecf3401d  proxysql_2.4.0-ubuntu18_amd64.deb
6b04d2bbcd44385db03856cf3a80a63e59b71d284430e974dfb0e9f9e487e015  proxysql_2.4.0-ubuntu18_arm64.deb
a8a3f6aa8085b33a474c1e9c9c65e26d79256f0f9ef337c46fd2db20e2493589  proxysql_2.4.0-ubuntu20-clang_amd64.deb
61274832e1cfdbcdcd742df2be00e78156c5baaab84ce9cc370ef531447ab120  proxysql_2.4.0-ubuntu20_amd64.deb
085bfb5f5302fa84533ae35c07ec953a168baa5a1d9b87b3cdce2b7741967cb5  proxysql_2.4.0-ubuntu20_arm64.deb
23d3e915e7f26d4645b610a1807823a28ffe8d99c233bcb3d61567be77660f3c  proxysql_2.4.0-ubuntu22-clang_amd64.deb
cc61a1988d380addd419b079521feb608d17e809caee6738da242e1f72f936f4  proxysql_2.4.0-ubuntu22_amd64.deb
e798eda135bc1130a62645234ae20d5b6c1840a4ca9c15ed78365550726cfd61  proxysql_2.4.0-ubuntu22_arm64.deb