[ 
https://issues.apache.org/jira/browse/SLIDER-878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14546916#comment-14546916
 ] 

Steve Loughran commented on SLIDER-878:
---------------------------------------

This is pretty serious. I have been testing against java 8 (1.8.0_45), but not 
seen this; maybe I've not been using java 8 as the client in the functional 
test suite.

Looking at the comments there, especially stackoverflow, it's re-use of an 
existing httpconnection that's the problem, or changing HTTP request headers 
while the connection has already started [ 
http://stackoverflow.com/questions/5368535/java-httpurlconnection-issues-with-illegalstateargument-already-connected]

Looking at the code chain for the registry GET operation, we aren't doing that 
in our code. Our AM webapp is set to redirect to the RM proxy if it gets a 
direct GET request -but at the same time, it should be GETs everywhere.

I recall we encountered something like this before using Jersey to do the REST 
client, where we were trying to do some security/rest work dealing with RM 
Redirects that were also doing some HTTPS/HTTP conversion (when we were trying 
to run the AM as HTTPS).

And looking at the code, I can see a possible code path where our code  
{{UrlConnectionOperations}} is trying to do some setup of the new HTTP 
connection (setting cache and redirect policy) after the security token has 
been set. Which doesn't look like a codepath to trigger the error string you 
are seeing in {{setRequestMethod]}}.

I'll switch my IDE to using the Java 8 SDK (I bond it to java 7 to avoid 
accidentally using any Java 8 classes/methods); to see how the codepath looks 
there.

meanwhile, I have one question: is this a secure cluster?

> Slider cannot support jdk 1.8 for command slider registry --getconf 
> hbase-site --name hb1
> -----------------------------------------------------------------------------------------
>
>                 Key: SLIDER-878
>                 URL: https://issues.apache.org/jira/browse/SLIDER-878
>             Project: Slider
>          Issue Type: Bug
>          Components: client
>    Affects Versions: Slider 0.61, Slider 0.70, Slider 0.80
>         Environment: Slider 0.61 jdk 1.8
>            Reporter: qiang xu
>
> slider registry --getconf hbase-site --name hb1
> 2015-05-16 11:16:37,829 [main] INFO  impl.TimelineClientImpl - Timeline 
> service address: http://d64:8188/ws/v1/timeline/
> 2015-05-16 11:16:38,472 [main] INFO  client.RMProxy - Connecting to 
> ResourceManager at d64/160.164.0.7:18040
> Exception: java.lang.IllegalStateException: connect in progress
> 2015-05-16 11:16:38,958 [main] ERROR main.ServiceLauncher - Exception: 
> java.lang.IllegalStateException: connect in progress
> com.sun.jersey.api.client.ClientHandlerException: 
> java.lang.IllegalStateException: connect in progress
>         at 
> com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:149)
>         at com.sun.jersey.api.client.Client.handle(Client.java:648)
>         at com.sun.jersey.api.client.WebResource.handle(WebResource.java:670)
>         at com.sun.jersey.api.client.WebResource.get(WebResource.java:191)
>         at 
> org.apache.slider.core.registry.retrieve.RegistryRetriever.getConfigurations(RegistryRetriever.java:216)
>         at 
> org.apache.slider.client.SliderClient.actionRegistryGetConfig(SliderClient.java:3117)
>         at 
> org.apache.slider.client.SliderClient.actionRegistry(SliderClient.java:2610)
>         at org.apache.slider.client.SliderClient.exec(SliderClient.java:404)
>         at 
> org.apache.slider.client.SliderClient.runService(SliderClient.java:348)
>         at 
> org.apache.slider.core.main.ServiceLauncher.launchService(ServiceLauncher.java:188)
>         at 
> org.apache.slider.core.main.ServiceLauncher.launchServiceRobustly(ServiceLauncher.java:475)
>         at 
> org.apache.slider.core.main.ServiceLauncher.launchServiceAndExit(ServiceLauncher.java:403)
>         at 
> org.apache.slider.core.main.ServiceLauncher.serviceMain(ServiceLauncher.java:630)
>         at org.apache.slider.Slider.main(Slider.java:49)
> Caused by: java.lang.IllegalStateException: connect in progress
>         at 
> sun.net.www.protocol.http.HttpURLConnection.setRequestMethod(HttpURLConnection.java:516)
>         at 
> com.sun.jersey.client.urlconnection.URLConnectionClientHandler.setRequestMethodUsingWorkaroundForJREBug(URLConnectionClientHandler.java:259)
>         at 
> com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:191)
>         at 
> com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:147)
>         ... 13 more
> 2015-05-16 11:16:38,963 [main] INFO  util.ExitUtil - Exiting with status 56
> It is caused by the jersey.
> Some reference
> https://bugs.openjdk.java.net/browse/JDK-8029127
> http://stackoverflow.com/questions/27571645/httpurlconnection-getinputstream-to-read-page-and-then-make-post-request



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

Reply via email to