Komische Standardeinstellung Apache+Debian Etch

Durch einen Serverabsturz bin ich heute auf eine etwas verwirrende Standardeinstellung im Apache gestoßen, die laut einigen Foren offenbar nur Debian Etch betrifft.

MaxRequestsPerChild 0

macht den Apache in einigen Situationen zu einem Speicherfresser. Das ganze geht soweit, das der Kernel keinen neuen Speicher mehr allociieren kann, kein Speicher mehr für andere Anwendungen zur Verfügung steht und das System damit lahmgelegt wird. Das ganze äußert sich zunächst dadurch das außer PING nichts mehr funktioniert. Ein Server reboot richtet dann wieder alles, allerdings ist es dann nur eine Frage der Zeit, bis das Problem erneut zuschlägt. Wer in seinem „syslog“ Meldungen finden, die wiefolgt aussehen:

kernel: Mem-info:
kernel: Node 0 DMA per-cpu:
kernel: cpu 0 hot: high 0, batch 1 used:0
kernel: cpu 0 cold: high 0, batch 1 used:0
kernel: Node 0 DMA32 per-cpu:
kernel: cpu 0 hot: high 186, batch 31 used:179
kernel: cpu 0 cold: high 62, batch 15 used:49
kernel: Node 0 Normal per-cpu: empty
kernel: Node 0 HighMem per-cpu: empty
kernel: Free pages:        8012kB (0kB HighMem)
kernel: Active:117054 inactive:113464 dirty:0 writeback:0 unstable:0 free:2003 slab:5445 mapped:1 pagetables:11467
kernel: Node 0 DMA free:3996kB min:24kB low:28kB high:36kB active:3980kB inactive:3840kB present:6556kB pages_scanned:9555 all_unreclaimable? yes
kernel: lowmem_reserve[]: 0 993 993 993
kernel: Node 0 DMA32 free:4016kB min:4016kB low:5020kB high:6024kB active:464236kB inactive:450016kB present:1017008kB pages_scanned:1088596 all_unreclaimable? yes
kernel: lowmem_reserve[]: 0 0 0 0
kernel: Node 0 Normal free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
kernel: lowmem_reserve[]: 0 0 0 0
kernel: Node 0 HighMem free:0kB min:128kB low:128kB high:128kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
kernel: lowmem_reserve[]: 0 0 0 0
kernel: Node 0 DMA: 1*4kB 1*8kB 1*16kB 0*32kB 0*64kB 1*128kB 1*256kB 1*512kB 1*1024kB 1*2048kB 0*4096kB = 3996kB
Feb 24 15:19:42 catfish kernel: Node 0 DMA32: 2*4kB 15*8kB 9*16kB 5*32kB 10*64kB 1*128kB 1*256kB 1*512kB 0*1024kB 1*2048kB 0*4096kB = 4016kB
kernel: Node 0 Normal: empty
kernel: Node 0 HighMem: empty
kernel: Swap cache: add 3754206, delete 3754206, find 550796/967590, race 100+121
kernel: Free swap  = 0kB
kernel: Total swap = 2104504kB
kernel: Free swap:            0kB
kernel: 261872 pages of RAM
kernel: 5006 reserved pages
kernel: 46543 pages shared
kernel: 0 pages swap cached
kernel: printk: 180 messages suppressed.
kernel: oom-killer: gfp_mask=0x201d2, order=0
kernel:
kernel: Call Trace:
kernel:  [<ffffffff802a666e>] out_of_memory+0x33/0x216
kernel:  [<ffffffff8020e020>] __alloc_pages+0x220/0x2a9
kernel:  [<ffffffff80210db1>] __do_page_cache_readahead+0x95/0x206
kernel:  [<ffffffff8022683e>] sync_page+0x0/0x42
kernel:  [<ffffffff8025cad3>] io_schedule+0x28/0x33
kernel:  [<ffffffff8022683e>] sync_page+0x0/0x42
kernel:  [<ffffffff8025cd6a>] __wait_on_bit_lock+0x5b/0x66
kernel:  [<ffffffff8023d749>] __lock_page+0x5e/0x64
kernel:  [<ffffffff802116ed>] filemap_nopage+0x148/0x314
kernel:  [<ffffffff80208718>] __handle_mm_fault+0x375/0x91a
kernel:  [<ffffffff8020a69c>] do_page_fault+0x39d/0x706
kernel:  [<ffffffff8025c35e>] thread_return+0x0/0xe7
kernel:  [<ffffffff802588e5>] error_exit+0x0/0x84

der sollte mal in sein Apache Konfigurationsfile schauen und darüber nachdenken den besagten Wert z.B. wiefolgt abzuändern:

MaxRequestsPerChild 100

Damit wird verhindert, dass der Prozess Amok läuft, denn nach 100 Requests wird er einfach abgesetzt und ein neuer tritt an seine Stelle. Mal sehen, ob das jetzt auch hilft…

Pro 7 verdirbt TV-Lust

Es ist einfach unglaublich. Seit Jahren schau ich kaum noch Fernsehen. Jegliche Versuche Serien zu schauen sind oft schon nach 3-4 Folgen kläglich gescheitert. Mit „Terminator Sarah Connor Cronicles“ hab ich jetzt mal einen neuen Versuch gestartet. 6 Folgen hab ich geschafft, ohne eine zu verpassen, dafür extra Zeit frei gehalten.

Und was nun?

Pro7 packt die Sendung für die letzten 3 Folgen sang und klanglos ins Nachtprogramm 0:40 Uhr (welcher Bundesbürger mit nem normalen Job ist denn dann noch auf den Beinen?!). Stattdessen wurden dann heute 2 Stunden Simsons am Stück gesendet. Ist das im Vergleich der absolute Quotenrenner? Für mich ist das Experiment an dieser Stelle wieder gescheitert. Offenbar muß ich es dann doch machen wie viele Bekannte und Freunde. Serien einfach aus dem Internet laden und schauen wann und wo ich will. Im Fernsehen werde ich es nach der heutigen Aktion wohl nicht mehr machen, oder es mir zumindest mehr als einmal reiflich überlegen Termine um einen „unsicheren“ Sendeplatz herum zu legen. Traurig, aber wahr…

Unternehmen fordern Unterstützung

War heute Abend unterwegs und höre im Radio Sätze wie: „Airbus fordert Unterstützung“ und „Von der Regierung wird erwartet“. Ich maße mir nun nicht an, dass ich den kompletten wirtschaftlichen Durchblick habe. Ich habe auch nichts dagegen, dass die Regierung mit einem Rettungspaket gezielt versucht, die Wirtschaft vor dem Ruin zu bewahren. Aber irgendwie kann ich mich mit dem derzeitigen Ton, der aus der Wirtschaft zu hören ist nicht anfreunden. Als ich noch ein Kind war und mein Taschengeld auf den Kopf gehauen habe, bin ich auf jeden Fall nicht auf die Idee gekommen zu meinen Eltern zu laufen und nochmal Taschengeld zu „fordern“. Man hat mal gefragt, vielleicht auch gebettelt, aber gefordert? Nein. Was habe ich in meiner Erziehung nur verpaßt? Vielleicht kann mir da ja jemand helfen…

Erste Erfahrung mit T3BLOG

Wie ja schon vor Kurzem geschrieben, habe ich auf eine neue BLOG-Lösung umgestellt. Das etwas schwerfällige und veraltete TIMTAB mußte dem neuen System T3BLOG der schweizer Firma Snowflake weichen. Was grundsätzlich positiv stimmt, ist die Tatsache, dass Snowflake den Blog selbst einsetzt. Im Folgenden möchte ich meine ersten Erfahrungen mit T3BLOG schildern und euch damit helfen zu entscheiden ob T3BLOG auch etwas für euch sein könnte.

Obwohl das System so ausgelegt ist, dass man den Blog als eigenständige TYPO3 Instanz laufen läßt, ist es über einige Umwege möglich ihn auch dazu zu bewegen sich in die bereits bestehende Seite einzugliedern. Ersteres geht recht schnell von der Hand, während zweiteres in etwa so lange dauert TIMTAB einzurichten. Denn die ein oder andere Stolperfalle bringt die Einrichtung mit sich, die man hauptsächlich über TypoScript erledigt.

T3BLOG kurz und knapp – Was bei der Einrichtung auffällt

Nachdem ich die Extension jetzt soweit an meine Bedürfnisse angepasst habe, ziehe ich dennoch ein positives Fazit. Im Grunde ist T3BLOG recht übersichtlich aufgebaut und macht im Großen und Ganzen was es soll. Und das recht komfortabel. Allerdings merkt man der Extension an, dass sie noch recht neu ist. Im Folgenden ein paar Punkte, die seitens der Entwickler nochmal überdacht werden sollten:

PageBrowser:

Im PageBrowser scheint es noch an der Berechnung der ‚Vorigen‘ und ‚Nächsten‘ Seite zu haken. Hier wird eher wild in der Gegend rumgesprungen statt zur korrekten Seite zu linken.

Wenn man einen Kategoriefilter einschaltet und ein PageBrowser angezeigt wird, so wird der Filter gelöscht, sobald man Gebrauch vom PageBrowser macht.

RSS:

Der RSS-Feed für Posts enthält nur die Überschrift. Mich persönlich stört es, wenn ich einen Feed abbonniert habe, ich aber erst auf die Webseite wechseln muß, um den Beitrag zu lesen. Um T3BLOG trotzdem dazu zu bewegen, muß man dann schon im Code rumwerkeln.

Man hat keine Möglichkeit den Content im RSS-Feed als HTML ausgeben zu lassen. Wieder muß der Leser auf die Seite wechseln, um Bilder, Links etc. zu sehen. Gerade wenn man im Text darauf referenziert, ist das sehr verwirrend.

Trackback:

Eine andere Webseite per Trackback anzupingen funktioniert. Den ausgegebenen Trackback Link von T3BLOG woanders einzutragen scheint aber keinen Effekt zu haben (Getestet mit WP).

Der Link, der beim Trackback auf einen anderen Blog mitgegeben wird, wird auf der T3BLOG Seite nicht mehr korrekt dekodiert. Das führt dazu, dass man immer die Listenansicht, nicht aber die Einzelansicht bekommt. Problem scheinen hier ein paar auskommentierte Zeilen in der class.blogList.php zu sein, die angeblich „not needed anymore“ sind.

Content Elemente:

Es ist ja schon sehr komfortabel, dass man in seinem Blogbeitrag mehrere Content Elemente zusammenbauen kann, wie auf einer richtigen Seite. Was allerdings richtig nervt, ist die Tatsache, dass diese innerhalb eines Posts falschrum ausgegeben werden. Nun kann ich die ja zum Glück umsortieren. Klappt auch, wird aber beim Anlegen des nächsten Posts wieder kaputt gemacht. Warum hab ich noch nicht herausgefunden. Vielleicht haben die Entwickler von Snowflake ne Idee?

Fazit:

Version 1 überzeugt durch einen robusten Aufbau. Die Kinderkrankheiten sind (bis auf die Sache mit den Content Elementen) zunächst sicherlich verschmerzbar. Aber Aufgrund des Umfangs, den die Extension jetzt schon hat, bin ich guter Dinge, dass die Probleme bald von Snowflake behoben werden.

Kritische Sicherheitslücke in TYPO3

Im TYPO3 Kern wurde eine Sicherheitslücke entdeckt, die durch ein Update gepatcht werden kann, das seit vorgestern zur Verfügung steht. Das Update wird dringenst empfohlen, da ein Angreifer sich durch die Lücke Zugriff zum Dateisystem verschaffen kann.

Bekanntestes Opfer dieser Sicherheitslücke ist aktuell wohl Wolfgang Schäuble. Seine Webseite war über 11 Stunden mit einem Link auf den Arbeitskreises Vorratsdatenspeicherung versehen.

Nähere Informationen zu dem Fehler, seinen Auswirkungen und die betroffenen Versionen findet man im aktuellenTYPO3 Security Bulletin.

Sortierung im T3BLOG RSS-Feed

Und weil der Blog so viel Spaß macht, gleich noch was. Wer T3BLOG installiert hat und vorher was anderes benutzt hat, z.B. TIMTAB, wird vermutlich seine alten Posts akribisch von Hand umgezogen haben. Je nach Reihenfolge wird man sich danach irgendwie wundern, warum im RSS-Feed plötzlich ältere Posts vor den neueren auftauchen. Das liegt daran, dass die Standardeinstellung eine Sortierung nach Erstellungsdatum vorsieht und nicht etwa nach dem Datum, das man in dem entsprechenden Feld eingegeben hat. Hier hilft ein bischen TypoScript im Template. Statt nach ‚crdate‘ läßt man nach ‚date‘ sortieren:

plugin.tx_t3blog_pi1.rss.postItemOrderBy = date DESC

RSS jetzt auch gleich mit Text

Da ich mich selbst immer aufrege, wenn RSS-Feeds immer nur mit der Titelzeile daher kommen und man dann für den eigentlichen Inhalt immer auf die Betreiberseite muß, habe ich das bei mir eben mal angepaßt. Jetzt sollte es also auch keine Probleme mehr geben, den Feed z.B. im Google Reader auf dem „Mobile Device“ zu lesen.

Für alle, die selbst die neue T3Blog-Extension benutzen und ihren RSS-Feed mit dem Text erweitern wollen, müssen ein bischen PHP basteln. Zu Ändern ist die Datei unter pi1/widget/rss/class.rss.php im Extension-Verzeichnis. Zeile 134 sollte nach der Änderung so aussehen:

$xmlObj->setRecFields('tx_t3blog_post','title,author,uid,cat,date,text');

Lediglich der Parameter ‚text‘ ist dazu gekommen.

Krimi Salon im Maritim Hotel Reichshof

Heute gings ab in den Krimi Salonin Hamburg, veranstaltet vom Imperial Theater. Kurz kann man sagen es ist Krimi-Theater inklusive Essen. Aber das wäre alles andere als ausreichend um dieses Event zu beschreiben…

Das Ambiente

Um 18:00 startet der Abend mit einem Sektempfang in der Lobby des Hotels. Gegen 18:20 ist Einlass in den Speisesaal. Man wird am Eingang mit seinem Namen vorstellig und dann zu seinem Platz gebracht. In unserem Fall spielt die Story auf dem Anwesen einer reichen Junggesellin, das sich auf einer kleinen Insel befindet. Spätestens mit Eintreffen der letzten Gäste vom Festland fühlt man sich weit weg von Hamburg und voll im Geschehen der Geschichte. Unter anderem weil diese letzten Gäste die Schauspieler sind und genau wie wir einen Festen Platz an den Tischen haben. So wird man selbst zu einem Teil der Geschichte, aber nur soviel man auch zulassen will.

Das Essen

Das Essen wechselt genau wie die Geschichte von Termin zu Termin. Soweit ich das überblicke handelt es sich aber immer um ein vier Gänge Menü, bestehend aus Vorspeise, Suppe, Hauptgericht und Nachtisch. Passender Wein sowie Wasser inklusive. Die Speisen werden sozusagen zwischen den Akten serviert. Die Schauspieler nehmen am Essen Teil, wie jeder andere Gast und befragen die Tischpartner über deren Beobachtungen. Am Ende der Vorstellung ist man nicht vollgestopft, aber satt genug um nicht zu Hause noch was nachzuschieben.

Fazit

Ein sehr interessantes Erlebnis, das ich nur jedem empfehlen kann. Sich als Teil der Geschichte zu fühlen macht viel mehr Spaß, als die Geschichte als aussenstehender zu verfolgen. Einziger Kritikpunkt von meiner Seite: Die Auflösung am Ende kam etwas zu abrupt. Dennoch wird mich das Theater nicht das letzte mal gesehen haben.

iPhone Sync nach Leopard Update kaputt

Nachdem ich das Problem nun schon bei zwei Rechnern hatte, die ich vor kurzem von Tiger auf Leopard aktualisiert habe, kann vielleicht noch jemand was mit der Info anfangen.

Problem: Nach dem Update läßt sich das iPhone nicht mehr synchronisieren.

Lösung: iTunes von der Apple Homepage runterladen und nochmal neu installieren. Es sind keine weiteren Schritte notwendig. Also nicht vorher Löschen oder dergleichen.

Eigentlich ganz einfach, aber verwirrend, wenn man ja eh die aktuelle iTunes Version installiert hat. Vermutlich wird gerade die aber duch das Update kaputt gespielt, zumindest was die Synchronisation angeht.

Neuer Blog, neues Glück…

Am Samstag, den 7. Februar werde ich meinen Blog auf ein neues System umstellen. Dadurch ändern sich auch die RSS Links auf Beiträge und Kommentare. Also schonmal vormerken. Funktionieren allerdings erst nach der Umstellung.

RSS 2.0:
Beiträge: http://www.thorsten-schneider.org/de/mainmenu/blog/rssType/2.0/rssContent/Posts.html?type=100
Kommentare: http://www.thorsten-schneider.org/de/mainmenu/blog/rssType/2.0/rssContent/Comments.html?type=100

RSS 0.91:
Beiträge: http://www.thorsten-schneider.org/de/mainmenu/blog/rssType/0.91/rssContent/Posts.html?type=100
Kommentare: http://www.thorsten-schneider.org/de/mainmenu/blog/rssType/0.91/rssContent/Comments.html?type=100