Failed to HTTPRequest

  • Affected Version
    WoltLab Suite 5.3

    Hallo, seit einigen Tagen laufen immer wieder neue Fehlermeldungen "Failed to HTTPRequest" ein. Zuvor lief die Software problemlos, von meiner Seite aus wurde auch keine Änderung an irgendwelchen Einstellungen vorgenommen. Mir persönlich fällt auch keine Fehlfunktion in der Software auf, dennoch erscheint die Meldung mehrfach täglich im Protokoll. Könnt ihr mir sagen, wo die Ursache des Problems liegt, und was ich, bzw. ggf. mein Webhoster webgo dagegen tun kann?

    Display Spoiler
    Requested URL
    POST /forum/index.php?ajax-proxy/&t=b6ff4085d87f2b48a1bdc231360400409081aefb
    Referrer
    https://www.loksimulatoren.de/forum/index.php?board/9-loksimeditor-projekte/&pageNo=2
    Error Message
    Failed to HTTPRequest
    Type
    wcf\system\exception\SystemException
    File (Line)
    /pfad-zur-community/lib/util/HTTPRequest.class.php (257)
    Stacktrace
    1. /pfad-zur-community/lib/data/blacklist/status/BlacklistStatus.class.php (83): wcf\util\HTTPRequest->execute(…)
    2. /pfad-zur-community/lib/data/blacklist/entry/BlacklistEntryAction.class.php (36): wcf\data\blacklist\status\BlacklistStatus::getNextDelta(…)
    3. /pfad-zur-community/lib/data/AbstractDatabaseObjectAction.class.php (204): wcf\data\blacklist\entry\BlacklistEntryAction->import(…)
    4. /pfad-zur-community/lib/system/cronjob/UpdateBlacklistCronjob.class.php (22): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    5. /pfad-zur-community/lib/system/cronjob/CronjobScheduler.class.php (271): wcf\system\cronjob\UpdateBlacklistCronjob->execute(…)
    6. /pfad-zur-community/lib/system/cronjob/CronjobScheduler.class.php (71): wcf\system\cronjob\CronjobScheduler->executeCronjob(…)
    7. /pfad-zur-community/lib/data/cronjob/CronjobAction.class.php (232): wcf\system\cronjob\CronjobScheduler->executeCronjobs(…)
    8. /pfad-zur-community/lib/data/AbstractDatabaseObjectAction.class.php (204): wcf\data\cronjob\CronjobAction->executeCronjobs(…)
    9. /pfad-zur-community/lib/action/AJAXProxyAction.class.php (75): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    10. /pfad-zur-community/lib/action/AJAXInvokeAction.class.php (94): wcf\action\AJAXProxyAction->invoke(…)
    11. /pfad-zur-community/lib/action/AbstractAction.class.php (47): wcf\action\AJAXInvokeAction->execute(…)
    12. /pfad-zur-community/lib/action/AJAXInvokeAction.class.php (61): wcf\action\AbstractAction->__run(…)
    13. /pfad-zur-community/lib/system/request/Request.class.php (83): wcf\action\AJAXInvokeAction->__run(…)
    14. /pfad-zur-community/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    15. /pfad-zur-community/forum/index.php (9): wcf\system\request\RequestHandler->handle(…)
    Error Message
    cURL error 28: Connection timed out after 10000 milliseconds (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
    Type
    GuzzleHttp\Exception\ConnectException
    File (Line)
    /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Handler/CurlFactory.php (199)
    Stacktrace
    1. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Handler/CurlFactory.php (154): GuzzleHttp\Handler\CurlFactory::createRejection(…)
    2. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Handler/CurlFactory.php (104): GuzzleHttp\Handler\CurlFactory::finishError(…)
    3. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Handler/CurlHandler.php (43): GuzzleHttp\Handler\CurlFactory::finish(…)
    4. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Handler/Proxy.php (28): GuzzleHttp\Handler\CurlHandler->__invoke(…)
    5. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Handler/Proxy.php (51): GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}(…)
    6. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php (37): GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}(…)
    7. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Middleware.php (29): GuzzleHttp\PrepareBodyMiddleware->__invoke(…)
    8. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/RedirectMiddleware.php (70): GuzzleHttp\Middleware::GuzzleHttp\{closure}(…)
    9. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Middleware.php (59): GuzzleHttp\RedirectMiddleware->__invoke(…)
    10. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/HandlerStack.php (71): GuzzleHttp\Middleware::GuzzleHttp\{closure}(…)
    11. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Client.php (351): GuzzleHttp\HandlerStack->__invoke(…)
    12. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Client.php (112): GuzzleHttp\Client->transfer(…)
    13. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Client.php (129): GuzzleHttp\Client->sendAsync(…)
    14. /pfad-zur-community/lib/util/HTTPRequest.class.php (199): GuzzleHttp\Client->send(…)
    15. /pfad-zur-community/lib/data/blacklist/status/BlacklistStatus.class.php (83): wcf\util\HTTPRequest->execute(…)
    16. /pfad-zur-community/lib/data/blacklist/entry/BlacklistEntryAction.class.php (36): wcf\data\blacklist\status\BlacklistStatus::getNextDelta(…)
    17. /pfad-zur-community/lib/data/AbstractDatabaseObjectAction.class.php (204): wcf\data\blacklist\entry\BlacklistEntryAction->import(…)
    18. /pfad-zur-community/lib/system/cronjob/UpdateBlacklistCronjob.class.php (22): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    19. /pfad-zur-community/lib/system/cronjob/CronjobScheduler.class.php (271): wcf\system\cronjob\UpdateBlacklistCronjob->execute(…)
    20. /pfad-zur-community/lib/system/cronjob/CronjobScheduler.class.php (71): wcf\system\cronjob\CronjobScheduler->executeCronjob(…)
    21. /pfad-zur-community/lib/data/cronjob/CronjobAction.class.php (232): wcf\system\cronjob\CronjobScheduler->executeCronjobs(…)
    22. /pfad-zur-community/lib/data/AbstractDatabaseObjectAction.class.php (204): wcf\data\cronjob\CronjobAction->executeCronjobs(…)
    23. /pfad-zur-community/lib/action/AJAXProxyAction.class.php (75): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    24. /pfad-zur-community/lib/action/AJAXInvokeAction.class.php (94): wcf\action\AJAXProxyAction->invoke(…)
    25. /pfad-zur-community/lib/action/AbstractAction.class.php (47): wcf\action\AJAXInvokeAction->execute(…)
    26. /pfad-zur-community/lib/action/AJAXInvokeAction.class.php (61): wcf\action\AbstractAction->__run(…)
    27. /pfad-zur-community/lib/system/request/Request.class.php (83): wcf\action\AJAXInvokeAction->__run(…)
    28. /pfad-zur-community/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    29. /pfad-zur-community/forum/index.php (9): wcf\system\request\RequestHandler->handle(…)
    Requested URL
    POST /forum/index.php?ajax-proxy/&t=778407fa43e89e64a3169b530bedaa4aaed82b6f
    Referrer
    https://www.loksimulatoren.de/forum/
    Error Message
    Failed to HTTPRequest
    Type
    wcf\system\exception\SystemException
    File (Line)
    /pfad-zur-community/lib/util/HTTPRequest.class.php (257)
    Stacktrace
    1. /pfad-zur-community/lib/data/blacklist/status/BlacklistStatus.class.php (83): wcf\util\HTTPRequest->execute(…)
    2. /pfad-zur-community/lib/data/blacklist/entry/BlacklistEntryAction.class.php (36): wcf\data\blacklist\status\BlacklistStatus::getNextDelta(…)
    3. /pfad-zur-community/lib/data/AbstractDatabaseObjectAction.class.php (204): wcf\data\blacklist\entry\BlacklistEntryAction->import(…)
    4. /pfad-zur-community/lib/system/cronjob/UpdateBlacklistCronjob.class.php (22): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    5. /pfad-zur-community/lib/system/cronjob/CronjobScheduler.class.php (271): wcf\system\cronjob\UpdateBlacklistCronjob->execute(…)
    6. /pfad-zur-community/lib/system/cronjob/CronjobScheduler.class.php (71): wcf\system\cronjob\CronjobScheduler->executeCronjob(…)
    7. /pfad-zur-community/lib/data/cronjob/CronjobAction.class.php (232): wcf\system\cronjob\CronjobScheduler->executeCronjobs(…)
    8. /pfad-zur-community/lib/data/AbstractDatabaseObjectAction.class.php (204): wcf\data\cronjob\CronjobAction->executeCronjobs(…)
    9. /pfad-zur-community/lib/action/AJAXProxyAction.class.php (75): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    10. /pfad-zur-community/lib/action/AJAXInvokeAction.class.php (94): wcf\action\AJAXProxyAction->invoke(…)
    11. /pfad-zur-community/lib/action/AbstractAction.class.php (47): wcf\action\AJAXInvokeAction->execute(…)
    12. /pfad-zur-community/lib/action/AJAXInvokeAction.class.php (61): wcf\action\AbstractAction->__run(…)
    13. /pfad-zur-community/lib/system/request/Request.class.php (83): wcf\action\AJAXInvokeAction->__run(…)
    14. /pfad-zur-community/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    15. /pfad-zur-community/forum/index.php (9): wcf\system\request\RequestHandler->handle(…)
    Error Message
    cURL error 28: Connection timed out after 10000 milliseconds (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
    Type
    GuzzleHttp\Exception\ConnectException
    File (Line)
    /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Handler/CurlFactory.php (199)
    Stacktrace
    1. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Handler/CurlFactory.php (154): GuzzleHttp\Handler\CurlFactory::createRejection(…)
    2. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Handler/CurlFactory.php (104): GuzzleHttp\Handler\CurlFactory::finishError(…)
    3. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Handler/CurlHandler.php (43): GuzzleHttp\Handler\CurlFactory::finish(…)
    4. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Handler/Proxy.php (28): GuzzleHttp\Handler\CurlHandler->__invoke(…)
    5. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Handler/Proxy.php (51): GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}(…)
    6. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php (37): GuzzleHttp\Handler\Proxy::GuzzleHttp\Handler\{closure}(…)
    7. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Middleware.php (29): GuzzleHttp\PrepareBodyMiddleware->__invoke(…)
    8. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/RedirectMiddleware.php (70): GuzzleHttp\Middleware::GuzzleHttp\{closure}(…)
    9. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Middleware.php (59): GuzzleHttp\RedirectMiddleware->__invoke(…)
    10. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/HandlerStack.php (71): GuzzleHttp\Middleware::GuzzleHttp\{closure}(…)
    11. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Client.php (351): GuzzleHttp\HandlerStack->__invoke(…)
    12. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Client.php (112): GuzzleHttp\Client->transfer(…)
    13. /pfad-zur-community/lib/system/api/guzzlehttp/guzzle/src/Client.php (129): GuzzleHttp\Client->sendAsync(…)
    14. /pfad-zur-community/lib/util/HTTPRequest.class.php (199): GuzzleHttp\Client->send(…)
    15. /pfad-zur-community/lib/data/blacklist/status/BlacklistStatus.class.php (83): wcf\util\HTTPRequest->execute(…)
    16. /pfad-zur-community/lib/data/blacklist/entry/BlacklistEntryAction.class.php (36): wcf\data\blacklist\status\BlacklistStatus::getNextDelta(…)
    17. /pfad-zur-community/lib/data/AbstractDatabaseObjectAction.class.php (204): wcf\data\blacklist\entry\BlacklistEntryAction->import(…)
    18. /pfad-zur-community/lib/system/cronjob/UpdateBlacklistCronjob.class.php (22): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    19. /pfad-zur-community/lib/system/cronjob/CronjobScheduler.class.php (271): wcf\system\cronjob\UpdateBlacklistCronjob->execute(…)
    20. /pfad-zur-community/lib/system/cronjob/CronjobScheduler.class.php (71): wcf\system\cronjob\CronjobScheduler->executeCronjob(…)
    21. /pfad-zur-community/lib/data/cronjob/CronjobAction.class.php (232): wcf\system\cronjob\CronjobScheduler->executeCronjobs(…)
    22. /pfad-zur-community/lib/data/AbstractDatabaseObjectAction.class.php (204): wcf\data\cronjob\CronjobAction->executeCronjobs(…)
    23. /pfad-zur-community/lib/action/AJAXProxyAction.class.php (75): wcf\data\AbstractDatabaseObjectAction->executeAction(…)
    24. /pfad-zur-community/lib/action/AJAXInvokeAction.class.php (94): wcf\action\AJAXProxyAction->invoke(…)
    25. /pfad-zur-community/lib/action/AbstractAction.class.php (47): wcf\action\AJAXInvokeAction->execute(…)
    26. /pfad-zur-community/lib/action/AJAXInvokeAction.class.php (61): wcf\action\AbstractAction->__run(…)
    27. /pfad-zur-community/lib/system/request/Request.class.php (83): wcf\action\AJAXInvokeAction->__run(…)
    28. /pfad-zur-community/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    29. /pfad-zur-community/forum/index.php (9): wcf\system\request\RequestHandler->handle(…)

    Danke & Gruß

    Patrick

  • Habe das eben ausprobiert (Updates gesucht). Hat ewig gedauert, Updates wurden gefunden. Beim Installieren jedoch Abbruch mit dem HTTPRequest-Fehler. Nochmal probiert - gleicher Fehler. Einige Minuten später nochmal probiert - Updates problemlos und flink installiert. Scheint wohl ein wiederkehrendes und temporäres Problem des Webhosters (webgo) zu sein? Dann würde ich deren Support bemühen.

  • Ich habe nun im Cronjob-Protokoll herausgefunden, dass die einlaufenden Fehlermeldungen ausschließlich von der Aktualisierung der "Stop Forum Spam Blacklist" verursacht werden. Viele Anfragen funktionieren, manche nicht. Komischerweise ergaben die neulichen Meldungen beim Suchen der Updates keinen Eintrag im Fehler-Protokoll.

    Mein Webhoster versucht der Ursache auf den Grund zu gehen, und würde dafür gerne wissen, auf welchen Server bei den Abfragen zugegriffen wird. Kann da jemand helfen?

  • Mein webhoster hat nun geantwortet:

    Quote

    Hierbei konnten wir an der serverseitigen curl-Funktion keine Probleme feststellen. Auch das Zertifikat ist aktuell. Dies kann man gut nachvollziehen indem Sie über eine SSH-Verbindung mit Ihrem FTP-Hauptbenutzer eine einfache curl-Abfrage an z.B. google.de schicken.

    Wir vermuten, dass Ihre Webseite ein eigenes curl CA-Bundle Zertifikat verwendet. Dieses Zertifikat würde dann von Woltlab und etwaigen Funktionen dieser Seite präferiert verwendet.

    Daher konnten wir das Problem auch direkt nicht nachvollziehen, da das Zertifikat vom Server selber in Ordnung ist. Wenn also die serverseitigen Curl-Zertifikate verwendet werden sollen, müssten Sie entsprechend etwaige Plugins oder Funktionen welche dieses Zertifikat nutzen deaktivieren.

    Die IP-Adresse oder die Domain assets.woltlab.com steht auch auf keiner unserer Firewall- oder Antispam-Diensten, eine Blockade liegt hier also nicht vor. Auch gab es keine Änderungen in den letzten Tagen im Bezug darauf.

    Was soll dieses "curl CA-Bundle Zertifikat" sein, wie habe ich Einfluss darauf?

  • Hallo,

    zum Einen verwenden wir kein eigenes CA-Bundle, sondern nutzen das durch PHP bereit gestellte. Zum anderen ist das hier auch völlig irrelevant, wenn es so wäre. Die Verbindung kommt gar nicht bis zu dem Punkt der Zertifikatsvalidierung, da die Anfrage in einen Timeout läuft. Ohne Verbindung auch kein Zertifikat.

    Kurzum: Der Ratschlag des Webhosters ist völlig unsinnig. Ich möchte aber gerne einmal direkt einen Blick auf das System werfen und versuchen den Fehler mit Hilfe eines simplen Testscripts nachzustellen. Das gibt uns womöglich hilfreiche Informationen falls andere Kunden über das Problem stolpern und dir womöglich etwas bessere Handhabe gegenüber dem Webhoster.

    Dafür bitte ich um ein Ticket mit Verweis auf dieses Thema.

  • Das Ticket hatte ich erstellt und Tim Düsterhus hatte sich meine Installation angesehen und ein Test-Skript durchlaufen lassen. Ich zitiere einfach mal, ich denke, da spreche ich nichts aus, was intern bleiben sollte:

    Quote from Tim Düsterhus

    ich habe das ganze ausprobieren können, war aber leider nur so semi-erfolgreich. Ich konnte die Fehlermeldung genau einmal reproduzieren, danach nicht wieder. In diesem einen Versuch waren im gleichen Aufruf mehrere Anfragen erfolgreich, dann eine Anfrage mit Fehler. Bei einer anschließenden Anpassung des Skripts konnte ich wenn ich mit meinem Testskript 50 Anfragen direkt nacheinander gestellt habe auch in mehreren Versuchen (also insgesamt mehreren hundert Anfragen) keine Fehler feststellen, alle 50 Anfragen waren jeweils in etwa 70ms erfolgreich abgeschlossen.

    Es sieht ganz stark danach aus, als würde die genannte Fehlermeldung komplett „zufällig“ auftreten. Möglicherweise dann, wenn auf dem Server ohnehin eine etwas höhere Serverlast herrscht.

    An dieser Stelle kann ich dazu leider nichts näheres sagen, da der Fehler in diesem „Laborversuch“ nicht zuverlässig genug auftritt. Es ist nur merkwürdig, dass er sich zuverlässig täglich in den Fehlerprotokollen findet …

    Ich habe meinen Webhoster (webgo) mit den Erkenntnissen erneut kontaktiert und warte nun auf Antwort.

    Da hier keine Antwort kam, und ich ebenfalls Besitzer des Fehlers seit 5.3.9 bin, habe ich den Ticketpart mal übernommen. ;)

    Vielleicht ergibt sich bei dir mehr, wobei der Fehler bei mir unabhängig der Software-Version aufritt (auch bei 5.4.0 beta 2 in einer eigenständigen Test-Installation). Halte mich gerne auf dem Laufenden :) Bist du auch bei einem Webhoster und wenn ja, bei wem?

    Edited once, last by avalanche (June 21, 2021 at 9:41 AM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!