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

Allen Wittenauer updated HADOOP-10289:
--------------------------------------
    Labels: BB2015-05-TBR  (was: )

> o.a.h.u.ReflectionUtils.printThreadInfo() causes deadlock in TestHttpServer
> ---------------------------------------------------------------------------
>
>                 Key: HADOOP-10289
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10289
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: util
>    Affects Versions: 3.0.0, 2.3.0
>         Environment: MacOS X 10.9/Java 6 1.6.0_65-b14-462
>            Reporter: Laurent Goujon
>              Labels: BB2015-05-TBR
>         Attachments: TestHttpServer.jstack, hadoop-10289.patch
>
>
> This bug is a followup on HADOOP-9964
> ReflectionUtils.printThreadInfo is now a synchronized method. This change 
> creates sometimes deadlock situation in TestHttpServer if one servlet thread 
> calling this method is waiting on client to consume output.
> In TestHttpServer, several tests connect to the http server only to check the 
> status code but without reading the full inputstream. Depending on 
> HttpURLConnection, the deadlock scenario may be triggered or not.
> Note that in the original ticket, it is not explained why synchronized fixed 
> the issue. According to the attached stacktrace, test was blocked on 
> HttpServer.stop(), waiting on worker threads to stop, which didn't happen 
> because those threads were waiting for their output to be consumed, so the 
> original issue looks very similar to what I'm experiencing.
> My proposed fix is to remove synchronized (as it seems to make the issue 
> worse) but configure HttpServer.stop() to forcibly kill threads after a 
> configurable period of time



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

Reply via email to