[vz-dev] Request failed: [400] PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ... for key 'ts_uniq'

Thorben Thuermer r00t at constancy.org
Tue Dec 18 22:48:28 CET 2012


On Tue, 18 Dec 2012 20:08:56 +0100 xdiwi <xdiwi at gmx.net> wrote:
> das Problem ist heute wieder aufgetreten! Den entscheidenden Bereich aus 
> dem Log-File findet Ihr im Anhang. Ich hoffe der Log hilft weiter!

alles nichts neues.

workaround fuer dich:
http://volkszaehler.org/pipermail/volkszaehler-dev/2012-December/002210.html

zum beheben des problems:
http://volkszaehler.org/pipermail/volkszaehler-dev/2012-December/002211.html

> Viele Grüße
>     Dieter

- T.

> Am 17.12.2012 21:10, schrieb Thorben Thuermer:
> > On Sat, 15 Dec 2012 22:38:06 +0100 xdiwi <xdiwi at gmx.net> wrote:
> >> Am 15.12.2012 22:30, schrieb Thorben Thuermer:
> >>> On Sat, 15 Dec 2012 22:21:48 +0100 xdiwi <xdiwi at gmx.net> wrote:
> >>>> Am 15.12.2012 22:00, schrieb Thorben Thuermer:
> >>>>> On Sat, 15 Dec 2012 21:45:49 +0100 xdiwi <xdiwi at gmx.net> wrote:
> >>>>>> Es kommt immer wieder zu obiger Fehlermeldung.
> >>>>> die meldung bedeutet einfach, das versucht wurde zwei werte mit identischem
> >>>>> zeitstempel in die datenbank einzutragen.
> >>> es kann sein, das vzlogger wegen dem fehler immer wieder versucht,
> >>> die gleichen daten aus seinem puffer einzutragen -
> >>> das ist dann tatsaechlich ein bug.
> >> Ich habe gerade mal das Log-File durchgeschaut und ja, vzlogger versucht
> >> immer wieder die selben Daten mit dem selben Timestamp zu loggen!
> >
> > als workaround, bis wir einen korrekten fix zustande bekommen,
> > koenntest du in vzlogger/src/threads.c ab zeile 201 ("/* check response */")
> > grosszuegig den code auskommentieren/entfernen/bearbeiten,
> > so dass unabhaengig von der serverantwort der puffer geleert wird.
> > (bei einem zaehler der absolute werte liefert, ist es ohnehin nicht so
> >   kritisch, wenn mal einzelne werte fehlen...)
> >
> > am einfachsten waehre wohl, folgende zeile einzufuegen:
> > @@ -210,6 +210,7 @@ void * logging_thread(void *arg) {
> >                          else {
> >                                  print(log_error, "Request failed: %i", ch, http_code);
> >                          }
> > +                       ch->buffer.sent = last->next;
> >                  }
> >                  else {
> >                          print(log_debug, "Request succeeded: %i", ch, http_code);
> >
> > (also: auch im fehlerfall den puffer leeren.)
> Ich werde dies mal einbauen und testen (kann aber ein paar Tage dauern)!
> >
> > - T.
> >
> 


More information about the volkszaehler-dev mailing list