hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todd Lipcon (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HDFS-872) DFSClient 0.20.1 is incompatible with HDFS 0.20.2
Date Fri, 15 Jan 2010 22:38:54 GMT

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

Todd Lipcon updated HDFS-872:
-----------------------------

    Attachment: hdfs-793-branch20.txt

Here's a version of HDFS-793 that I think should be compatible.

Though, one question: as I understand the old code, the order of the replies in the ack packet
was actually in reverse-depth order. That is to say, if the pipeline is Client -> DN1 ->
DN2 -> DN3, the replies come back in the order DN3, DN2, DN1. The client code, however,
was acting as if they came back in DN1, DN2, DN3. This patch does the latter order, since
that's what clients expect, and I think is what makes more sense. This is a bit "incompatible",
but since the recovery never worked right anyhow, I don't think it matters.

I also took the liberty of adding some comments that explain my understanding of the seqno=-2
stuff. Let me know if I've got it wrong.

> DFSClient 0.20.1 is incompatible with HDFS 0.20.2
> -------------------------------------------------
>
>                 Key: HDFS-872
>                 URL: https://issues.apache.org/jira/browse/HDFS-872
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: data-node, hdfs client
>    Affects Versions: 0.20.1, 0.20.2
>            Reporter: Bassam Tabbara
>            Assignee: Todd Lipcon
>             Fix For: 0.20.2
>
>         Attachments: hdfs-793-branch20.txt, hdfs-872.txt
>
>
> After upgrading to that latest HDFS 0.20.2 (r896310 from /branches/branch-0.20), old
DFS clients (0.20.1) seem to not work anymore. HBase uses the 0.20.1 hadoop core jars and
the HBase master will no longer startup. Here is the exception from the HBase master log:
> {code}
> 2010-01-06 09:59:46,762 WARN org.apache.hadoop.hdfs.DFSClient: DFS Read: java.io.IOException:
Could not obtain block: blk_338051
> 2596555557728_1002 file=/hbase/hbase.version
>         at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.chooseDataNode(DFSClient.java:1788)
>         at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:1616)
>         at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:1743)
>         at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:1673)
>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:320)
>         at java.io.DataInputStream.readUTF(DataInputStream.java:572)
>         at org.apache.hadoop.hbase.util.FSUtils.getVersion(FSUtils.java:189)
>         at org.apache.hadoop.hbase.util.FSUtils.checkVersion(FSUtils.java:208)
>         at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:208)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>         at org.apache.hadoop.hbase.master.HMaster.doMain(HMaster.java:1241)
>         at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:1282)
> 2010-01-06 09:59:46,763 FATAL org.apache.hadoop.hbase.master.HMaster: Not starting HMaster
because:
> java.io.IOException: Could not obtain block: blk_3380512596555557728_1002 file=/hbase/hbase.version
>         at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.chooseDataNode(DFSClient.java:1788)
>         at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.blockSeekTo(DFSClient.java:1616)
>         at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:1743)
>         at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.read(DFSClient.java:1673)
>         at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:320)
>         at java.io.DataInputStream.readUTF(DataInputStream.java:572)
>         at org.apache.hadoop.hbase.util.FSUtils.getVersion(FSUtils.java:189)
>         at org.apache.hadoop.hbase.util.FSUtils.checkVersion(FSUtils.java:208)
>         at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:208)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>         at org.apache.hadoop.hbase.master.HMaster.doMain(HMaster.java:1241)
>         at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:1282)
> {code}
> If I switch the hadoop jars in the hbase/lib directory with 0.20.2 version it works well,
which what led me to open this bug here and not in the HBASE project.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message