背景:将社区的SBN Read(Observer NameNode)相关patch合入我们的分支时,在测试集群上测试,遇到一个非常严重的BUG,会导致NameNode挂掉以及数据丢失。
先说解决方案:
HDFS-14317解决了这个问题,我们移植的时候没看到这个patch在ONN的sub-task里,因此漏移植了。
具体细节:
开始我们不知道社区已经有了bug fix,于是提了一个ISSUE,将详细的日志信息都挂在了HDFS-16507上。
我来描述一下现象,在edits_inprogress_xxxx会被错误地purge(清理)掉,然后active namenode尝试finalize segment的时候找不到对应的txid,然后导致一个FATAL错误,namenode挂掉。
问题根源:
由于引入了Observer Namenode,于是需要开启tail in-progress状态的editlog。配置为:
<property></