Ergebnis 1 bis 15 von 15

Thema: Duplicate Entry Error in visitors

  1. #1
    Contao-Fan Avatar von Fehrmann
    Registriert seit
    04.07.2009.
    Ort
    Wismar
    Beiträge
    580
    Contao-Projekt unterstützen

    Support Contao

    Standard Duplicate Entry Error in visitors

    Hallo,

    ich verwende ein Contao 2.10.4 und das Modul visitors in der Version 2.6.0 Build 6 (aktuell). Ich erhalte auf einer Webseite die schon länger im Einsatz ist folgende Fehlermeldung:

    PHP-Code:
    Fatal errorUncaught exception Exception with message Query errorDuplicate entry '1' for key 'vid' (INSERT INTO tl_visitors_searchengines (vidtstampvisitors_searchenginevisitors_keywordsVALUES ('1'1331840631'Google''mensakeller')) thrown in /home/www/web169/html/mensakeller/system/libraries/Database.php on line 689 
    #0 /home/www/web169/html/mensakeller/system/libraries/Database.php(663): Database_Statement->query()
    #1 /home/www/web169/html/mensakeller/system/modules/visitors/ModuleVisitorsTag.php(477): Database_Statement->executeUncached()
    #2 /home/www/web169/html/mensakeller/system/modules/visitors/ModuleVisitorsTag.php(101): ModuleVisitorsTag->VisitorCheckSearchEngine('1')
    #3 /home/www/web169/html/mensakeller/system/libraries/Controller.php(2231): ModuleVisitorsTag->ViReplaceInsertTags('cache_visitors:...')
    #4 /home/www/web169/html/mensakeller/system/modules/frontend/FrontendTemplate.php(182): Controller->replaceInsertTags('...')
    #5 /home/www/web169/html/mensakeller/system/modules/frontend/PageRegular.php(168): FrontendTemplate->output()
    #6 /home/www/web169/html/mensakeller/index.php(200): PageRegular->generate(Object(DB_Mysqli_Result))
    #7 /home/www/web169/html/mensakeller/index.php(319): Index->run()
    #8 {main} 
    Ein direkter Aufruf der Domain ist ohne Fehler. Der Fehler tritt auf, wenn ich beispielsweise über Google komme.

    Ich mach mich selbst auf die Suche der Ursache, aber vielleicht weiss jemand Rat.

    Nachtrag: Ich konnte das Problem mit dem 'Reparieren' der Tabelle tl_visitors_searchengines im PhpMyAdmin beheben. Ich bin mir aber nicht sicher, ob es nicht wieder auftreten wird.

    Viele Grüße
    R.Fehrmann
    Geändert von Fehrmann (15.03.2012 um 20:29 Uhr)
    Software-Entwickler Backend/Frontend

  2. #2
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Ein Programmfehler kann ich ausschließen, da über die Spalte "vid" kein Unique Key liegt, eine Eindeutigkeit ist also nicht definiert.
    Daher kann es zu so einer Meldung nur kommen, wenn die Tabelle beschädigt war.

    Wie es nun dazu kam, kann wohl niemand sagen.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Contao-Fan Avatar von Fehrmann
    Registriert seit
    04.07.2009.
    Ort
    Wismar
    Beiträge
    580
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo,

    ich werde das Problem weiter im Auge behalten und versuchen zu analysieren, warum die Datenbank beschädigt wurde. Sollte ich diesbezüglich weitere Informationen haben, dann werde ich das hier wiedergeben.

    Viele Grüße
    R.Fehrmann
    Software-Entwickler Backend/Frontend

  4. #4
    Contao-Nutzer
    Registriert seit
    11.04.2010.
    Beiträge
    64

    Standard

    ich bekomme die selbe Meldung, allerdings seit dem Update des Visitor Models auf 2.7.1 (in contao 2.10.4) und in etwas anderer Ausführung als der OP (beim ihm scheint das Problem ein doppelt Eintrag bei den Suchmachinen etc zu sein)

    nach den Update bietet er die Aktualisierung der DB an:

    Code:
    ALTER TABLE `tl_visitors_counter` ADD UNIQUE KEY `vid_date` (`vid`, `visitors_date`);
    	
    ALTER TABLE `tl_visitors_counter` DROP INDEX `vid`;
    Wenn ich das ADD_UNIQUE_KEY ausführe bekomme ich die duplicate Entry Fehlermeldung:

    Code:
    Fatal error: Uncaught exception Exception with message Query error: Duplicate entry '2-2010-06-27' for key 2 (ALTER TABLE `tl_visitors_counter` ADD UNIQUE KEY `vid_date` (`vid`, `visitors_date`);) thrown in /xxxx/xxxxx/xxxxx/xxxxx/xxxxxxxx/htdocs/cms/system/libraries/Database.php on line 689
    Ich benutze je ein visitors Modul für die deutsch-sprachige Website und eins für die englisch-sprachige. Beide Module haben Einträge für den 27.06.2010.

    Die Extensionlist sagt mir, die Erweiterung (und alle dazugehörigen Komponenten) wäre aktuell (2.7.1 Build 9)

    ETA: im Modul für den deutschen Counter gibt es tatsächlich zwei Einträge für den 27.06.2010 (wie auch immer der zustande gekommen ist) (siehe angehängter Screenshot).
    Angehängte Grafiken Angehängte Grafiken
    Geändert von StummerWinter (08.10.2012 um 10:32 Uhr)

  5. #5
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Die Version 2.7.1 bringt eine DB Änderung mit, es wird ein Index ""vid" gelöscht und dafür ein Unique Index "vid_date" angelegt.
    VORHER sollte jedoch per runonce gesteuert die eventuell doppelten Einträge korrigiert werden.

    Scheinbar war das hier aber nicht der Fall, was ich aber nicht verstehen kann.
    Bitte mal prüfen, ob im Verzeichnis /system/modules/visitors/config eine Datei runonce.php liegt. (sollte nicht mehr wenn ausgeführt).

    Dann mal prüfen wenn du kannst mit einem DB Tool deiner Wahl (phpmyadmin,mysql query, ...) und folgendem Statement :
    Code:
    SELECT `vid`,`visitors_date`,count( `id` ) as Anzahl 
    FROM `tl_visitors_counter` 
    GROUP BY 1,2 
    HAVING count( `id` ) >1;
    und hier kurz das Ergebnis posten.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  6. #6
    Contao-Nutzer
    Registriert seit
    11.04.2010.
    Beiträge
    64

    Standard

    Hallo Bugbuster,

    danke fürs schnelle Feedback.

    die runonce.php liegt noch da.
    Kann es sein, dass die auf Grund einer Rechteproblematik evtl. nicht ausgeführt wurde/wird?

    An DB kommt ich leider frühestens erst heute Abend ran.

  7. #7
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Normalerweise wird dies aufgerufen direkt vor dem DB Update, egal ob man das manuell macht oder automatisch.

    Wenn du dich ins Backend einloggst und auf Erweiterungsverwaltung gehst und dann auf Datenbank aktualisieren, sollte die Datei aufgerufen und anschließend gelöscht werden bevor die DB Update Anzeige kommt.
    Es erfolgt dann auch ein Eintrag im System-Log.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  8. #8
    Contao-Nutzer
    Registriert seit
    11.04.2010.
    Beiträge
    64

    Standard

    Guter Tipp.
    Also hab ich mir mal die /cms/system/logs/error.log angeschaut:

    habe Update DB gemacht->kein Update im Log (letzte Version von heute 11:27)
    dann via wieder ADD_VALUE_KEY damit die Exceptions kommt ->Update im Log (letze 13:27) Version (aber nur Eintrag der Fehlermeldung)

    runonce.php ist auch noch da.

    hmm...

  9. #9
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Welche Contao Version hast du?
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  10. #10
    Contao-Nutzer
    Registriert seit
    11.04.2010.
    Beiträge
    64

    Standard

    2.10.4 ist im Einsatz.

  11. #11
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Hmm, dann verstehe ich nicht, warum der die runonce nicht ausführt. Entweder wirklich ein rechte Problem, dazu sind aber nur reine leserechte nötig oder ein Fehler in der runonce.php selbst die zum Abbruch führen.

    Ansonsten, wenn du den Fehler per Hand loswerden willst, die doppelten Zeilen suchen (siehe meine Abfrage, die listet dir die Kombination auf von vid und visitors_date aller doppelten).
    Damit dann die doppelten Zeilen anzeigen lassen, eine davon löschen und den Wert in der visitors_hit Spalte vorher merken und auf der anderen Zeile addieren.
    Wenn eine der beiden Zeilen nur einen Wert von 1 hat und dir wäre diese Ungenauigkeit egal, dann reicht natürlich auch die Zeile mit dem visitors_hit=1 Wert zu löschen (von den doppelten)

    Danach, wenn das für alle doppelten erfolgt ist, das DB Update durchführen.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  12. #12
    Contao-Nutzer
    Registriert seit
    11.04.2010.
    Beiträge
    64

    Standard Heureka!

    Nachdem strato der Hoster ist und ich jetzt schon dachte ich müsste PHPmyAdmin verwzweifeln. Hab ich es anders gelöst bekommen.

    Geholfen hat mir Bugbusters Dokumentation:http://www.contao.glen-langer.de/runonce.html

    und zwar dieser Teil:
    Installiert man eine Erweiterung manuell oder macht ein manuelles Update von Contao, muss wie üblich die install.php aufgerufen werden, bzw. im Backend über Erweiterungsverwaltung - Datenbank aktualisieren, um den Vorgang auszulösen.
    Ich hab mal das Installtool aufgerufen und das Update Database von dort ausgeführt, was auch ohne Fehler geklappt hat.
    Die runonce.php ist aus der system/modules/visitors/config nun auch weg.

    Ich kann mich leider nicht mehr erinnern ob ich damals die Erweiterung evtl. manuell installiert hatte (oder kann man das irgendwo sehen). Würde mich aber sehr wundern...

    Auf jeden Fall ist die DB jetzt aktuell und alles funzt. Vielen Dank nochmal. BugBuster.

    Vielleicht hilft mein Lösungsansatz ja auch dem OP...

  13. #13
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von StummerWinter Beitrag anzeigen
    Ich kann mich leider nicht mehr erinnern ob ich damals die Erweiterung evtl. manuell installiert hatte (oder kann man das irgendwo sehen). Würde mich aber sehr wundern...

    Wenn die Erweiterung manuell installiert wurde, taucht sie nicht in der Erweiterungsverwaltung auf.
    Geändert von Flex (09.10.2012 um 14:10 Uhr)

  14. #14
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Flex Beitrag anzeigen
    Wenn die Erweiterung manuell installiert wurde, taucht sie nicht in der Erweiterungsverwaltung auf.
    Das ist normal und liegt an Contao. Die Erweiterungsverwaltung ist auch selbst nur eine Erweiterung die von Handinstallationen nun mal nichts mitbekommt.
    Über eine nachträgliche Eintragung in die entsprechenden Tabellen wurde schon öfters diskutiert, das ging aber eh nicht vollständig.

    Man kann allerdings über den Katalog die Erweiterung einfach nochmal drüberinstallieren, dann ist der Eintrag vorhanden.

    Edit: ach jetzt merk ich worauf du hinaus wolltest... Wenn die Erweiterung dort nicht auftaucht, dann ist das ein Indiz dafür, dass diese manuell installiert wurde.
    Geändert von BugBuster (09.10.2012 um 14:11 Uhr)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  15. #15
    Contao-Nutzer
    Registriert seit
    11.04.2010.
    Beiträge
    64

    Standard

    Ich hatte es so verstanden, wie flex es meinte . Da sie brav in der Erweiterungsliste auftaucht, müsste man demnach davon ausgehen, dass es keine manuelle Installation war.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •