Vous n'êtes pas identifié(e).

#1 15/11/2019 11:13:23

Geo-x
Membre

Deadlocks timeout

Bonjour.

Je rencontre des problèmes de timeout sur mes deadlocks lors d'une insertion massive de données (visiblement parce que le trigger en cours n'a pas terminé son travail) :

********************************************************************************
Message               : ERROR: deadlock detected
  Detail: Process 17067 waits for ShareLock on transaction 304743; blocked by process 17058.
Process 17058 waits for ShareLock on transaction 304747; blocked by process 17067.
  Hint: See server log for query details.
  Where: while locking tuple (59,65) in relation "intervention"

J'ai donc souhaité modifier ma valeur max de deadlock_timeout dans le pg_hba.conf mais je vois que la valeur n'est pas renseignée (par conséquent j'en déduis que la valeur s'adapte au besoin) :

Nom	deadlock_timeout
Valeurs	
Valeurs autorisées	1-2147483647
Adaptabilité	true
Source	engine-default
Type d'application	dynamic
Type de données	integer
Description	(ms) Sets the time to wait on a lock before checking for deadlock.

Qu'est ce qui pourrait être à l'origine du problème ? Faut-il que je renseigne une valeur ?

Hors ligne

#2 15/11/2019 11:28:16

gleu
Administrateur

Re : Deadlocks timeout

Ce paramètre a forcément une valeur, sa valeur par défaut, qui est de 1 seconde. Il n'y a aucune raison de modifier ce paramètre à ma connaissance.

Si vous avez des deadlocks, c'est que deux sessions se bloquent mutuellement. Ceci survient généralement quand le verrouillage des objets ou des lignes se font dans des ordres différents suivant les sessions. C'est souvent complexe à corriger et le pire c'est qu'on ne pourra pas beaucoup aider vu que le problème est dans l'applicatif sur sa façon d'accéder aux objets.


Guillaume.

Hors ligne

#3 15/11/2019 13:08:01

Geo-x
Membre

Re : Deadlocks timeout

D'accord merci, ça répond à une bonne partie de ma question :-)

Hors ligne

Pied de page des forums