[ 
https://issues.apache.org/jira/browse/SQOOP-2369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

guoquan updated SQOOP-2369:
---------------------------
    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:
{code}
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)
{code}
The ajpPort should choose a available port.

  was: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 binded 
by 


> Change the default AjpPort 8009 to a random port in TomcatSqoopMiniCluster
> --------------------------------------------------------------------------
>
>                 Key: SQOOP-2369
>                 URL: https://issues.apache.org/jira/browse/SQOOP-2369
>             Project: Sqoop
>          Issue Type: Bug
>            Reporter: guoquan
>            Assignee: guoquan
>
> 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:
> {code}
> 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)
> {code}
> The ajpPort should choose a available port.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to