MySQL error 1062

Gesperrt
woddel
Beiträge: 87
Registriert: Mi 2. Jun 2004, 10:49
Kontaktdaten:

MySQL error 1062

Beitrag von woddel » Mo 19. Mär 2012, 22:06

Hallo!

Ich habe im Moment ein Problem mit einer Contenido-Installation.
Zuweilen bekomme ich einen MySQL error 1062: Duplicate entry
nicht oft, aber zwei bis drei Einträge habe ich immer, manchmal in kurzer Zeit.

Code: Alles auswählen

[19-Mar-2012 19:32:11] /weiterbildung/index.html?a=53&level=1 MySQL error 1062: Duplicate entry '106161' for key 1
INSERT INTO con_code (idcode, idcatart, code, idlang, idclient) VALUES ('106161', '58','   ... ca 63.000 Zeichen Code! ...   ', '3', '2')
Und in unregelmäßigen Abständen wird der Server lahm - heute auch Internal Server error 500.

Grundsätzlich interessiert mich wann in die con_code geschrieben wird und ob ich irgendwie einfluss darauf habe.
Könnte z.B. sein, dass ein Modul spinnt.

Folgende Eckdaten:
  • 2 Mandanten in zwei Verzeichnissen.
  • Contenido Version 4.8.15
  • Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r
  • Installierte PHP-Version 5.2.17
  • memory_limit 104M
  • max_execution_time 0
  • Deaktivierte Funktionen nichts deaktiviert
  • Gettext Erweiterung geladen
  • sql.safe_mode Deaktiviert
Liegt bei Strato.

Zwei Module greifen auch auf die Daten des anderen Mandanten zu.
Einige Module nutzen dynamische Modulaufrufe :

Code: Alles auswählen

$cms_html = make_cms_type("CMS_HTML",$textnummer."");
Ich bin gerade etwas ratlos und unangenehm ist , dass nicht wenig Verkehr auf der Seite ist.
Mit den SQL-Dingen bin ich nicht gut bewandert.
hat jemand einen Tip?

Ich habe gelesen, das der SQL-Fehler im Zusammenhang mit session-ID's auftaucht,
aber das scheint ja hier nicht die Baustelle zu sein.
Vielen Dank schonmal!

Woddel
woddel

woddel
Beiträge: 87
Registriert: Mi 2. Jun 2004, 10:49
Kontaktdaten:

Re: MySQL error 1062

Beitrag von woddel » Mi 28. Mär 2012, 03:51

Hallo!
Hat nicht vielleicht doch noch jemand eine Ahnung wann und mit welchen Gesetzmäßigkeiten in die con_code geschrieben wird?
Ich tappe völlig im dunkeln...

Schöne Grüße
woddel
woddel

woddel
Beiträge: 87
Registriert: Mi 2. Jun 2004, 10:49
Kontaktdaten:

Re: MySQL error 1062

Beitrag von woddel » Di 10. Apr 2012, 23:31

Hallo!
Ich habe inzwischen festgestellt, das der Fehler nur bei Seitenaufrufen meines 2. Mandanten auftritt.
Nicht selten tritt der Fehler in der gleichen Sekunde bis zu 3x auf.
Und dann wieder für 2-3 Stunden nicht.

Es waren im März übrigens 42348 Hits - macht gut 1300 pro Tag
An "schlimmen" Tagen habe ich bis zu 16 Fehler dieser Art.


Schöne Grüße
Woddel
woddel

Oldperl
Beiträge: 4102
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: MySQL error 1062

Beitrag von Oldperl » Mi 11. Apr 2012, 10:02

Hallo Woddel,

das ist ohne einen näheren Blick darauf zu werfen sehr schwer nachzuvollziehen, zumal du selbst sagts, das es Querverbindungen zwischen deinen Mandanten liegt. Offensichtlich funktioniert hier aus irgendeinem Grund die Arbeit des Systems mit der con_code nicht korrekt. Ob das nun ein Bug der 4.8.15 ist oder an einer deiner Erweiterungen hängt ist ohne konkreten Zugriff auf das System nicht zu sagen.

Gruß aus Franken

Ortwin
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

woddel
Beiträge: 87
Registriert: Mi 2. Jun 2004, 10:49
Kontaktdaten:

Re: MySQL error 1062

Beitrag von woddel » Mi 11. Apr 2012, 10:25

Das es an den Querverbindungen liegt war eine Vermutung.
Inzwischen habe ich ja festgestellt, dass nur ein Mandant (der zweite) die Fehler erzeugt, diesen aber manchmal 3x in einer Sekunde hintereinander bei unterschiedlichen Artikeln.
Das spricht eher gegen eine "Kollision" der Mandanten.

Ein bestimmtes Layout, Template oder Modul das immer darin vorkommt habe ich bis jetzt nicht ausmachen können.

Eine Frage zum Debugging - gibt es eventuell eine Variable bzw. ein Array in dem alle verwendeten Module des Templates aufgeführt sind?
Dann könnte ich mir das als Kommentar im HTML ausgeben lassen und damit wären vermutlich die jeweils verwendeten Module im Errorlog ersichtlich, weil das was in die con_code geschrieben werden sollte ja im Errorlog landet..

Und mich ich würde wie gesagt einfach mal interessieren, wann in die con_code geschrieben wird bzw. wie da die entry-nummer erzeugt wird.
Da könnte man sich mal auf die Fährte legen...

Ob die Hänger des Systems - die mir in letzter Zeit nicht mehr aufgefallen sind - damit zusammenhängen ist auch nicht gesichert.
Die beschriebenen Fehler sind nur die einzigen die protokolliert werden.

Aber schon mal Danke für's Feedback überhaupt!

Gruß - auch aus Franken
Woddel
woddel

Oldperl
Beiträge: 4102
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: MySQL error 1062

Beitrag von Oldperl » Do 12. Apr 2012, 03:48

woddel hat geschrieben:Und mich ich würde wie gesagt einfach mal interessieren, wann in die con_code geschrieben wird bzw. wie da die entry-nummer erzeugt wird.
Also Contenido schreibt normalerweise in die con_code wenn
  • kein Eintrag gefunden wird
  • eine vorgegebene Zeit abgelaufen ist
  • Inhalte erstellt oder verändert wurden (z.B. CMS_Types)
  • sich Modul- oder Templatezuordnungen verändert haben
Das geschieht entweder direkt oder per Merker bei der nächsten Erstellung des entsprechenden Artikels, wobei bereits vorhandene Einträge überschrieben/upgedatet werden. Bei jedem Neueintrag in die con_code soll dann der Id-Zähler in der con_sequence als nächste Id verwendet und im Anschluss um 1 erhöht werden.
Wenn es dabei irgendwo zu Kollisionen mit Modulen oder Plugins kommt, könnte dieses Verhalten umgangen werden. Warum es sich nur bei einem 2. Mandanten zeigt kann ich aus dem Stegreif nicht nachvollziehen. Hier wäre zu testen ob sich das Verhalten ebenfalls bei 2 Inhaltsgleichen Mandanten zeigt bzw. ob Unterschiede der beiden Mandanten ausschlaggebend sind.

Gruß aus Franken

Ortwin
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

woddel
Beiträge: 87
Registriert: Mi 2. Jun 2004, 10:49
Kontaktdaten:

Re: MySQL error 1062

Beitrag von woddel » So 15. Apr 2012, 23:24

Oldperl hat geschrieben:Also Contenido schreibt normalerweise in die con_code wenn ...
  • Inhalte erstellt oder verändert wurden (z.B. CMS_Types)
Kann ein solcher Code

Code: Alles auswählen

   for($i=$von; $i<$bis; $i++){
         make_cms_type("CMS_HTML",$i)
}
sich eventuell verhaspeln?

Schönen Gruß
Woddel
woddel

Oldperl
Beiträge: 4102
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: MySQL error 1062

Beitrag von Oldperl » Mo 16. Apr 2012, 06:24

Hallo woddel,

das kommt ganz darauf an, was in der Funktion

Code: Alles auswählen

make_cms_type("CMS_HTML",$i)
gemacht wird.
Nur diese paar Codezeilen, die du da gepostet hast, sollten keine Probleme verursachen.

Gruß aus Franken

Ortwin
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

woddel
Beiträge: 87
Registriert: Mi 2. Jun 2004, 10:49
Kontaktdaten:

Re: MySQL error 1062

Beitrag von woddel » Mo 16. Apr 2012, 13:29

Hallo!

In einem Modul erzeuge ich in einer Schleife mehrere Headlines, Texte oder Bilder.
In einem anderen erzeuge ich eine Kombination aus Headline, Subheadline, Bild und Text.
Das habe ich schon öfter gemacht und eigentlich keine Probleme damit, aber noch nicht mit mehreren Mandanten.

Ich hatte nur die Idee weil du geschrieben hattest,
"wenn Inhalte erstellt oder verändert wurden (z.B. CMS_Types) wird in die con_code geschrieben."
Wenn das nun schon während der Laufzeit der Schleife passiert... (?)

Allerdings hat der erste der beiden Mandanten das Problem offensichtlich nicht.

Danke fürs posten!

Woddel
woddel

Oldperl
Beiträge: 4102
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: MySQL error 1062

Beitrag von Oldperl » Mo 16. Apr 2012, 14:09

woddel hat geschrieben:Wenn das nun schon während der Laufzeit der Schleife passiert... (?)
Also in der von dir angegebenen Schleife wird sowas wohl nicht gemacht, wobei man die Funktion sehen müßte. Normalerweise wird sowas erst beim Aufruf der entsprechenden CMS-Typ store-Funktion gemacht.
Da ich aber immer nicht weiß inwieweit bei Modulen mit "Bordmitteln" gearbeitet wird, ist es natürlich auch nicht immer möglich alle möglichen Ursachen auf Anhieb hier zu benennen.

Angenommen dieser Fehler tritt nachvollziehbar immer bei einem 2. Mandanten in Contenido auf, so wäre das ein Bug in Contenido. Vielleicht solltest du mal parallel eine 4.8.15 installieren und zum Demo noch einen 2. Mandanten einrichten, dann könntest du das Testen.

Gruß aus Franken

Ortwin
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Gesperrt