Crash et Fatal error: the database system is in recovery mode
Bonjour,
Je suis sur Ubuntu 10.04 (virtualisé sous VM) et ai été confronté à un crash de Postgres 8.4, avec le message d'erreur suivant:
Code:
CEST Fatal: The database system is in recovery mode
précédé par les warnings:
Code:
postgres terminating connection because crash of another process
et
Code:
1 2
| The postmaster has commanded this server process to roll back the current transaction and exit,
because another server process exited abnormally and possibly corrupted shared memory |
Après avoir tué et redémarré tous les processus liés à PostgreSQL, j'ai récupéré la base, apparemment intacte.
D'après ce que j'ai lu, le crash pourrait être liée à un problème sous Linux: quand une requête amène Postgres à empiéter sur un bloc de RAM préalloué pour un autre service (par exemple java), l'OS peut purement et simplement décider de "killer" PostgreSQL.
Ca contredit un peu le troisième message d'erreur fourni par PostgreSQL, qui indique qu'un autre service se serait crashé avant postgres (apparemment pas Tomcat, qui tournait toujours)
Seulement voilà, j'aimerais bien identifier la requête et/ou le service qui a provoqué l'interruption pour être certain de la cause de l'erreur et de la manière de la prévenir. Les logs ne me renseignent que sur l'heure. Est-ce que c'est possible?