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