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

Premature EOF/Connection reset while trying to connect to Jenkins via Apache2 reverse proxy

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • cli
    • None
    • Debian GNU/Linux 5.0.8 (lenny)
      Apache 2.2.9-10+lenny9
      Java SE Runtime Environment 1.6.0_20
      Jenkins 1.408

      Host system

      $ lsb_release -idrc
      Distributor ID: Debian
      Description:    Debian GNU/Linux 5.0.8 (lenny)
      Release:        5.0.8
      Codename:       lenny
      

      Java version

      $ java -version
      java version "1.6.0_20"
      Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
      Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
      

      Installed software with versions

      $ apt-show-versions -r -p 'jenkins.*|apache2.*|libapache2-.*' | column -t
      apache2/lenny                     uptodate  2.2.9-10+lenny9
      apache2-doc/lenny                 uptodate  2.2.9-10+lenny9
      apache2-mpm-prefork/lenny         uptodate  2.2.9-10+lenny9
      apache2-utils/lenny               uptodate  2.2.9-10+lenny9
      apache2.2-common/lenny            uptodate  2.2.9-10+lenny9
      jenkins/binary                    uptodate  1.408
      libapache2-mod-auth-mysql/lenny   uptodate  4.3.9-11
      libapache2-mod-auth-openid/lenny  uptodate  0.3-2
      libapache2-mod-encoding/lenny     uptodate  20040616-5
      libapache2-mod-fcgid/lenny        uptodate  1:2.2-1+lenny1
      libapache2-mod-geoip/lenny        uptodate  1.1.8-2
      libapache2-mod-php5/lenny         uptodate  5.2.6.dfsg.1-1+lenny10
      libapache2-mod-python/lenny       uptodate  3.3.1-7
      libapache2-mod-wsgi/lenny         uptodate  2.5-1~lenny1
      

      Loaded Apache2 modules (maybe this could be relevant, i don't know)

      $ find /etc/apache2/mods-enabled/ -name '*.load' | sed 's|.*/||' | sort | column
      alias.load              authz_user.load         geoip.load              rewrite.load
      auth_basic.load         autoindex.load          mime.load               setenvif.load
      auth_mysql.load         cgi.load                negotiation.load        status.load
      authn_file.load         deflate.load            php5.load               wsgi.load
      authz_default.load      dir.load                proxy_http.load
      authz_groupfile.load    env.load                proxy.load
      authz_host.load         fcgid.load              python.load
      

      The reverse proxy setup

      $ cat /etc/apache2/conf.d/jenkins.conf
      ProxyPass         /jenkins  http://localhost:8080/jenkins
      ProxyPassReverse  /jenkins  http://localhost:8080/jenkins
      
      # Local reverse proxy authorization override
      # Most unix distribution deny proxy by default (ie /etc/apache2/mods-enabled/proxy.conf in Ubuntu)
      <Proxy http://localhost:8080/jenkins*>
        Order deny,allow
        Allow from all
      </Proxy>
      

      After invoking the command it takes a long time until the CLI dose throw the error. I suppose it's just the long time out

      $ java -jar jenkins-cli.jar -s http://localhost/jenkins/ version
      Exception in thread "main" java.io.IOException: Premature EOF
              at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:538)
              at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:582)
              at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:669)
              at java.io.FilterInputStream.read(FilterInputStream.java:116)
              at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2512)
              at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2507)
              at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:2496)
              at hudson.remoting.Channel.<init>(Channel.java:386)
              at hudson.remoting.Channel.<init>(Channel.java:348)
              at hudson.remoting.Channel.<init>(Channel.java:309)
              at hudson.remoting.Channel.<init>(Channel.java:305)
              at hudson.remoting.Channel.<init>(Channel.java:293)
              at hudson.cli.CLI.<init>(CLI.java:92)
              at hudson.cli.CLI.<init>(CLI.java:63)
              at hudson.cli.CLI.main(CLI.java:182)
      

      The Jenkins server log dose contain such an entry for each failed connection attempt

      $ cat /var/log/jenkins/jenkins.log
      Apr 23, 2011 8:50:30 AM hudson.remoting.Channel$ReaderThread run
      SEVERE: I/O error in channel HTTP full-duplex channel 5a8a8941-e820-4b03-a52e-5f45c4112afc
      java.net.SocketException: Connection reset
      	at java.net.SocketInputStream.read(SocketInputStream.java:168)
      	at java.net.SocketInputStream.read(SocketInputStream.java:182)
      	at winstone.WinstoneInputStream.read(WinstoneInputStream.java:49)
      	at hudson.util.ChunkedInputStream.getChunkSizeFromInputStream(ChunkedInputStream.java:223)
      	at hudson.util.ChunkedInputStream.nextChunk(ChunkedInputStream.java:197)
      	at hudson.util.ChunkedInputStream.read(ChunkedInputStream.java:120)
      	at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2249)
      	at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2542)
      	at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2552)
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297)
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
      	at hudson.remoting.Channel$ReaderThread.run(Channel.java:992)
      

      Interestingly the connection dose work fine when I connect directly to it

      $ java -jar jenkins-cli.jar -s http://localhost:8080/jenkins/ version
      1.408
      

            Unassigned Unassigned
            166_mmx 166_MMX
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: