Heroku : PGError: ERROR: canceling statement due to statement timeout

  • par julien

J’ai récemment eu le même problème sur 2 de mes applications Radiant hébergées chez Heroku, mon hébergeur fétiche.

Les 2 applications ne voulaient plus démarrer pour la raison suivante :

PGError: ERROR: canceling statement due to statement timeout

Pour ceux qui sont pressés de savoir comment résoudre le problème, un simple

heroku restart

a fait l’affaire.

Pour ceux qui veulent en savoir un peu plus sur le sujet, le support m’a dit que cette erreur venait certainement d’une autre application présente sur le serveur qui sollicitait fortement la base de données, ce qui générait l’erreur de timeout.

Il faut savoir que si vos applications ne tournent que sur 1 dyno et n’ont pas assez de trafic, elle seront automatiquement arrêtés au bout de quelques heures, et devront être démarrées de nouveau à la prochaine requête.

Pour éviter que cela, j’ai donc mis en place une simple tache cron sur ma machine qui charge la page d’admin de mon site toutes les heures, pour éviter que l’application soit arrêtée.

0   *   *   *   *   curl http://www.monsite.com/admin

Il y a tout de même quelque chose qui me chiffonne dans cette histoire et je serai curieux de savoir si d’autres que moi ont rencontrés ce problème et comment ils l’ont analysé.