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

#1 24/05/2017 16:50:55

Edouard H.
Membre

mémoire partagée corrompue sous Windows 7 SP1

bonjour

J'implémente sur mon laptop sous Windows 7 SP1 (16 Go RAM) une petite base de test sous PostgreSQL 9.5 / PgAdmin III v1.22 avec quelques données en nombre très limité et j'obtiens très (trop) souvent un message de déconnexion du serveur suite à un SELECT sur une vue par exemple. Le fichier de log indique l'exception 0xC0000005 (STATUS_ACCESS_VIOLATION) ainsi que le message "Le postmaster a commandé à ce processus serveur d'annuler la transaction courante et de quitter car un autre processus serveur a quitté anormalement et qu'il existe probablement de la mémoire partagée corrompue".

Je voudrais savoir quelles pistes de solution je peux investiguer pour remédier à cette erreur, par exemple modifier certains paramètres dans le fichier postgresql.conf ?
PS : je suis grand débutant en administration de bdd.

Merci pour votre aide

Edouard

Hors ligne

#2 24/05/2017 17:14:01

jmarsac
Membre

Re : mémoire partagée corrompue sous Windows 7 SP1

Bonjour,

Ce n'est probablement pas un problème PostgreSQL.  Si vous n'avez pas déjà modifié le fichier la configuration par défaut, je penserais plutôt à une barrette mémoire défaillante. Sinon, je reviendrais en priorité à la configuration par défaut.
L'erreur se produit-elle avec d'autres applications ?

Hors ligne

#3 24/05/2017 22:26:26

Edouard H.
Membre

Re : mémoire partagée corrompue sous Windows 7 SP1

Bonjour
Merci pour le retour.
Je n'ai pour l'instant pas modifié le fichier de configuration par défaut de postgresql.
Je n'ai jamais eu ce type d'erreur avec d'autres applications, mais j'utilise essentiellement des applications bureautiques sur ce laptop.
J'ai lancé l'outil Windows 7 de diagnostic de la mémoire qui n'a détecté aucune erreur (The Windows Memory Diagnostic tested the computer's memory and detected no errors)
Je n'obtiens pas d'erreur systématiquement lorsque je lance un select, mais plutôt lorsque je lance un select qui va nécessiter peut-être plus de ressources mémoire (jointure entre plusieurs tables, fonctions windows, ...)
Ne faut-il pas que j'alloue plus de ressources au serveur postgresql ? Si oui comment ?
Merci pour votre aide.
Edouard

Hors ligne

#4 25/05/2017 01:51:43

rjuju
Administrateur

Re : mémoire partagée corrompue sous Windows 7 SP1

Pouvez-vous nous transmettre un extrait du fichier log contenant les lignes au moment de l'incident ?

Hors ligne

#5 25/05/2017 23:00:17

Edouard H.
Membre

Re : mémoire partagée corrompue sous Windows 7 SP1

ci-dessous un extrait du fichier de log :

2017-05-24 16:11:11 CEST LOG:  le système de bases de données est prêt pour accepter les connexions
2017-05-24 16:15:44 CEST LOG:  processus serveur (PID 8748) a été arrêté par l'exception 0xC0000005
2017-05-24 16:15:44 CEST DÉTAIL:  Le processus qui a échoué exécutait : select * from v01_entitycontextinmultilevelcontextstructure

    where entitytype_code = 7 and entity_code = 1000000010 and releasedates @> '20200101' :: timestamp with time zone
2017-05-24 16:15:44 CEST ASTUCE :  Voir le fichier d'en-tête C « ntstatus.h » pour une description de la valeur
    hexadécimale.
2017-05-24 16:15:44 CEST LOG:  arrêt des autres processus serveur actifs
2017-05-24 16:15:44 CEST ATTENTION:  arrêt de la connexion à cause de l'arrêt brutal d'un autre processus serveur
2017-05-24 16:15:44 CEST DÉTAIL:  Le postmaster a commandé à ce processus serveur d'annuler la transaction
    courante et de quitter car un autre processus serveur a quitté anormalement
    et qu'il existe probablement de la mémoire partagée corrompue.
2017-05-24 16:15:44 CEST ASTUCE :  Dans un moment, vous devriez être capable de vous reconnecter à la base de
    données et de relancer votre commande.
2017-05-24 16:15:44 CEST LOG:  tous les processus serveur se sont arrêtés, réinitialisation
2017-05-24 16:15:44 CEST LOG:  le système de bases de données a été interrompu ; dernier lancement connu à 2017-05-24 16:11:10 CEST
2017-05-24 16:15:46 CEST LOG:  le système de bases de données n'a pas été arrêté proprement ; restauration
    automatique en cours
2017-05-24 16:15:46 CEST LOG:  longueur invalide de l'enregistrement à 0/269D770
2017-05-24 16:15:46 CEST LOG:  la ré-exécution n'est pas nécessaire
2017-05-24 16:15:46 CEST LOG:  Les protections sur la réutilisation d'un membre MultiXact sont maintenant activées
2017-05-24 16:15:46 CEST LOG:  lancement du processus autovacuum
2017-05-24 16:15:46 CEST LOG:  le système de bases de données est prêt pour accepter les connexions

Hors ligne

#6 26/05/2017 09:03:09

rjuju
Administrateur

Re : mémoire partagée corrompue sous Windows 7 SP1

Si effectivement le matériel n'est pas en cause, il serait intéressant d'obtenir une stack trace pour voir d'où vient le problème exactement.

Vous pouvez utiliser ce lien pour voir comment obtenir une stack trace sous windows : https://wiki.postgresql.org/wiki/Gettin … on_Windows

Sinon, avez-vous bien installé la dernière version mineure disponible (9.5.7), et avez-vous des extensions chargées ? (select setting from pg_settings where name = 'shared_preload_libraries').

Hors ligne

Pied de page des forums