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

Thorben Thuermer r00t at constancy.org
Sat Dec 15 22:30:14 CET 2012


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.
> > (die middleware koennte die db-exception mal abfangen und eine sinnvollere
> >   meldung liefern...)
> >> Leider sind die Daten
> >> dann verloren und ich muss den vzlogger abschiessen und neu starten!
> > das ist nicht ganz nachzuvollziehen.
> > eigentlich sollte das kein problem sein, bzw nur einmalig auftreten,
> > wenn zB die bearbeitung eines requests mal zu lange dauert.
> > und danach sollte dann einfach mit dem naechsten messwert weitergeloggt werden.
> Bisher war es meistens (nicht immer!) so, dass der Fehler, nachdem er 
> das erste mal aufgetreten ist, immer wieder erfolgt. Es werden also 
> keine weiteren Daten geloggt.

das wuerde bedeuten, das bei jedem eintrag schon ein eintrag mit dem
timestamp existiert.
entweder sendet vzlogger wegen einem bug immer den gleichen timestamp...
da faellt mir auf:
es kann sein, das vzlogger wegen dem fehler immer wieder versucht,
die gleichen daten aus seinem puffer einzutragen -
das ist dann tatsaechlich ein bug.
log wuerde helfen.

> In diesem Zustand hat ein Neustart der Middelware nicht geholfen. Nur 
> der Neustart des vzloggers hilft!

die middleware als solche kann man garnicht "neu starten",
die sie aus einem php-script besteht, das fuer jeden request neu gestartet wird.

> > in jedem fall braeuchten wir dann mal die info, welche http-requests vzlogger
> > an die middleware sendet.
> > (log ausreichend hohem debug-level,  strace, oder wireshark...)
> Das kann ich mal machen. Welcher Log-Level wäre sinnvoll?

der muss so hoch sein, dass die requests mit daten drinstehen.
trage einfach mal 9999 ein und schaue ob das reicht.
(bin mir nicht sicher ob vzlogger die daten jemals loggt,
 deswegen alternativ strace oder wireshark.
 ("strace -f -s 9999 vzlogger -f 2>vzlogger.trace" ))

poste nebenbei auch mal deine config...?

- T.


More information about the volkszaehler-dev mailing list