0x1b - ESCAPE
HTML PDF Postscript
 Zope zickt 
Computer Geschrieben von Beat Rubischon am Dienstag, 1. November 2005, 09:33
aus dem ärger-am-laufmeter dept.

Ein Sicherheitsproblem brachte mich auf die Idee, mein Zope upzugraden. Leider nur mit berenztem Erfolg.

Zope 2.8.4 lief keine 24 Stunden, dann knallte es und Priska kam massiv ins Schwitzen während meines Trainings. Jahrelange Erfahrungen mit Computern haben aber dafür gesorgt, dass sie kaltblütig und mit Hilfe aus dem IRC die Sache in den Griff bekam. Ein Fall von kaputter Software - die Eingriffe in die ZODB waren wohl etwas zu heftig und noch nicht 100% ausgereift. Zope 2.8.3 ist hingegen rocksolid und läuft nun schon drei Tage am Stück.

Dafür hatte ich aber schon etwas länger Probleme mit MySQL. Scheint eine Spätfolge meiner Sarge Migration zu sein. Zope warf den Besuchern periodisch einen Keying Error mit völlig abstrusen Werten an den Kopf - als ob die Query Daten zwischen den Threads verschleppt wurden. Weder der Restart von Zope noch von MySQL brachte Abhilfe. Ich habe jetzt das python-mysql Modul neu gebaut und gegen die Sarge Library von MySQL gelinkt:

max:~# dpkg -P libmysqlclient10-dev
max:~# apt-get install libmysqlclient12-dev
cms@max:~/src/MySQL-python-1.2.0$ rm -Rf build/
cms@max:~/src/MySQL-python-1.2.0$ python setup.py build
cms@max:~/src/MySQL-python-1.2.0$ python setup.py install --force


Hoffen wir dass es hilft.

Permalink

Das Kleingedruckte: Der Besitzer der folgenden Kommentare ist wer immer sie eingeschickt hat. Wir sind in keiner Weise für sie verantwortlich.

  • beat@0x1b.ch Re: Zope zickt
    Geschrieben von Beat Rubischon am Dienstag, 1. November 2005, 17:31

    Hoffen wir dass es hilft.

    Hat nicht geholfen :-(

    Crashen tut der SQL Result Cache in Zope selbst, der mir für die Bewertung ziemlich viel Last von der Datenbank nimmt. Abschalten des Caches ist daher nicht wirklich die Lösung...

    Ich habe jetzt ZMySQLDA auf die aktuelle Beta upgegradet. Im Changelog steht da etwas:

    Wrap queries with a lock to prevent multiple threads from using the connection simultaneously (this may or may not be happening).

    *hoff*

  • beat@0x1b.ch Re: Zope zickt
    Geschrieben von Beat Rubischon am Mittwoch, 2. November 2005, 08:17

    Hoffen wir dass es hilft.

    OK, nächster Versuch. Eine Analyse des Tracebacks zeigte ein Problem in Zope/lib/python/Shared/DC/ZRDB/DA.py, Zeile 375. Nach einem Tipp von Marius ist jetzt ein try drumrumgeschachtelt:

    --- DA.py.orig 2005-11-02 08:06:59.000000000 +0100
    +++ DA.py 2005-11-02 08:08:24.000000000 +0100
    @@ -372,8 +372,11 @@
                     key=keys[-1]
                     q=tcache[key]
                     del tcache[key]
    -                if int(cache[q][0]) == key:
    -                    del cache[q]
    +                try:
    +                    if int(cache[q][0]) == key:
    +                        del cache[q]
    +                except:
    +                    pass
                     del keys[-1]
     
             if cache.has_key(query):

    Das Warten auf den nächsten Crash hat wieder begonnen...

    Klicken um Attachment herunterzuladen traceback.txt 1KB (1506 bytes)



    • beat@0x1b.ch Re: Zope zickt
      Geschrieben von Beat Rubischon am Donnerstag, 3. November 2005, 08:06

      Zope/lib/python/Shared/DC/ZRDB/DA.py, Zeile 375.

      Das war's. Nachdem ich gestern Abend den Patch nicht nur auf die Sourcen, sondern auch auf die installierte Zope-Instanz angewendet hatte, funktionierte das ganze auch wie gewollt. Das Errorlog ist auch nach einer Nacht leer ;-)