Projet

Général

Profil

Bug #54808

pas de permissions pour SET deadlock_timeout

Ajouté par Frédéric Péters il y a presque 3 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
14 juin 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

2021-06-14 00:01:01,531 ERROR Failed to execute "SET deadlock_timeout = '10s'" with vars [], raised permission denied to set parameter
"deadlock_timeout" 

2021-06-14 00:01:01,531 ERROR failed to synchronize with https://demarches-collectivites-hautes-alpes.test.entrouvert.org/
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/wcs_olap/cmd.py", line 108, in main2
    olap_feeder.feed()
  File "/usr/lib/python3/dist-packages/wcs_olap/feeder.py", line 605, in feed
    self.ex("SET deadlock_timeout = '10s'")
  File "/usr/lib/python3/dist-packages/wcs_olap/feeder.py", line 338, in ex
    self.cur.execute(sql, vars=vars)
psycopg2.ProgrammingError: permission denied to set parameter "deadlock_timeout" 

Demandes liées

Lié à OLAP / Business Intelligence pour Publik - Development #54658: possibilité pour une mise à jour des données de se casser et laisser un schéma videFermé08 juin 2021

Actions

Historique

#1

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

  • Statut changé de Nouveau à Résolu (à déployer)

J'aurai du lire la doc1, SET deadlock_timeout n'est possible que par le superuser. Je viens de tester et on peut jouer avec ALTER USER xxx SET deadlock_timeout = '2s' pour avoir un setting qui ne s'applique que si un utilisateur particulier se connecte, mais bijoe et wcs-olap qui sont les deux acteurs du deadlock en question utilisent le même utilisateur.

Une autre possibilité serait de poser :

ALTER USER bijoe SET deadlock_timeout = '30s';
ALTER USER bijoe SET lock_timeout = '15s';

et de faire un SET lock_timeout = '30s' explicite dans wcs-olap, sachant que lock_timeout n'est pas réservé aux super-utilisateurs, et là wcs-olap pourra gagner son duel de verrou simplement sur le lock_timeout coté bijoe qui est plus court.

[1]: https://postgresqlco.nf/doc/fr/param/deadlock_timeout/


En attendant j'ai revert le commit :

commit b3a59edb54502429cc7688828fc0609ea7c0b3f1 (HEAD -> main, tag: v1.51, origin/main)
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Mon Jun 14 09:44:41 2021 +0200

    Revert "feeder: set deadlock_timeout to 10 seconds (#54658)" 

    This reverts commit c74766bf2c7a911ab04da9084231ef3397cb2964.


[2]: https://postgresqlco.nf/doc/fr/param/lock_timeout/
#2

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

  • Lié à Development #54658: possibilité pour une mise à jour des données de se casser et laisser un schéma vide ajouté
#3

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF