PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#1 30/07/2021 17:27:03

dev.isc84
Membre

Segmentation fault

Bonjour,
J'ai une erreur de type signal 11: segmentation fault lorsque j'exécute une requête très précise (incluant une jointure sur une table de 6 millions de lignes environ).
postgresql crash systématiquement sur cette requête.

J'ai simplifié la requête en créant une table temporaire puis en faisant ma jointure entre la table temp et la table qui contient les 6 millions de lignes.
Je n'ai pas de crash à la création de la table temporaire.
Par contre toujours le crash sur la partie jointure avec la grosse table:

select distinct a.ne,a.id from tempNonImprimee a inner join fac_histo b on b.dossier = a.ne;

A noter que cette table de 6 millions de lignes est régulièrement utilisée sans jamais poser de problème et qu'on peut encore aujourd'hui faire des requêtes dessus sans avoir de crash.


J'ai pensé à une corruption de table en lisant d'autres posts mais j'ai essayé la requête sur un autre environnement de test qui contient une copie de la base issue d'un pg_dump / psql -f et j'ai le même problème.


Nous utilisons postgresql 11.8 sur un environnement ubuntu 18.04.

Le problème peut-il venir d'une mauvaise configuration des paramètres du postgresql.conf ?

Merci pour votre aide

Hors ligne

#2 30/07/2021 17:58:27

gleu
Administrateur

Re : Segmentation fault

La première chose à faire est de mettre à jour votre version de PostgreSQL. La dernière version disponible pour la branche 11 est la 11.12

Si le problème continue avec la dernière version, il serait intéressant de tenter cette requête sur un serveur avec la config de base et sans extension installée.

Un autre test intéressant serait de voir si PostgreSQL arrive à générer le plan d'exécution (histoire de savoir si le problème vient de la planification ou de l'exécution).

Si aucune nouvelle information ne survient de ces différents tests, récupérer une stack trace serait un gros plus pour savoir où ça plante.


Guillaume.

Hors ligne

#3 31/07/2021 09:03:01

rjuju
Administrateur

Re : Segmentation fault

En cas de besoin voici un lien qui explique comment récupérer les informations utiles d'un coredump si la mise à jour de postgres ne suffit pas à résoudre le problème : https://wiki.postgresql.org/wiki/Gettin … ng_backend

Hors ligne

#4 31/07/2021 11:00:12

dev.isc84
Membre

Re : Segmentation fault

L'explain analyze ne fonctionne pas non plus (je rectifie mon précédent message).

J'ai fait le test sur une 13.3 sous ubuntu aussi, ça crash de la même façon, y compris sans les extensions.

Par contre j'ai essayé de créer en dur la table temporaire et là ... ça ne crash plus, la jointure passe sans problème.

C'est donc semble-t-il en lien avec le temporary table

Dernière modification par dev.isc84 (31/07/2021 17:13:00)

Hors ligne

#5 31/07/2021 17:27:16

dev.isc84
Membre

Re : Segmentation fault

Pour compléter: l'explain simple ne fait pas de segmentation fault, mais l'explain analyze oui.

Hors ligne

#6 01/08/2021 08:57:54

rjuju
Administrateur

Re : Segmentation fault

Sans scénario pour reproduire le problème localement et/ou un stack trace nous ne pouvons pas vous aider.

Hors ligne

#7 02/08/2021 18:40:27

dev.isc84
Membre

Re : Segmentation fault

Merci pour votre aide, je vais voir ce que je peux faire.

Hors ligne

#8 15/10/2021 14:41:39

c2main
Membre

Re : Segmentation fault

Avez-vous trouvé la cause du problème ? existe-t-il toujours ?

Il est toujours intéressant de remonter les bugs... Même sans coredump ou autres détails techniques. Avoir un scenario minimal est bienvenu, et a minima une description plus complète: requête SQL, définitions des tables et index, contenu du paramètre "shared_preload_libraries" et similaires (il faut savoir si des modules serveurs étaient chargés, comme pg_stat_statements ou auto-explain).

Dernière modification par c2main (15/10/2021 14:42:04)

Hors ligne

Pied de page des forums