
Update: Bitte nicht den Fix aus dem Post selber nutzen. Der hilft zwar in einigen Fällen aber leider nicht in allen. Nähere Infos zur Lösung, die ich im Twitter angesprochen habe, gibt es im Kommentar von Ocean90 und den darauf folgenden Kommentaren.
Ich mag es schon gar nicht mehr schreiben, da so viele Blogs schon vermeldet haben, dass Wordpress 2.9 heute herausgekommen ist. Auch ich habe mich wie üblich dran gemacht das Update zu ziehen und zu installieren. Lief prima das Update und bisher hab ich in 5 Blogs erst ein zerschossenes Plugin gesehen. Also alles in allem kann man recht zufrieden sein.
Aber wenn ich den Titel schon so wähle muss es ja einen Haken geben:
-
gillyberlin Narf, also interne und externe Pingbacks scheinen bei Wordpress 2.9 schon mal nicht mehr zu funktionieren
-
this quote was generated by twtQuote
Dieser Tweet von Gilly hat mich dazu gebracht wieder einmal einen Blick in die cron.php zu schauen und was erblicke ich? Richtig! Die Entwickler bleiben auf ihrem Standpunkt, dass 0.01 Sekunden völlig ausreichend sind um andere Blogs zu informieren… *sigh*
Also wie üblich der gleiche Kram mal wieder. In der Datei “wp-include/cron.php” steht in Zeile 229 mal wieder diese nette Anweisung (Alles in einer Zeile!):
wp_remote_post(
$cron_url,
array(
'timeout' => 0.01,
'blocking' => false,
'sslverify' => apply_filters('https_local_ssl_verify', true)
)
);
Daraus macht Ihr weil es ja so schön ist diese Änderung dauernd wieder zu machen folgendes: (Auch wieder alles in eine Zeile, Änderung in rot!):
wp_remote_post(
$cron_url,
array(
'timeout' => 1.00,
'blocking' => false,
'sslverify' => apply_filters('https_local_ssl_verify', true)
)
);
Damit haben wir zumindest mal wieder 1000ms Zeit die anderen Blogs zu informieren und nicht 10ms. (Welcher Blog schafft eigentlich eine Reaktion in 10ms?)
Viel Spaß mit der neuen (alten) Änderung.



wie, die haben das immer noch nicht gefixt?! Das ist aber doof, aber danke für die Erklärung. Darf ich nachher (wie immer
) hierhin einen Trackback schicken um zu schauen ob es klappt?
@Spielkind: Klar darfst du!
Es ist ein Drama! Ich verstehe einfach nicht, wieso die das nicht fixen können? Das Wordpress Forum ist voll mit “Pingbacks gehen nicht” Artikeln und ähnlichem.
Zu deiner 10ms Sekunden Frage: Kein Server, den sich ein normalsterblicher Mensch leisten kann. Meine Kiste gehört schon zu den ganz schnellen mit Intel Quadcore i7, 8GB Ram und Raid, dennoch hat er es nicht geschafft. Ich weiß wirklich nciht, was die sich dabei gedacht haben
Da fragt man sich doch welcher Idiot bei WordPress immer wieder für diesen Unfug verantwortlich ist? Sicher weiß doch einer einen Namen, damit man die Pappnase mal an den Pranger stellen kann, oder?
Bei Mozilla arbeiten auch so Schwachmaten die in frühen Betas bereits gefixte Bugs später in die RC und in die Final wieder einbauen – bei Firefox hält sich so ein Bug schon seit 2006.
@Gilly: Naja sie könnten es problemlos. Die Argumentation im entsprechenden Bug geht allerdings dahin raus, dass sie es nicht wollen und die Leute, wo die 0.01 Sekunden nicht reichen sollen sich gefälligst einen neuen Server anschaffen.
Ich habs mit meinem neuen Server noch nicht ausprobiert, ob es geht… Bei mir bleibt die cron.php auf dem Stand, den ich vor einigen Versionen mal editiert habe, das es über SVN kein Update für selber editierte Dateien gibt… Ich müsste mal einen Vergleich laufen lassen ob da noch mehr geändert ist…
@Puh: Naja da ist nicht immer wieder einer Verantwortlich… Der Unfug ist schon seit einigen Versionen so drin und wird einfach nie rausgepatched. Eben genau aus dem Grund, den ich hier zu Gilly schon geschrieben habe…
Danke für den Hinweis!
Find es ja gut das manche immer wieder darauf hinweisen. Was ich nicht gut finde wenn dann auch noch beleidigende Kommentare ala Idiot, Schwachmat kommen. Vielleicht sollte man sich vorher ein wenig mit der Technik auseinandersetzen bevor man jemand beleidigt?! Das ändern auf 1 ist keinerlei gewähr das es funktioniert. Bei vielen geht es trotzdem nicht. Viele Pink und Trackbacks kommen desweiteren nicht an weil sie bei vielen einfach im Spam durch diverse Plugins landen. Wenn die dann automatisch gelöscht werden sind se eben weg. Ich fisch immer wieder welche raus, da ich das nur manuel lösche. Außerdem hilft ein einfacher Blick unter wo man die Trackbacks eintragen kann ob einer angekommen ist oder nicht. Da sieht man übrigens auch die versendeten POinkbacks die angekommen ist. Stehen sie da drin, liegt es am gegenüber und nicht an Euch. Manchmal hilft ein einfaches aktualisieren des Posts. Ich hab diese Änderung auch immer in der cron.php … was soll ich sagen. Trotzdem kommen manche bei mir auch nicht an oder ich muss 3-4 mal den Artikel aktualisieren. Es ist nervig aber momentan wohl eben nicht wirklich lösbar. Wer eine generelle Lösung hat, nur her damit.
@Steffy: Nichts zu danken
Ich fördere gerne die Verlinkung in der Bloggerwelt
@Markus: Erstmal stimme ich dir zu, dass Beleidigungen nicht notwendig sind, allerdings bearbeite ich – bis auf die URL bei Kommerz-Kommentaren – keine Kommentare. (Wollt ich nur anmerken
)
Leider stimmt es auch, dass die Änderung zwar bei vielen hilft aber nicht bei allen. Ich habe schon von Leuten gehört, die trotz dem sehr kurzen Timeout von 0.01 Sekunden keine Probleme hatte, viele kriegen es mit 1 Sekunde behoben, bei einigen hilft das auch nichts. Ob da ein höherer Wert funktionieren würde weiß ich nicht zu sagen…
Ich muss mich mit dem Core-Code nochmal näher auseinander setzen ob ich da noch etwas sehe, was eine Verbesserung bringen kann aber so lange da niemand eine andere Lösung findet, bleibt die alles umfassende Lösung leider aus. Was wohl oft (aber auch nicht immer) hilft ist, die gesetzten Links zusätzlich als Trackback direkt mit einzutragen. Der Trackback-Code scheint da besser zu funktionieren – aber eben auch nicht immer top.
hat sich erst mal erledigt. Musste wieder zurück, da mein Theme komplett kaputt war.
Danke fürs Angebot
LG
@Spielkind: Oha… Theme net 2.9-Kompatibel? Übel… Bei mir hats keine Probleme gegeben… Aber ich grübel auch über ein neues Theme nach
Du und ein neues Theme? Das neue ist doch auch noch nicht so alt
mal sehen, zu Weihnachten vielleicht ein bisschen Zeit
@Spielkind: Jo aber wenn ich mir den Code im Hintergrund anschaue krieg ichs gruseln
Beim nächsten Mal muss ich das mal ordentlich machen…
Und dann wirds auch ansonsten anders und so
Danke für den Tipp und die Erklärung.
Ich werde wo vorerst erst einmal auf die deutsche Version warten und dann schön lokal aufm PC testen.
Ich habe bei meinem neuesten Artikel nach dem Update jetzt gerade ziemlich oft aktualisieren müssen, bis sie rausgingen (wurde einfach nicht angezeigt). Ob sie ankommen, kannst Du mir beantworten
@Micha: Die deutsche Version wurde gestern schon veröffentlicht… (Zumindest entnahm ich das dem Twitter. Ich setze ein originales englisches Wordpress ein.
@Crazy Girl: *2 nach oben schaut* Jap kann ich bestätigen!
– Aber ziemlich oft aktualisieren hört sich ja schon wieder nicht sehr funktionierend an… :/
Wenn ich an dieser Stelle mal die Ghostbusters (Pete Vankman in teil 1) zitieren darf? “DAS war ein wichtiger Sicherheitshinweis!” Vielen Dank.
Das ist mal wieder typisch Puh, nur am meckern und das auf unterstem Niveau….traurig.
Zum Thema. Das Team um WordPress kann nur dann etwas fixen, wenn die Probleme bei WordPress liegen. In diesem Fall ist es aber nicht der Fall, hier können falsche konfigurierte oder lahme Server der Grund sein. In meinen Blogs, sowie bei den Blogs die ich sonst noch betreue, habe ich noch nie im Core rumspielen müssen.
@Jörn: Wenn ich die Stelle jetzt im Moment kennen würde, dann würde ich sogar passend antworten aber so sage ich einfach: Bitteschön
@ocean90: Damit liegst du zwar perfekt auf der Meinung, die auch das Wordpress-Team vertritt, dass sich die Leute bei denen es nicht geht neue Server anschaffen sollen aber meiner Meinung nach ziemlich daneben. Natürlich mag das durchaus eine Abhilfe schaffen aber nicht jeder kann es sich leisten einen Root-Server anzumieten und nicht jeder hat Ahnung davon wie diese Server konfiguriert werden. Viele sind darauf angewiesen, dass sie ihre Seite auf einem (langsamen / falsch konfigurierten) Webspace hosten können und haben gar keine Möglichkeit an diesen Faktoren etwas zu ändern. Gerade das einfach zu ignorieren ist meiner Meinung nach ein ziemlicher Mist.
Zwar führt auch der Fix hier nicht überall zu einer funktionierenden Lösung aber immerhin verbessert sich die Situation deutlich. Wenn du eine Lösung – abseits von “neuen Server besorgen” kennst, die diese Probleme alle löst, nur her damit…
Hi,
also die Änderung in der cron.php betrifft lediglich den Kommunikationstimeout, nicht den Timeout für den HTTP Post request. Ein XML-RPC Ping besteht aus einer zweiseitigen Kommunikation die 10ms sind nur die Zeit die der Server braucht um nach dem Verbindungsaufbau selbst den ersten Befehl zu übermitteln. Dies ist in der regel in unter 1ms getan.
Dennoch gibt es ein WP Bug den ich auch mehrfach reported habe der die Ursache des Übels ist. Schau mal in die http.php dort findet sich eine Zeile:
$timeout = (int) floor( $r['timeout'] );
Was völliger Käse ist, durch das Floor werden alle zahlen kleiner 1 auf 0 gesetzt. Egal ob 0.10, 0.55 oder 0.99 ergibt durch floor() alle = 0. Um hier einen positiven Wert zu erhalten wären Zahlen größer 1 notwendig. Besser wäre es hier mit CEIL zu arbeiten wenn man INT ganzzahlen haben möchte.
Der eigentliche “http_request_timeout” findet sich in der http.php und ist auf 5 Sekunden gesetzt. Das sollte jeder Webserver schaffen, wenn nicht sollte man wirklich über den Umzug der Seite auf einen aderen Server nachdenken
@Marco: Danke für den Hinweis auf den anderen Bug. Ich muss mich wohl wirklich mal hinsetzen und mir den ganzen Verlauf bei Pingback und Trackback im Core-Code durchlesen. Ich weiß zwar ohne es mir jetzt anzuschauen nicht, welche Werte in $r stehen und vor allem woher diese kommen aber ich schaue es mir mal an
Es scheint als hätte Marco recht. Siehe dieses Changeset http://core.trac.wordpress.org/changeset/12424 und diesen Post http://www.semiologic.com/2009/12/21/wp-2-9-three-bugs-and-how-to-fix-them/
@ocean90: Jo schaut ganz so aus :/ Gut das erklärt teilweise warum mein Fix funktioniert… 1 wird anders behandelt als 0.01… Und je nachdem welcher Transport genutzt wird war der Fix nutzlos…
Ach das macht einfach keinen Spaß mehr… Gut dann hoffen wir mal, dass der Patch mal umgesetzt wird… Falls nicht können wir ja bald einen eigenen Fork von Wordpress auf machen wo wir den Main-Branch immer mit spezifischen Patches versorgen und einpflegen
Und es würde erklären, warum manche den Fehler haben und mache nicht.
Ich denke mit 2.9.1 sollte dieses ‘Feature’ behoben sein. Im Trac ist es akzeptiert worden und auch geschlossen mit Status Fixed.
@ocean90: Auf jeden Fall. Bei mir z.B. ist nur der Curl-Transport aktiv… Na wir werden es sehen aber ich nehme auch an, dass die 2.9.1 es drin hat…
Danke für den Tipp!
Ich hatte auch ab und an Probleme mit Trackbacks.
bis 12472 wurde wohl das floor auf ceil umgestellt. Hoffentlich ist der Bug damit erstmal Geschichte
http://core.trac.wordpress.org/changeset/12472/trunk/wp-includes/http.php
@Jeffrey: Das ist zwar eigentlich eine Lösung für Pingbacks aber wenns hilft… Der Fix, der jetzt in der Entwicklerversion drin ist, könnte aber durchaus auch bei Trackbacks helfen… (Wenn es Timeout-Bedingt ist)
@Marco: Na ich hoffe der Bug ist dauerhaft Geschichte. Nochmal son Kram hab ich keinen Bock drauf…
Ich Ruder mal hier gewaltig zurück, hab mir mal angesehen was ryan dort commited hat und es hat sinn. Ich hab leider zu früh aufgehört zu lesen. Das floor() ist richtig denn es wird eine PHP5 Funktion verwendet die den float als utime akzeptiert sprich:
0.01 =
(int) floor( $r['timeout'] ) = 0;
+
$utimeout = $timeout == $r['timeout'] ? 0 : 1000000 * $r['timeout'] % 1000000; = 10000
Also 0 + .100000 = Sek: 0 mSec: 10000
stream_set_timeout( $handle, $timeout, $utimeout );
Allerdings gibt es bei einigen PHP Versionen wohl ein Bug mit der stream_set_timeout funktion, diese ist erst dann “aktiv” wenn vorher bereits etwas gesendet wurde. Dies wird bei WP nicht daher könnte das bei einigen ein Problem verursachen.
Ich habe den Bug mal im WP Trac reported. Sorry für das Mutmassen ohne wirklich mal getestet zu haben ;/
PHP.net: The key I found is the “stream_set_blocking($fp, TRUE )”. If “FALSE”, then $status['timed_out'] seems to not have any practical effect. “TRUE” [PHP default] works. If you are using fsockopen() to create a connection, first going to write into the stream and then waiting for the reply (e.g. simulating HTTP request with some extra headers), then stream_set_timeout() must be set only after the write – if it is before write, it has no effect on the read timeout.
@ Knut
Eigentlich wollte ich ja Pingback schreiben, aber meine Finger waren mal wieder schneller wie der Kopf
Also das ganze hört sich ja wirklich grusilig an.
Wie erkenne ich denn nun ob alle pings rausgehen?
@Stefan B.: Einfach gesagt: Wenn sie ankommen. Leider gibt es da keine wirklich allgemein gültige Antwort. Du kannst schauen, ob sie im Trackback-Feld aufgelistet werden. Da sollten auch die automatisch gesendeten Pings bei Erfolg aufgelistet werden. Wenn da welche fehlen wurden sie nicht benachrichtigt.
Die cron.php Änderung habe ich ja auch wieder nachgezogen. Trotzdem ist mir aufgefallen, dass die Pings etwas arg träge geworden sind und weitaus öfter aktualisieren notwendig ist, damit sie im Trackback-Feld aufgelistet werden.
@Crazy Girl: Jo ich hoffe, dass die 2.9.1 mit dem darin enthaltenen Fix das Problem endlich löst. Es schaut so aus als hätten sie da die Transports gefixed aber schauen wir mal was die Version bringt.
Momentan macht mir der dicke Virus, den ich mir heute auf allen meinen Domains gefangen habe mehr Probleme. Mache gerade die xte Neuinstallation
@Crazy Girl: Jo ich hab das Thema schon gelesen… Hat dein Hoster denn kein Backup? Ich meine wenn einer meiner Kunden betroffen wäre, liesse sich das Problem recht schnell lösen. Hier läuft auf den Webservern alle 6 Stunden ein Backup…
Hat er schon, doch leider ist das schon ein paar Tage alt. Ich selbst habe ja wirklich alles auch bei mir auf dem Rechner lokal (da ich Änderungen immer erst hier mache), so dass ich einfach nur auf dem Server alles löschen musste und von mir lokal hochspielen. Dauert zwar ein bissi, ist aber das aktuellste was es gibt
Problem war nur, dass ich in meinem FTP Client ziemlich viele Domains gespeichert hatte (nicht nur meine, sondern auch Kundendomains *autsch*) und so dafür sorgte, dass sich der Virus schnell mal recht gut verbreiten konnte.
Ich durfte meine ganze von lokal nach Server Aktion also so einige Male durchführen
@Crazy Girl: Ein paar Tage altes Backup auf einem Kundenserver? Autsch! Da kannst du ja wirklich froh sein, dass du den Kram lokal sicherst und so “nur noch” die Daten wieder hochladen musstest.
Tjo aber – so schlimm es auch ist – ein gutes Beispiel dafür, warum die “Passwort speichern”-Option oftmals einfach nicht genutzt werden sollte. Passwörter gehören in ein qualifiziertes Programm / WebApp (Meine gibt es übrigens als OpenSource-Software) und nicht in X Programme…
Ich muss Dich leider enttäuschen, die Browserfunktion Passwort speichern hat damit gar nix zu tun. Ich würde so was auch nicht machen. Der sch… Virus hat sich meinen FTP Client gegrabscht und ausgelesen
@Crazy Girl: Ich weiß, dass es nichts mit dem Browser zu tun hat. Aber auch in anderen Programmen gehören die Passwörter meiner Meinung nach nicht gespeichert. Auch da gehören sie in eine spezielle App zum Speichern von Passwörtern.
Und was ist wenn genau diese App ausgelesen wird? Nix ist wirklich sicher will ich damit sagen
so ich schicke mal einen test. habe nämlich sein gerade auch endlich wp 2.9 auf meinem Blog
wie immer hab ich das das große Update zu früh eingespielt
dann hoffe ich auch mal dass WP 2.9.1 schnell kommt.. und alles fixt..
@Spielkind: Hat geklappt
oh klasse. danke
somit klappt dein tip
Ja, ich hoffe auch auf das nächste Wordpress-Update. So macht das keinen Spaß.
@Spielkind: Ja wie gesagt: Auf einigen Blogs bringt es die Abhilfe, auf anderen leider nicht. Daher hoffe ich auf den Fix in Version 2.9.1 und darauf, dass er endlich bei allen die Probleme fixed…
@chris: Stimme ich dir vollkommen zu. Ich habe zwar noch kein anderes Blogsystem mit diesem Umfang gefunden aber wenn Wordpress so weiter macht werde ich mich über kurz oder lang wohl nach einer anderen Lösung umsehen… Vielleicht ein Posterous-Blog…
Ich habe mir das aktuelle WP 2.9.1 Beta auf meinem Blog installiert und schon wurden die Pings gesendet
@Stefan B.: Dann scheint es ja wirklich mal ein brauchbarer Fix von Seiten Wordpress zu sein… Ich bin mit dem Jubel zwar noch vorsichtig aber freuen würde es mich.
Konna, war so frei und hat mir den Weg zu dir gezeigt.In der Hoffnung, dass irgenndwann mal auch alle Pings den Empfänger finden, war ich jetzt mal so frei und habe deine obige Anleitung folge geleistet und werde es in den nächsten Tagen intensiver beobachten.
@Mysti: Naja wenn du Wordpress 2.9.2 hast, sollte das Problem von alleine gefixed sein. Wenn es danach immer noch auftritt, wird der Fix hier leider nicht viel bringen
Ich habe 2.9.2, jedoch ist mir in letzter immer häufiger aufgefallen, dass einige Trackbacks, warum auch immer, leider nicht ihr Ziel erreichen. Hast du eine Lösung?
Naja erstmal musst du Trackbacks und Pingbacks unterscheiden. Dieser Fix hier würde bei Trackbacks auch gar nicht funktionieren. Falls deine Pingbacks trotz 2.9.2 nicht ankommen habe ich leider momentan keine Lösung dafür. Normalerweise sollte das Problem gefixed sein.
Leider nicht, bei einigen Blogs kommt es an, und bei anderen wiederum nicht… zumindestens die von mir. Es ist schon alles sehr merkwürdig.
Trotzdem vielen Dank, dass du dir deine Zeit für meine Nachfragen geopfert hast.
Nichts zu danken. Ich hätte lieber bessere Nachrichten…