Archive for Januar, 2010

Multi-WTF: Caching von MySQL-Daten im Dateisystem

Freitag, Januar 22nd, 2010

Dieser Beitrag beruht auf wahren Tatsachen! Ich habe dieses Phänomen auf einem echten Webserver gefunden, aber die Art und Weise der Fehlermeldung war mindestens genauso interessant wie der eigentliche Fehler.

Der Kunde hat SSH-Zugang zu dem Webserver, und meldet sich mit Putty an. Soweit nichts besonderes. Allerdings bedeutet das, dass wir Fehlerbeschreibungen meist per Screenshot bekommen. Auch damit kann man leben, auch wenn manchmal mehr Fehlerbeschreibung als “Was soll das?” wünschenswert wäre. Aber dieses Mal wurde uns tatsächlich geholfen, indem die betreffende Stelle markiert wurde. Aber wie? Das ist das spezielle.

Der Kunde hat einen Screenshot von PuTTY gemacht, diesen in MS Paint geladen und dort eine Markierung gemacht. Bisher ist noch alles halbwegs in Ordnung. Aber jetzt kommt der Knüller: Von der ganzen Geschichte wurde wieder ein Screenshot gemacht, und dieser Screenshot fand sich als Anhang in der Mail. Eine Nachstellung findet sich unten:

Aber worüber hat sich der Kunde überhaupt beklagt? Nun, es war später Nachmittag, und der Prozess updatedb, der am frühen Morgen von cron gestartet wird, war immer noch emsig bei der Arbeit. Aber was hat er erfasst? Das sollte ich bald herausfinden.

Im DocumentRoot des Webservers fand ich ein Verzeichnis, in dem wiederum etliche Verzeichnisse und Unterverzeichnisse lagen. Diese Webseite stellt Informationen nach verschiedenenen Orten und Kategorien sortiert zur Verfügung. Jedes dieser Verzeichnisse war ein Ort, jedes Unterverzeichnis eine Kategorie. Alle Verzeichnisse waren automatisch angelegt worden, und enthielten jeweils eine einzelne Datei namens index.php mit einem solchen Inhalt:

<?php
$_SESSION[‘ort’] = 6883;
$_SESSION[‘kategorie’] = 15988;
$_SESSION[‘unterkategorie’] = 28008;
include($_SERVER[“DOCUMENT_ROOT”].”/index.php”);
?>

Insgesamt gab es zirka 4.5 Millionen Dateien, und die Partition belegte bereits 77% der verfügbaren inodes (Dateisystemeinträge). Kurz, der Rechner war kurz vor dem Kollaps, weil ein Entwickler geglaubt hat, dass das Dateisystem zu einem Ort, einer Kategorie, und einer Unterkategorie schneller eine Datei finden kann als eine Datenbank die jeweiligen IDs.

ACLs unter MacOS X

Samstag, Januar 9th, 2010

Manchmal kommt MacOS X auf die seltsame Idee, die Rechteänderung die man im Finder macht, nicht auf die einfachen Posix-Konformen Zugriffsrechte abzubilden. Dann werden, manchmal seltsame, ACLs gesetzt. Wie wird man diese nun wieder los, und wie erkennt man diesen Zustand?

Man erkennt sie an dem Plus-Zeichen am Ende der Berechtigungen, z.B. -rwxrw-r--+, angezeigt werden sie mit ls -le.

Entfernt werden sie mit chmod, z.B. löscht man die ACL mit der Nummer 0 per chmod -a# 0.

Weitere Informationen finden sich in der Manpage chmod(1).

Weitwinkelobjektiv an Cisco Linksys PVC2300

Freitag, Januar 8th, 2010

Wir haben für unser Rechenzentrum kürzlich einige Cisco Linksys PVC2300 gekauft. Nun waren wir mit dem Blickwinkel nicht ganz zufrieden und haben daher noch ein Weitwinkelobjektiv CAMLWA dazu bestellt. Von dem Ergebnis waren wir alle ziemlich überrascht, so einen weiten Winkel haben wir nicht erwartet. Hier zum Vergleich zwei Bilder.