Projet

Général

Profil

Actions

Anomalie #5206

fermé

Concurrence sur docperm

Ajouté par Éric Brison il y a plus de 11 ans. Mis à jour il y a plus de 11 ans.

Statut:
Intégré
Priorité:
Normal
Assigné à:
Version cible:
Début:
18/11/2014
Echéance:
% réalisé:

100%

Temps estimé:
Version source:
Solution proposée:

Ajouter un lock exclusif dans la méthode DocCtrl::computeDProfil()
$this->savePoint("docperm");
simpleQuery($this->dbaccess, "lock TABLE docperm in exclusive mode ");
foreach ($tuid as $ku => $uid) {
...
$perm->add();
...
}

$this->commitPoint("docperm");

Principaux fichiers impactés:

Class.DocCtrl.php

Complexité:
Contrôle:

Lancer un stress psur une action qui recalcule les profil

Thème:
Socle technique
Régression:

Description

L'erreur peut provenir lors d'accès concurrent entraînant un recalcul des profils.

exec_query :insert into docperm(docid,userid,upacl) values (E'338593',E'16',E'8')
 [W] Dynacase:DbObj:docperm: []  : PostgreSQL Error : {DB0001} query error : ERREUR:  la valeur d'une clé dupliquée rompt la contrainte unique « idx_perm » DETAIL:  La
 clé « (docid, userid)=(338593, 16) » existe déjà.

Demandes liées 1 (0 ouverte1 fermée)

Lié à Core - Amélioration #5286: Verrouillage table docrelRésoluÉric Brison18/12/2014

Actions

Mis à jour par Éric Brison il y a plus de 11 ans

  • Statut changé de Analysé à Intégré
  • % réalisé changé de 0 à 100

Appliqué par commit dynacase-core|commit:85a03fb8772a22322b4d143f68747d396840c62b.

Actions

Formats disponibles : Atom PDF