We are experiencing a critical production issue related to JFilters, which causes:
-
MySQL CPU usage spikes up to 150%
-
MySQL connection timeout
-
Server instability and crash
-
Error:
mysqli_sql_exception: MySQL server has gone away
This issue occurs repeatedly when JFilters is processing filters and routing on the frontend.
Error Log (Critical)mysqli_sql_exception: MySQL server has gone away
in /libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:427
The stack trace shows that the issue originates from JFilters database collection loading and nested filter processing, specifically:
-
com_jfilters/src/Model/Collection/Db.php -
AbstractCollection->loadWithFilters() -
Filter/Option/Collection/Filtered/Nested -
Router rule parsing:
components/com_jfilters/src/Service/Router/Rules/FilterRules.php
-
JFilters executes very heavy database queries during:
-
Filter option loading
-
Nested filter creation
-
SEF routing parsing
-
-
These queries appear to:
-
Load large datasets
-
Run repeatedly per request
-
Possibly lack proper query optimization, indexing, or caching
-
-
As traffic increases, MySQL connections pile up until:
-
mysqli->ping()fails -
MySQL drops connections (
MySQL server has gone away) -
Joomla frontend returns 500 error
-
Backend becomes inaccessible
-