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

Jetty should be used rather than Winstone for embedded deployments

    XMLWordPrintable

Details

    • Improvement
    • Status: Resolved (View Workflow)
    • Major
    • Resolution: Fixed
    • core
    • None

    Description

      Hudson recently switched to using Jetty as an embedded servlet engine. It has a very small size, and very very good performance.
      Put bluntly, the current use of Winstone SUCKS, and due to its threaded design will cause performance to slow to a crawl at 240+ requests a minute even on high end hardware with aggressive varnish caching. At the same time using an external Java EE container isn't that easy, so by following hudson and switching to Jetty we get the best of both worlds.

      Thanks
      md_5

      Attachments

        Issue Links

          Activity

            Hi,
            I am having trouble getting the Jenkins webpage up using a Solaris 10 server (JRE 1.6.0_26-b03).
            The log shows Jenkins started successfully (Jenkins is fully up and running).
            However when I try to connect using a web browser (tried IE and Firefox from Jenkins server localhost and remote machines) it hangs indefinitely.
            Checking netstat shows the connection is ESTABLISHED.
            All versions of Jenkins prior to 1.535 work perfectly under Solaris 10 and no versions after 1.534 work.
            So I can only assume it was the introduction of Jetty in 1.535 that has caused this issue.
            Cheers,
            Josh

            thejoshw Joshua Wherrett added a comment - Hi, I am having trouble getting the Jenkins webpage up using a Solaris 10 server (JRE 1.6.0_26-b03). The log shows Jenkins started successfully (Jenkins is fully up and running). However when I try to connect using a web browser (tried IE and Firefox from Jenkins server localhost and remote machines) it hangs indefinitely. Checking netstat shows the connection is ESTABLISHED. All versions of Jenkins prior to 1.535 work perfectly under Solaris 10 and no versions after 1.534 work. So I can only assume it was the introduction of Jetty in 1.535 that has caused this issue. Cheers, Josh
            sstack S Stack added a comment -

            Solaris 10: CLI broken at Jenkins 1.535+

            @Josh, we're running Solaris 10 and while the Jenkins UI appears to work just fine in 1.535 and above, the CLI hangs:

            java -jar 1.538/WEB-INF/jenkins-cli.jar -s http://cits.icc.intcx.net:8080 version
            
            Exception in thread "main" java.net.SocketTimeoutException: connect timed out
                    at java.net.PlainSocketImpl.socketConnect(Native Method)
                    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
                    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
                    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
                    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:385)
                    at java.net.Socket.connect(Socket.java:546)
                    at hudson.cli.CLI.connectViaCliPort(CLI.java:211)
                    at hudson.cli.CLI.<init>(CLI.java:134)
                    at hudson.cli.CLIConnectionFactory.connect(CLIConnectionFactory.java:72)
                    at hudson.cli.CLI._main(CLI.java:469)
                    at hudson.cli.CLI.main(CLI.java:384)
            

            Observations

            • Jetty is unpacked to the -Djava.io.tmpdir directory regardless of setting -DJETTY_HOME=/some/dir/.
            • JNLP port is enabled; setting this to either random or a fixed port did not address the CLI timeout.
            sstack S Stack added a comment - Solaris 10: CLI broken at Jenkins 1.535+ Per https://issues.jenkins-ci.org/browse/JENKINS-20128?focusedCommentId=188660&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-188660 , CLI works fine up to and including 1.534 @Josh, we're running Solaris 10 and while the Jenkins UI appears to work just fine in 1.535 and above, the CLI hangs: java -jar 1.538/WEB-INF/jenkins-cli.jar -s http: //cits.icc.intcx.net:8080 version Exception in thread "main" java.net.SocketTimeoutException: connect timed out at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:385) at java.net.Socket.connect(Socket.java:546) at hudson.cli.CLI.connectViaCliPort(CLI.java:211) at hudson.cli.CLI.<init>(CLI.java:134) at hudson.cli.CLIConnectionFactory.connect(CLIConnectionFactory.java:72) at hudson.cli.CLI._main(CLI.java:469) at hudson.cli.CLI.main(CLI.java:384) Observations Jetty is unpacked to the -Djava.io.tmpdir directory regardless of setting -DJETTY_HOME=/some/dir/ . JNLP port is enabled; setting this to either random or a fixed port did not address the CLI timeout.
            jglick Jesse Glick added a comment -

            @maschuru

            migration to jetty seem to ignore JENKINS_HOME

            File a separate bug (with a JIRA link) please. Do not reopen this one.

            jglick Jesse Glick added a comment - @maschuru migration to jetty seem to ignore JENKINS_HOME File a separate bug (with a JIRA link) please. Do not reopen this one.

            Code changed in jenkins
            User: Kohsuke Kawaguchi
            Path:
            pom.xml
            war/pom.xml
            http://jenkins-ci.org/commit/jenkins/2394c0cd0e233449c85da3bc75628420a2b07a05
            Log:
            [FIXED JENKINS-18366] Winstone is now powered by Jetty

            (cherry picked from commit b19f4650d7cc146e28398a33ad0625d46991e27f)

            Conflicts:
            changelog.html
            war/pom.xml

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Kohsuke Kawaguchi Path: pom.xml war/pom.xml http://jenkins-ci.org/commit/jenkins/2394c0cd0e233449c85da3bc75628420a2b07a05 Log: [FIXED JENKINS-18366] Winstone is now powered by Jetty (cherry picked from commit b19f4650d7cc146e28398a33ad0625d46991e27f) Conflicts: changelog.html war/pom.xml
            dogfood dogfood added a comment -

            Integrated in jenkins_main_trunk #3787
            [FIXED JENKINS-18366] Winstone is now powered by Jetty (Revision 2394c0cd0e233449c85da3bc75628420a2b07a05)

            Result = SUCCESS
            jesse glick : 2394c0cd0e233449c85da3bc75628420a2b07a05
            Files :

            • war/pom.xml
            • pom.xml
            dogfood dogfood added a comment - Integrated in jenkins_main_trunk #3787 [FIXED JENKINS-18366] Winstone is now powered by Jetty (Revision 2394c0cd0e233449c85da3bc75628420a2b07a05) Result = SUCCESS jesse glick : 2394c0cd0e233449c85da3bc75628420a2b07a05 Files : war/pom.xml pom.xml

            People

              Unassigned Unassigned
              md_5 Michael D
              Votes:
              10 Vote for this issue
              Watchers:
              25 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: