hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-7798) Checkpointing failure caused by shared KerberosAuthenticator
Date Tue, 17 Feb 2015 15:01:21 GMT

    [ https://issues.apache.org/jira/browse/HDFS-7798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14324265#comment-14324265

Hudson commented on HDFS-7798:

SUCCESS: Integrated in Hadoop-Hdfs-trunk-Java8 #98 (See [https://builds.apache.org/job/Hadoop-Hdfs-trunk-Java8/98/])
HDFS-7798. Checkpointing failure caused by shared KerberosAuthenticator. (Chengbing Liu via
yliu) (yliu: rev 500e6a0f46d14a591d0ec082b6d26ee59bdfdf76)
* hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/web/URLConnectionFactory.java
* hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

> Checkpointing failure caused by shared KerberosAuthenticator
> ------------------------------------------------------------
>                 Key: HDFS-7798
>                 URL: https://issues.apache.org/jira/browse/HDFS-7798
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: security
>    Affects Versions: 2.6.0
>            Reporter: Chengbing Liu
>            Assignee: Chengbing Liu
>            Priority: Critical
>             Fix For: 2.7.0
>         Attachments: HDFS-7798.01.patch
> We have observed in our real cluster occasional checkpointing failure. The standby NameNode
was not able to upload image to the active NameNode.
> After some digging, the root cause appears to be a shared {{KerberosAuthenticator}} in
{{URLConnectionFactory}}. The authenticator is designed as a use-once instance, and is not
stateless. It has attributes such as {{HttpURLConnection}} and {{URL}}. When multiple threads
are calling {{URLConnectionFactory#openConnection(...)}}, the shared authenticator is going
to have race condition, resulting in a failed image uploading.
> Therefore for the first step, without breaking the current API, I propose we create a
new {{KerberosAuthenticator}} instance for each connection, to make checkpointing work. We
may consider making {{Authenticator}} design and implementation stateless afterwards, as {{ConnectionConfigurator}}

This message was sent by Atlassian JIRA

View raw message