Folgende Ausgangslage:
* Tomcat mit Testversion der Groupware ist gekoppelt an eine MySQL-4-DB mit MyISAM (etwas ältere Kopie der Produktivdatenbank)
* Tomcat mit Produktivgroupware ist verheiratet mit einer MySQL-5-DB mit InnoDB
(klar, Versionsunterschiede zwischen Test- und Produktivversion sind absolut unschön, aber manchmal einfach Realität)
Auf der Testversion lief das neue Zeiterfassungsmodul einwandfrei, heute morgen kam dann auf der frisch upgedateten Produktivversion der große Crash: Es waren keine Zeitbuchungen möglich (alle echten Profile galten ab dem 1. August, warum da noch mal aufwändige Tests durchführen? Läuft ja alles).
Da die beiden Tomcat-Umgebungen absolut identisch sind, konnte an sich nur die Datenbank das Problem sein, und ab dann wurde es unheimlich:
* Testtomcat mit auf MySQL 4.1 / MyISAM aufgespielter Produktiv-DB läuft (wie erwartet)
* Testtomcat mit auf MySQL 5 / InnoDB umgezogener Test-DB läuft (WTF?!? Wir hatten doch gerade erst die DB als einzige Fehlerquelle ausgemacht)
* Testtomcat mit kopierter Produktiv-DB auf MySQL 5 / InnoDB zeigt den Fehler.
Sehr sehr strange das ganze, abgekackt war ein select, der eine Uhrzeit aus einer Tabelle ziehen sollte – absolut unkritische Query, sowohl in Test- als auch Produktiv-DB für meinen Testcase jeweils mit leerem Result-Set – aber einmal crasht das ganze.
Na ja, ich habe jetzt einen Patch gekriegt, der zumindestens auf dem Test-Tomcat funktioniert, mit etwas Glück funktioniert das später auch im Produktivsystem und ich kann wirklich auf das Familientreffen gehen, anstatt das Wochenende lang im Büro rumzugammeln und auf eine Lösung warten.