hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Allen Wittenauer (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HADOOP-10289) o.a.h.u.ReflectionUtils.printThreadInfo() causes deadlock in TestHttpServer
Date Wed, 03 Sep 2014 21:12:52 GMT

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

Allen Wittenauer updated HADOOP-10289:
--------------------------------------
    Fix Version/s:     (was: 3.0.0)

> 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
>         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)

Mime
View raw message