Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-18501

Fitnesse Plugin - java.net.SocketTimeoutException: Read timed out

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • fitnesse-plugin
    • None

      We get this socket timeout the odd occasion, as you can see we have tried setting the HttpTimeout to a big number but it doesn't seem to help.

      12:59:36 hudson.plugins.fitnesse.FitnesseBuilder:

      {fitnesseTargetPage=PayrollTeam.ModulePayroll.AaTaxArea.NewZealandTax, fitnesseTargetIsSuite=true, fitnesseHost=Private, fitnesseHttpTimeout=2700000, fitnessePortRemote=8886, fitnesseStart=False, fitnessePathToXmlResultsOut=C:\PayGlobal\FitNesse\Results\XESuiteNZTax_Results.xml}

      12:59:36 Connnecting to http://PAYFIT003:8886/PayrollTeam.ModulePayroll.AaTaxArea.NewZealandTax?suite&format=xml&includehtml
      12:59:36 Connected: 200/OK
      13:44:46 java.net.SocketTimeoutException: Read timed out
      13:44:46 at java.net.SocketInputStream.socketRead0(Native Method)
      13:44:46 at java.net.SocketInputStream.read(Unknown Source)
      13:44:46 at java.net.SocketInputStream.read(Unknown Source)
      13:44:46 at java.io.BufferedInputStream.fill(Unknown Source)
      13:44:46 at java.io.BufferedInputStream.read1(Unknown Source)
      13:44:46 at java.io.BufferedInputStream.read(Unknown Source)
      13:44:46 at sun.net.www.http.ChunkedInputStream.readAheadBlocking(Unknown Source)
      13:44:46 at sun.net.www.http.ChunkedInputStream.readAhead(Unknown Source)
      13:44:46 at sun.net.www.http.ChunkedInputStream.read(Unknown Source)
      13:44:46 at java.io.FilterInputStream.read(Unknown Source)
      13:44:46 at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
      13:44:46 at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source)
      13:44:46 at hudson.plugins.fitnesse.FitnesseExecutor.getHttpBytes(FitnesseExecutor.java:230)
      13:44:46 at hudson.plugins.fitnesse.FitnesseExecutor$1.run(FitnesseExecutor.java:201)
      13:44:46 at java.lang.Thread.run(Unknown Source)

      I've had a quick look at the code and I'm pretty sure this is where it is crashing:

      try {
      log.println("Connnecting to " + pageCmdTarget);
      HttpURLConnection connection = (HttpURLConnection) pageCmdTarget.openConnection();
      connection.setReadTimeout(httpTimeout);
      log.println("Connected: " + connection.getResponseCode() + "/" + connection.getResponseMessage());

      inputStream = connection.getInputStream();
      long recvd = 0, lastLogged = 0;
      byte[] buf = new byte[4096];
      int lastRead;
      while ((lastRead = inputStream.read(buf)) > 0) {
      bucket.write(buf, 0, lastRead);
      timeout.reset();
      recvd += lastRead;
      if (recvd - lastLogged > 1024)

      { log.println(recvd/1024 + "k..."); lastLogged = recvd; }

      }
      } catch (IOException e)

      { // this may be a "premature EOF" caused by e.g. incorrect content-length HTTP header // so it may be non-fatal -- try to recover e.printStackTrace(log); }

      finally {
      if (inputStream != null) {
      try

      { inputStream.close(); }

      catch (Exception e)

      { // swallow }

      }
      }

      I'm not very good with networking code so would someone please be able to look at this for me and see if there is an issue or suggest something environmentally we could do to avoid these timeouts?

      Cheers,
      Sam

            Unassigned Unassigned
            samj Sam Jessop
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated: