• Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: Major Major
    • cli
    • None

      When trying to contact a Jenkins (version 1.447.2) behind an Apache reverse proxy via Jenkins CLI, there is no response until reverse proxy timeout is reached and then the connection gets closed.

      Debugging into it, the CLI hangs on the line where it is reading the input stream. After the connection was closed, the server's answer "Starting HTTP duplex channel" can be read from that stream.

      The CLI terminates with an EOFException:

      Exception in thread "main" java.io.EOFException: unexpected stream termination
              at hudson.remoting.Channel.<init>(Channel.java:408)
              at hudson.remoting.Channel.<init>(Channel.java:366)
              at hudson.remoting.Channel.<init>(Channel.java:327)
              at hudson.remoting.Channel.<init>(Channel.java:323)
              at hudson.remoting.Channel.<init>(Channel.java:311)
              at hudson.cli.CLI.connectViaHttp(CLI.java:124)
              at hudson.cli.CLI.<init>(CLI.java:107)
              at hudson.cli.CLI.<init>(CLI.java:85)
              at hudson.cli.CLI._main(CLI.java:300)
              at hudson.cli.CLI.main(CLI.java:245)
      

      The server does not log any errors and judging from the input stream's content is was contacted properly.

      The reverse proxy error log when reaching timeout:

      (70007)The timeout specified has expired: Error reading chunk
      (104)Connection reset by peer: Error reading chunk
      (-3)Unknown error 18446744073709551613: proxy: prefetch request body failed
      

          [JENKINS-16345] CLI does not work through reverse proxy

          Lars Klonowski created issue -
          Lars Klonowski made changes -
          Description Original: When trying to contact a Jenkins (version 1.447.2) behind an Apache reverse proxy via Jenkins CLI, there is no response until reverse proxy timeout is reached and then the connection gets closed.

          Debugging into it, the CLI hangs on the line where it is reading the input stream. After the connection was closed, the server's answer "Starting HTTP duplex channel" can be read from that stream.

          The CLI terminates with an EOFException:
          {code:none}
          Exception in thread "main" java.io.EOFException: unexpected stream termination
                  at hudson.remoting.Channel.<init>(Channel.java:408)
                  at hudson.remoting.Channel.<init>(Channel.java:366)
                  at hudson.remoting.Channel.<init>(Channel.java:327)
                  at hudson.remoting.Channel.<init>(Channel.java:323)
                  at hudson.remoting.Channel.<init>(Channel.java:311)
                  at hudson.cli.CLI.connectViaHttp(CLI.java:124)
                  at hudson.cli.CLI.<init>(CLI.java:107)
                  at hudson.cli.CLI.<init>(CLI.java:85)
                  at hudson.cli.CLI._main(CLI.java:300)
                  at hudson.cli.CLI.main(CLI.java:245)
          {code}

          The server does not log any errors and judging from the input stream's content is was contacted properly.

          The reverse proxy log only shows that the timeout has been reached and the connection is therefore closed:
          {{(70007)The timeout specified has expired: Error reading chunk}}
          New: When trying to contact a Jenkins (version 1.447.2) behind an Apache reverse proxy via Jenkins CLI, there is no response until reverse proxy timeout is reached and then the connection gets closed.

          Debugging into it, the CLI hangs on the line where it is reading the input stream. After the connection was closed, the server's answer "Starting HTTP duplex channel" can be read from that stream.

          The CLI terminates with an EOFException:
          {code:none}
          Exception in thread "main" java.io.EOFException: unexpected stream termination
                  at hudson.remoting.Channel.<init>(Channel.java:408)
                  at hudson.remoting.Channel.<init>(Channel.java:366)
                  at hudson.remoting.Channel.<init>(Channel.java:327)
                  at hudson.remoting.Channel.<init>(Channel.java:323)
                  at hudson.remoting.Channel.<init>(Channel.java:311)
                  at hudson.cli.CLI.connectViaHttp(CLI.java:124)
                  at hudson.cli.CLI.<init>(CLI.java:107)
                  at hudson.cli.CLI.<init>(CLI.java:85)
                  at hudson.cli.CLI._main(CLI.java:300)
                  at hudson.cli.CLI.main(CLI.java:245)
          {code}

          The server does not log any errors and judging from the input stream's content is was contacted properly.

          The reverse proxy error log when reaching timeout:
          {code:none}
          (70007)The timeout specified has expired: Error reading chunk
          (104)Connection reset by peer: Error reading chunk
          (-3)Unknown error 18446744073709551613: proxy: prefetch request body failed
          {code}

          I'm experiencing the same problem. Any information that could be provided to help diagnose?

          Sidnei da Silva added a comment - I'm experiencing the same problem. Any information that could be provided to help diagnose?

          Eric Cambray added a comment - - edited

          Hi,
          same here (but not the exact same trace) :

          Exception in thread "main" java.io.EOFException: unexpected stream termination
          	at hudson.remoting.ClassicCommandTransport.create(ClassicCommandTransport.java:100)
          	at hudson.remoting.Channel.<init>(Channel.java:392)
          	at hudson.remoting.Channel.<init>(Channel.java:388)
          	at hudson.remoting.Channel.<init>(Channel.java:349)
          	at hudson.remoting.Channel.<init>(Channel.java:345)
          	at hudson.remoting.Channel.<init>(Channel.java:333)
          	at hudson.cli.CLI.connectViaHttp(CLI.java:157)
          	at hudson.cli.CLI.<init>(CLI.java:140)
          	at hudson.cli.CLIConnectionFactory.connect(CLIConnectionFactory.java:68)
          	at hudson.cli.CLI._main(CLI.java:439)
          	at hudson.cli.CLI.main(CLI.java:374)
          

          I had just launch a - "java -jar jenkins-cli.jar -s http://my.jenkins.server version"

          Any idea?

          The error on the server side :

          [Tue Mar 12 16:02:12 2013] [error] [client 85.170.86.148] (70007)The timeout specified has expired: Error reading chunk  
          [Tue Mar 12 16:02:12 2013] [error] (-3)Unknown error 18446744073709551613: proxy: prefetch request body failed to 127.0.0.1:8080 (localhost) from 85.170.86.148 ()
          

          Eric Cambray added a comment - - edited Hi, same here (but not the exact same trace) : Exception in thread "main" java.io.EOFException: unexpected stream termination at hudson.remoting.ClassicCommandTransport.create(ClassicCommandTransport.java:100) at hudson.remoting.Channel.<init>(Channel.java:392) at hudson.remoting.Channel.<init>(Channel.java:388) at hudson.remoting.Channel.<init>(Channel.java:349) at hudson.remoting.Channel.<init>(Channel.java:345) at hudson.remoting.Channel.<init>(Channel.java:333) at hudson.cli.CLI.connectViaHttp(CLI.java:157) at hudson.cli.CLI.<init>(CLI.java:140) at hudson.cli.CLIConnectionFactory.connect(CLIConnectionFactory.java:68) at hudson.cli.CLI._main(CLI.java:439) at hudson.cli.CLI.main(CLI.java:374) I had just launch a - "java -jar jenkins-cli.jar -s http://my.jenkins.server version" Any idea? The error on the server side : [Tue Mar 12 16:02:12 2013] [error] [client 85.170.86.148] (70007)The timeout specified has expired: Error reading chunk [Tue Mar 12 16:02:12 2013] [error] (-3)Unknown error 18446744073709551613: proxy: prefetch request body failed to 127.0.0.1:8080 (localhost) from 85.170.86.148 ()
          Daniel Beck made changes -
          Link New: This issue is blocking JENKINS-17142 [ JENKINS-17142 ]
          Daniel Beck made changes -
          Link Original: This issue is blocking JENKINS-17142 [ JENKINS-17142 ]
          Daniel Beck made changes -
          Link New: This issue is related to JENKINS-17142 [ JENKINS-17142 ]
          Daniel Beck made changes -
          Link New: This issue is related to JENKINS-11560 [ JENKINS-11560 ]

          Same issue using Jenkins 1.531 and Jenkins behind Nginx.

          Michael Pailloncy added a comment - Same issue using Jenkins 1.531 and Jenkins behind Nginx.

          For the record, still confirmed with 1.559.

          Baptiste Mathus added a comment - For the record, still confirmed with 1.559.

            Unassigned Unassigned
            laccu Lars Klonowski
            Votes:
            10 Vote for this issue
            Watchers:
            13 Start watching this issue

              Created:
              Updated:
              Resolved: