Uploaded image for project: 'Sqoop (Retired)'
  1. Sqoop (Retired)
  2. SQOOP-2369

Sqoop2: Use random port for AJP end point in TomcatSqoopMiniCluster

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 1.99.7
    • None
    • None

    Description

      Currently Sqoop provides a TomcatSqoopMiniCluster for integration test. TomcatSqoopMiniCluster will find a available port as the Servlet port. this way is right. But the TomcatSqoopMiniCluster doesn't choose the ajpPort like the Servlet port. it use the default 8009 as the ajpPort. This port has been occupied by other service like Jenkins. The Cargo installContainer can't stop the Tomcat server and an exception thrown:

      org.codehaus.cargo.container.ContainerException: Failed to stop the Tomcat 6.x container. Check the [./tomcat.log] file containing the container logs for more details.
      	at org.codehaus.cargo.container.spi.AbstractLocalContainer.stop(AbstractLocalContainer.java:234)
      	at org.apache.sentry.tests.e2e.sqoop.TomcatSqoopRunner.stop(TomcatSqoopRunner.java:205)
      	at org.apache.sentry.tests.e2e.sqoop.AbstractSqoopSentryTestBase.afterTestEndToEnd(AbstractSqoopSentryTestBase.java:75)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
      	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
      	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
      	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:36)
      	at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
      	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
      	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
      	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
      	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
      	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
      Caused by: org.codehaus.cargo.container.ContainerException: Server port 8009 did not shutdown within the timeout period [120000]
      	at org.codehaus.cargo.container.spi.AbstractLocalContainer.waitForPortShutdown(AbstractLocalContainer.java:406)
      	at org.codehaus.cargo.container.spi.AbstractLocalContainer.waitForPortShutdown(AbstractLocalContainer.java:315)
      	at org.codehaus.cargo.container.tomcat.internal.AbstractCatalinaInstalledLocalContainer.waitForCompletion(AbstractCatalinaInstalledLocalContainer.java:206)
      	at org.codehaus.cargo.container.spi.AbstractLocalContainer.stop(AbstractLocalContainer.java:223)
      	... 17 more
      org.codehaus.cargo.container.ContainerException: Server port 8009 did not shutdown within the timeout period [120000]
      	at org.codehaus.cargo.container.spi.AbstractLocalContainer.waitForPortShutdown(AbstractLocalContainer.java:406)
      	at org.codehaus.cargo.container.spi.AbstractLocalContainer.waitForPortShutdown(AbstractLocalContainer.java:315)
      	at org.codehaus.cargo.container.tomcat.internal.AbstractCatalinaInstalledLocalContainer.waitForCompletion(AbstractCatalinaInstalledLocalContainer.java:206)
      	at org.codehaus.cargo.container.spi.AbstractLocalContainer.stop(AbstractLocalContainer.java:223)
      	at org.apache.sentry.tests.e2e.sqoop.TomcatSqoopRunner.stop(TomcatSqoopRunner.java:205)
      	at org.apache.sentry.tests.e2e.sqoop.AbstractSqoopSentryTestBase.afterTestEndToEnd(AbstractSqoopSentryTestBase.java:75)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
      	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
      	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
      	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:36)
      	at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
      	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
      	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
      	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
      	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
      	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
      	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
      

      The ajpPort should choose a available port.

      Attachments

        1. SQOOP-2369.1.patch
          2 kB
          shenguoquan
        2. SQOOP-2369.0.patch
          2 kB
          shenguoquan
        3. SQOOP-2369.0.patch
          2 kB
          shenguoquan

        Activity

          People

            guoquan shenguoquan
            guoquan shenguoquan
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: