Ubuntu Lucid beinhaltet eine neuere Version des Apache  Modules mod_fcgid als FastCGI Anbindung. Wer nun per FastCGI z.B. PHP laufen hat, und sich ueber defekte Dateiuploads wundert, dem sei dieser kurze Blogartikel ans Herz gelegt! (Wer kein FastCGI bzw. nicht mod_fcgid und Apache unter Lucid verwendet, bzw. kein Problem hat, dass z.B. Bilder nach dem Upload defekt sind, kann den Artikel getrost ignorieren.)

Der Hintergrund: mod_fcgid war bisher in einer älteren Version (2.2) in den Ubuntu Distributionen enthalten – erst Ubuntu 10.04 Lucid liefert mod_fcgid 2.3.x aus. In der alten Version wurde die Konfigurationseinstellung FcgidMaxRequestInMem in den meisten Fällen ignoriert, und führte so nicht zu Problemen. In der neueren Version nun wird die Einstellung verwendet, wenn nichts konfiguriert ist, werden 64kb als maximale Groesse verwendet.

Ist ein Request nun grösser, wird er nicht komplett im Hauptspeicher gehalten, sondern in eine temporäre Datei ausgelagert. Und genau dies ist fehlerhaft implementiert, die Datei wird unter gewissen Umständen am Ende teilweise abgeschnitten. Diese Konstellation macht den Fehler schwer zu diagnostizieren. (Weitere Informationen im Drupal Ticket 635270 und Apache Ticket 48021.)

Abhilfe ist dafuer aber um so schneller geschaffen:

  • FcgidMaxRequestInMem entsprechend groß wählen, z.B. 8 MB oder mehr
  • eine alte Version des Moduls verwenden (downgrade)

Der Fehler bekannt und behoben und wird mit einer zukünftigen Version – durch ein Update von Ubuntu Lucid – dauerhaft gefixt.