Project

General

Profile

Bug #193

Race condition i ting.module

Added by Rune Philosof over 5 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Estimated time:
URL med eksempel:
Kategorier:
Integration - Brønd - Søg, rankér filtrér sortér, Søgning - Søgeresultat efter søg - Brønd

Description

Vi har oplevet følgende fejl af og til:
"... PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0' for key 'vid': INSERT INTO {ting_object} ..."

Når det sker skal vi finde tabellen ting_object og slette rækken med vid == 0.

Jeg tror det sker på grund af at https://github.com/ding2/ting/blob/master/ting.controllers.inc#L109 ikke sker i en transaction.

109          drupal_write_record('ting_object', $ting_object);
110          drupal_write_record('ting_object_revision', $ting_object);
111          db_update('ting_object')
112            ->fields(array('vid' => $ting_object['vid']))
113            ->condition('tid', $ting_object['tid'])
114            ->execute();

History

#1 Updated by Rolf Madsen over 5 years ago

  • Status changed from New to Open (waiting)
  • Target version set to 1

Lad os få analyse og et estimat på den og finde ud af om den skal prioriteres inden lancering.

#2 Updated by Rolf Madsen over 5 years ago

Rune, kan du lægge et link ind og evt. version/udgave af ding så vi har en ide om i hvilket miljø det er testet mv.?

#3 Updated by Rune Philosof over 5 years ago

Hvad vil du gerne have at jeg linker til?
Vi har en noget speciel udgave af ding2, men den kode i ting.module, som jeg tror giver fejlen er ens.
Jeg kan ikke genskabe det, men jeg har oplevet det omtrent tre gange (dog efterhånden lang tid siden dvs. 2013).
Da jeg skrev om det på skype d. 21. februar 2014 svarede Ewan at han også havde oplevet det:
[21-02-2014 12:06:40] Ewan Andreasen: Det har jeg også fundet ud af at gøre, når den smed den fejl. Jeg tænker man måske burde lave de 2 SQL-statements til en transaction, så de vil fejle samlet istedet for som nu med en sjælden mulighed for at det går galt... For det låser faktisk siden af på bestemte ting objects! Jeg har dog også prøvet at fejlen forsvinder af sig selv, så måske der er smidt en slags cleanup ind et sted i koden nu.

#4 Updated by Rune Philosof over 5 years ago

Det vil nok tage et par timer at genskabe problemet, hvis det er rigtigt analyseret at fejlen sker i de linier.
Hvis rettelsen bare består i at lave de tre sql kommandoer i en transaktion, så tager det måske ikke mere end en time.

Så skal der vel også sættes tid af til at sætte sig ind i den omliggende kode osv.

Så jeg skyder på et sted mellem 1 og 10 timer, afhængig af hvor grundig man vil være.

#5 Updated by Rolf Madsen over 5 years ago

  • Status changed from Open (waiting) to 8
  • Assignee set to Rune Philosof

#6 Updated by Rune Philosof over 5 years ago

Hvad betyder det at du har tildelt opgaven til mig?

#7 Updated by Rolf Madsen over 5 years ago

  • Target version changed from 1 to DDB CMS 2014.1

#8 Updated by Rolf Madsen over 5 years ago

  • Assignee changed from Rune Philosof to Gitte Barlach

Gitte, kan i bedømme konsekvensen af fejlen og give input til prioritering?

#9 Updated by Rolf Madsen over 5 years ago

  • Target version changed from DDB CMS 2014.1 to Lokal eller projektudvikling udenfor vedligeholdsopgaven

#10 Updated by Rolf Madsen over 4 years ago

  • Target version changed from Lokal eller projektudvikling udenfor vedligeholdsopgaven to DDB CMS - Analyse og prioritering udestår

#11 Updated by Rolf Madsen over 3 years ago

  • Kategorier Integration - Brønd - Søg, rankér filtrér sortér, Søgning - Søgeresultat efter søg - Brønd added

#12 Updated by Rolf Madsen over 2 years ago

  • Status changed from 8 to Closed

Hvis ingen protesterer lukkes dette issue hermed.

Also available in: Atom PDF