Probleme scenario de plus en plus recurrent: SQLSTATE[HY000] [1040] Too many connections in /var/www/html/core/class/DB.class.php:40

Bonjour a tous,

J’ai un jeedom installé depuis un bon moment sur un RasPi 3 en v 4.1.19.
J’ai de plus en plus de message dyu type suivant:

[2021-02-18 07:54:10][ERROR] : La dernière exécution du scénario ne s'est pas lancée. Vérifiez le log scenario_execution, ainsi que le log du scénario "RefreshiCloudMagali".
[2021-02-18 08:24:42][ERROR] : La dernière exécution du scénario ne s'est pas lancée. Vérifiez le log scenario_execution, ainsi que le log du scénario "Prechauffage Tesla".
[2021-02-18 15:38:07][ERROR] : La dernière exécution du scénario ne s'est pas lancée. Vérifiez le log scenario_execution, ainsi que le log du scénario "Lum Auto Entrée".
[2021-02-18 15:38:07][ERROR] : La dernière exécution du scénario ne s'est pas lancée. Vérifiez le log scenario_execution, ainsi que le log du scénario "Dm-Ouverture Absence".
[2021-02-18 18:13:10][ERROR] : La dernière exécution du scénario ne s'est pas lancée. Vérifiez le log scenario_execution, ainsi que le log du scénario "RefreshiCloudMagali".

Sur des scenario diverses et varié de maniere assez aleatoire.

Quand je regarde dans le log j’ai beaucoup de messahe:

PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000] [1040] Too many connections in /var/www/html/core/class/DB.class.php:40
Stack trace:
#0 /var/www/html/core/class/DB.class.php(40): PDO->__construct('mysql:host=loca...', 'jeedom', 'xxxxxxxxxxxx', Array)
#1 /var/www/html/core/class/DB.class.php(50): DB::initConnection()
#2 /var/www/html/core/class/DB.class.php(82): DB::getConnection()
#3 /var/www/html/core/class/config.class.php(187): DB::Prepare('SELECT `key`,`v...', Array, 1)
#4 /var/www/html/core/class/translate.class.php(34): config::byKeys(Array)
#5 /var/www/html/core/class/translate.class.php(151): translate::getConfig('language', 'fr_FR')
#6 /var/www/html/core/class/translate.class.php(75): translate::getLanguage()
#7 /var/www/html/core/class/translate.class.php(54): translate::exec('{{Chauffage}}', '/var/www/html/c...', false)
#8 /var/www/html/core/class/translate.class.php(165): translate::sentence('Chauffage', '/var/www/html/c...', false)
#9 /var/www/html/core/config/jeedom.config.php(23): __('Chauffage', '/v in /var/www/html/core/class/DB.class.php on line 40
{"message":"Saved"}kill: (27146): No such process
kill: (27239): No such process
{"message":"Saved"}kill: (27756): No such process
kill: (28037): No such process
{"message":"Saved"}{"message":"Saved"}{"message":"Saved"}kill: (10049): No such process

Je n’ai pas modifier mes scenarios depuis un bon moment.
J’ai eu beau essayer de redemarrer ma RasPI ca n’a rien changé.
la page de santé me dit que tout va bien.

Je ne sais pas vraiment ou regarder et je ne comprends pas vraiment pourquoi j’ai de plus en plus d’erreur de ce type sans rien changer.

Si certains peuvent me donner des pistes de recherches ou des trucs à vérifier je suis preneur.
Car ca commence a devenir problematique car j’ai certains scenario assez essentiel qui des fois ne demarre pas et ca mets un peu le bordel dans la gestion de la maison :grinning:

merci d’avance,
OvO

Bonjour,

Et nous on peut voir ?

Et un pi 3 installé depuis longtemps ça veut dire quelle version de Linux ?
Et dernières mises à jour datent de quand ?

Plus d’info sur le matériel peut-être ? Alimentation ? Sd/Ssd ? Charge ?

Merci @Mips de y’interessé à mon probleme.
Voila la page de santé


Et le resultat du benchmark:

J’ai debian buster 10.0, ca fait un moment que je n’ai pas fait de maj de ma debian.
Installation sur SSD. Alimentation je ne suis pas sûr de ce que tu veux savoir, c’est celle que j’ai acheté a l’epoque avec le kit RasPi3.
Pour la charge je n’ai pas que la Jeedom qui tourne dessus et un serveur ups pour mon onduleur.
Je n’ai pas d’outils de monitoring en dehors du plugin monitor:
2021-02-20_17-45-51

Si vous avez besoin d’infos supplémentaires n’hesitez pas.
Merci.
OvO

Ce type d’erreur pourait être lié à un stockage qui a des erreurs de lectures écritures, c’est pour ça que je me demandais.
Le Ssd a sa propre alimentation ou c’est la même que le pi ?

Ha ok. Non le SSD a sa propre alim.

C’est de pire en pire. Au court du week-end la situation s’est encore dégradé et j’ai de plus en plus d’erreur de démarrage de scenario qui ne s’executent pas.

J’essaie pour le moment de désactiver certains plug-in pour voir si ca vient d’un plugin mais c’est pas toujours evident dans un environnement en prod :slight_smile:
J’ai trouvé que le plugin xiaomi avait un log bizarre:

[2021-02-21 21:32:58][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760ec110>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-21 21:33:03][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760ec850>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-21 22:12:21][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x75875370>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-21 23:01:17][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x758832f0>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 00:01:13][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7588a1d0>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 00:01:14][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760ec1d0>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 1/3
[2021-02-22 00:01:14][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760ec690>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 2/3
[2021-02-22 00:01:14][ERROR] : Critical error on  send_changes_async local variable 'r' referenced before assignment
[2021-02-22 00:01:15][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x75884d10>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 00:01:22][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x75884930>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 01:00:17][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x75883bd0>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 01:00:18][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x75883130>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 1/3
[2021-02-22 01:47:22][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x75884370>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 01:47:22][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760b2d10>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 1/3
[2021-02-22 01:47:23][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760ec7d0>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 2/3
[2021-02-22 01:47:23][ERROR] : Critical error on  send_changes_async local variable 'r' referenced before assignment
[2021-02-22 01:47:23][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760eccb0>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 02:00:15][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760f18f0>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 02:00:15][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760ecf10>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 1/3
[2021-02-22 02:32:57][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760ecc70>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 02:32:58][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x75884ef0>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 1/3
[2021-02-22 03:00:19][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x75883830>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 03:00:28][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x75883f10>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 03:50:36][ERROR] : Exception on socket : Bulb closed the connection.
[2021-02-22 04:00:23][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x758750b0>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 04:22:19][ERROR] : Exception on socket : Bulb closed the connection.
[2021-02-22 04:54:19][ERROR] : Exception on socket : A socket error occurred when sending the command.
[2021-02-22 05:00:35][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760b2770>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 05:00:55][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x75875470>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 05:00:56][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x75884430>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 1/3
[2021-02-22 05:24:54][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760dff30>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 05:24:54][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x760f1910>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 1/3
[2021-02-22 05:31:37][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x75883270>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 0/3
[2021-02-22 05:31:37][ERROR] : Error on send request to jeedom HTTPConnectionPool(host='127.0.0.1', port=80): Max retries exceeded with url: /plugins/xiaomihome/core/php/jeeXiaomiHome.php?apikey=yTGipl0ppc5QRkuOsK6gR3sp3q4NHmCj (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x758839d0>, 'Connection to 127.0.0.1 timed out. (connect timeout=0.5)')) retry : 1/3
[2021-02-22 06:05:38][ERROR] : Exception on socket : Bulb closed the connection.

J’ai arrete le demon, je vais voir mais comme j’ai pas mal de scenario basé sur les capteurs xiaomi forcement pas mal de scenario ne devrait plus rien faire :slight_smile:

Ovo

Apres 24h d’arret du plugin de Xiaomi j’ai toujours des erreurs de demarrage de scenario :frowning:
Si certains ont des idées de ou regarder je suis preneur.

OvO

Bonjour
Le message d’erreurs « TOO many connections » est relatif a mysql/MariaDB
Donc, pour commencer, il faut que tu augmentes le parametre max_connections dans /etc/mysql/my.cnf
pour exemple j’ai
max_connections = 45

Puis en ssh et en root tu fait
service mysql restart

@cybertech Merci pour le conseil.

J’ai revu de fond en comble ma config réseau (gateway et switch unifi) car j’avais beaucoup de plugin avec des erreurs de connexions comme ci-dessus le plugin Xiaomi.
Pour le moment ca semble être beaucoup mieux. J’ai toujours quelques erreurs sur le plugin Xiaomi mais depuis 2 jours je n’ai plus vu d’erreur de démarrage de scenario avec le problem SQL.

D’ailleurs si un dev passe par la (@Mips par exemple :slight_smile: )

  • Serait-il possible dans le log scenario_execution de rajouter la date/heure quand un message est ajouté dans le log?

Donc pour le moment en tout cas, le souci semble avoir plus ou moins magiquement disparu, mais je monitor avec attention. Je vous tiens au courant si je trouve quelque chose.

OvO

Bonjour,

Pas vraiment car ce qui arrive dans ce log c’est l’output stdout et stderr de la commmande php qui éxécute le scénario en asynchrone, c’est directement php qui écrit les warning et error rencontré et aucun timestamp n’est écrit.

les autres logs c’est jeedom qui écrit dans un fichier et le format du log est défini une fois pour toute pour le logger dans le code du core