hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Wang (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HDFS-4816) transitionToActive blocks if the SBN is doing checkpoint image transfer
Date Wed, 22 May 2013 18:33:26 GMT

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

Andrew Wang updated HDFS-4816:

    Attachment: stacks.out

Attaching my jstack output, in case I missed something.

I think we don't see an exception because {{StandbyCheckpointer#stop}} does a {{thread.interrupt}},
so the blocking get on the future throws an uncaught {{InterruptedException}} rather than
an {{ExecutionException}}. This is then silently caught in {{#doWork}} and the StandbyCheckpointer

I'm a bit surprised that I don't see a "TransferFsImageUpload" thread in the jstack (is it
automatically cleaned up when the StandbyCheckpointer terminates? is the executor reusing
the current thread?), but that's kind of a side note.

All I do see are the two servlets talking to each other and {{MiniDFSCluster#shutdown}} blocking
on them.
> transitionToActive blocks if the SBN is doing checkpoint image transfer
> -----------------------------------------------------------------------
>                 Key: HDFS-4816
>                 URL: https://issues.apache.org/jira/browse/HDFS-4816
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: namenode
>    Affects Versions: 3.0.0, 2.0.4-alpha
>            Reporter: Andrew Wang
>            Assignee: Andrew Wang
>         Attachments: hdfs-4816-1.patch, hdfs-4816-2.patch, hdfs-4816-3.patch, hdfs-4816-slow-shutdown.txt,
> The NN and SBN do this dance during checkpoint image transfer with nested HTTP GETs via
{{HttpURLConnection}}. When an admin does a {{-transitionToActive}} during this transfer,
part of that is interrupting an ongoing checkpoint so we can transition immediately.
> However, the {{thread.interrupt()}} in {{StandbyCheckpointer#stop}} gets swallowed by
{{connection.getResponseCode()}} in {{TransferFsImage#doGetUrl}}. None of the methods in HttpURLConnection
throw InterruptedException, so we need to do something else (perhaps HttpClient [1]):
> [1]: http://hc.apache.org/httpclient-3.x/

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message