Zeitweise seltsames Verhalten bei curl-Request

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeitweise seltsames Verhalten bei curl-Request

    Ich schreib das mal hier rein, weil es wohl eher ein Problem ist, dass unser Server-Anbieter lösen muss und ich mir hier nicht unbedingt eine Lösung erwarte. Trotzdem wollt ich es euch einfach mal zeigen - vielleicht hat ja doch jemand von euch was parat.

    Ich rufe seit geraumer Zeit regelmässig eine Veranstaltungs-XML von einem Anbieter mittels curl ab. Das Script habe ich auf 5 verschiedenen Servern im Einsatz. Seit heute gibt es auf einem Server sporadisch Probleme. Das Script informiert mich bei Problemen per Mail mit folgenden Infos - es handelt sich dabei um die Informationen aus curl_getinfo();

    Code:
    Fehler beim Laden der Events: 2010.10.13 14:35:02 //eigens produzierte Meldung
    
    url: http://www.example1.com/pfad/zur/xml.aspx
    content_type: text/html; charset=iso-8859-1
    http_code: 302
    header_size: 315
    request_size: 218
    filetime: -1
    ssl_verify_result: 0
    redirect_count: 0
    total_time: 0.031683
    namelookup_time: 0.001654
    connect_time: 0.015629
    pretransfer_time: 0.015726
    size_upload: 0
    size_download: 331
    speed_download: 10447
    speed_upload: 0
    download_content_length: 331
    upload_content_length: 0
    starttransfer_time: 0.031623
    redirect_time: 0
    Dazu noch der Content, den der curl-Request zurückliefert.

    HTML-Code:
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head>
    <title>302 Found</title>
    </head><body>
    <h1>Found</h1>
    <p>The document has moved <a href="http://www.example2.com/pfad/zur/xml.aspx">here</a>.</p>
    <hr>
    <address>Apache/2.0.52 Server at www.example3.com Port 80</address> </body></html>
    Das witzige dabei - ich möchte ja die Xml von dieser Adresse haben:
    http://www.example1.com/pfad/zur/xml.aspx

    Das html-Document dass mit dem 302er-Status zurückkommt, stammt vom eigenen Server und example2.com entspricht dabei dem Namen der eigenen Host-Maschine entspricht und www.example3.com (in der Server-Signatur) entspricht dem V-Host auf dem das Script läuft. Der 302er stammt also scheinbar gar nicht vom entfernten Server, sondern der Request bleibt scheinbar gelegentlich auf der eigenen Maschine hängen und scheinbar versucht ihn die eigene Maschine auch zu beantworten?!

    Das passiert heute ungefähr bei jedem fünften Request - sonst klappt es wie gehabt.
    Ich tippe irgendwie auf irgendeine Form von einem DNS-Problem.
    Zuletzt geändert von Quetschi; 13.10.2010, 15:06. Grund: Argh - warum geht der Haken bei "Links automatisch umwandeln" beim editieren von allein wieder rein?
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

  • #2
    Hast du mal überprüft, welche IP die DNS-Server liefer, die example1 auflösen können?
    Ich verstehe allerdings trotzdem nicht, warum sich example2 zuständig fühlt, denn im HTTP-Request sollte immernoch example1 als Host stehen und das ist nach deiner Aussage ja eine ganz andere Maschine.

    Lässt es sich eigentlich auch von einer anderen Kiste aus reproduzieren, z.B. mit deinem Browser?

    Kommentar


    • #3
      Rufe ich die Xml direkt im Browser ab klappt jeder Zugriff - auch gibt es auf den anderen Servern keinerlei Probleme dieser Art.

      Dein Tipp hat mich aber auf was gebracht - ich baue in das Script noch ne DNS-Abfrage ein und lasse mir das Ergebnis in der Error-Mail mitschicken.

      Ich hab jetzt keine Lust, die Maschine komplett neu zu starten, da wegen ein paar Minuten sonst hier gleich wieder die Telefondrähte heiß laufen. Schau mir dass jetzt mal noch die Nacht an - da die XML eh immer zwischengespeichert wird, ist sowieso immer alles verfügbar. Wenn es morgen dabei bleibt, starte ich mal neu und wenn das nichts hilft, muss sich dass der Server-Support mal ansehen.
      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
      Schön - etwas Geschichte kann ja nicht schaden.
      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

      Kommentar


      • #4
        So - gethostbyname(); liefert im Fehlerfall die IP des eigenen Servers. Da versagt wohl der Server-eigene DNS-Dienst gelegentlich? Kenn mich da aber nicht gut genug aus - geb das jetzt an den Support weiter.

        EDIT:
        Falsch - das ist nicht die IP der aktuellen Maschine - die IP hatten wir für diese Maschine vor über einem Jahr, da hängt irgendwas altes im System
        Zuletzt geändert von Quetschi; 13.10.2010, 16:40.
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          sudo /etc/init.d/nscd restart

          oder

          service nscd restart

          sollte den lokalen DNS-Cache leeren. Tritt das Problem dann immernoch auf, musst du mal "dig-en" welcher DNS-Server diese falsche IP liefert.

          Kommentar


          • #6
            sudo brauch ich nich

            hmmm - stopping meldet "Failed" - starting meldet "OK".
            Mal schauen was er macht.

            EDIT:
            Es bleibt bei dem Verhalten.
            Zuletzt geändert von Quetschi; 13.10.2010, 17:02.
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar

            Lädt...
            X