[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16550192#comment-16550192 ] lindongdong commented on HDFS-2: [~vinayrpet], I totally agree with you. {panel:title=the opinion} I agree that this will avoid accidental deletes. But still it should be able to format on demand. i.e. When the answer to prompt is 'yes' during reformat. Similar to Namenode dir format. Namenode calls the JournalNode format() only after confirmation in the prompt (or "-force") was mentioned. Ideally, we should be passing on the confirmation of prompt via RPC to JournalNode as well. {panel} > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin >Priority: Major > Fix For: 2.9.0, 3.0.0-alpha4 > > Attachments: HDFS-2.001.patch, HDFS-2.002.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16541368#comment-16541368 ] Vinayakumar B commented on HDFS-2: -- Should this have been marked incompatible? I agree that this will avoid accidental deletes. But still it should be able to format on demand. i.e. When the answer to prompt is 'yes' during reformat. Similar to Namenode dir format. > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin >Priority: Major > Fix For: 2.9.0, 3.0.0-alpha4 > > Attachments: HDFS-2.001.patch, HDFS-2.002.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15849828#comment-15849828 ] Yiqun Lin commented on HDFS-2: -- Thanks [~arpitagarwal] for the commit! > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > Fix For: 2.9.0 > > Attachments: HDFS-2.001.patch, HDFS-2.002.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15849276#comment-15849276 ] Hudson commented on HDFS-2: --- SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #11197 (See [https://builds.apache.org/job/Hadoop-trunk-Commit/11197/]) HDFS-2. Journal Nodes should refuse to format non-empty directories. (arp: rev 6aa09dc28adc3e7c81258568ac08996eee0356da) * (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/Storage.java * (edit) hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/qjournal/server/TestJournal.java * (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/JNStorage.java > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > Fix For: 2.9.0 > > Attachments: HDFS-2.001.patch, HDFS-2.002.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15849181#comment-15849181 ] Hadoop QA commented on HDFS-2: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 17s{color} | {color:blue} Docker mode activated. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 1 new or modified test files. {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 14m 10s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 48s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 32s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 59s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 17s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 59s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 47s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 54s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 49s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 49s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 27s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 56s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 11s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 48s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 38s{color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 99m 58s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 29s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}127m 25s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.hdfs.server.datanode.TestDataNodeMXBean | | Timed out junit tests | org.apache.hadoop.hdfs.server.datanode.TestDataNodeVolumeFailureReporting | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:a9ad5d6 | | JIRA Issue | HDFS-2 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12838099/HDFS-2.002.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle | | uname | Linux 520934c90454 3.13.0-106-generic #153-Ubuntu SMP Tue Dec 6 15:44:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | trunk / b6f290d | | Default Java | 1.8.0_121 | | findbugs | v3.0.0 | | unit | https://builds.apache.org/job/PreCommit-HDFS-Build/18309/artifact/patchprocess/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/18309/testReport/ | | modules | C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/18309/console | | Powered by | Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org | This message was automatically generated. > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvemen
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15848991#comment-15848991 ] Arpit Agarwal commented on HDFS-2: -- Sorry I missed this one [~linyiqun]. +1 pending Jenkins. > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > Attachments: HDFS-2.001.patch, HDFS-2.002.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15710466#comment-15710466 ] Yiqun Lin commented on HDFS-2: -- HI [~arpitagarwal], would you have a quick look for the latest patch, I see this the state of this JIRA has not been updated for many days. Thanks. > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > Attachments: HDFS-2.001.patch, HDFS-2.002.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15702231#comment-15702231 ] Wei-Chiu Chuang commented on HDFS-2: I see, [~arpitagarwal]. In that case the patch looks good to me. > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > Attachments: HDFS-2.001.patch, HDFS-2.002.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15687419#comment-15687419 ] Arpit Agarwal commented on HDFS-2: -- Sorry I couldn't respond earlier. [~jojochuang] that is correct, if the format request comes in via RPC then the JN skips the check for non-empty directories. > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > Attachments: HDFS-2.001.patch, HDFS-2.002.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15685797#comment-15685797 ] Wei-Chiu Chuang commented on HDFS-2: IIUC, JNStorage#format may be called when starting NameNode with {{-format}} or {{-initializeSharedEdits}} arguments. So this is a different scenario than what I described (starting JournalNode). > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > Attachments: HDFS-2.001.patch, HDFS-2.002.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15681269#comment-15681269 ] Yiqun Lin commented on HDFS-2: -- Hi [~jojochuang], there are some comments from me: {quote} if current/VERSION is missing, it will start with no problem like nothing has happened. No auto-format. But when NN tries to send edits to the JN, the JN will respond with JournalNotFormattedException. {quote} Can I understand this as that we should start JN failed if current/VERSION is missing and avoid the other exceptions that will be threw in the subsequent operations? I haven't tested for this special case and I think this should not be the situation that addressed in the patch of this JIRA. If this is a problem, one way we can to do a additional "empty check" similar HDFS-10360. Now the method {{JNStorage.analyzeAndRecoverStorage}} doesn't do the check for current/VERSION file. {quote} Do you know the behavior of JN after your patch? Does JN simply ignores format? Does JN continues to function normally? {quote} My patch makes JN format failed if there is already storage directories. I'm sure It will ignores the format operations since it will throws the exception and terminate the subsequent format operations. Correct me if I am wrong.Thanks. > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > Attachments: HDFS-2.001.patch, HDFS-2.002.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15677124#comment-15677124 ] Wei-Chiu Chuang commented on HDFS-2: Hi [~arpitagarwal] a while back I also studied the behavior of JN in this situation (with minor deviation) after finished HDFS-10360 to deal with the similar issue in DataNodes. Here's what I saw. Could you comment if this is also what you saw? Maybe the situation is different, and from what I saw JN didn't automatically format the directory. {quote} if current/VERSION is missing, it will start with no problem like nothing has happened. No auto-format. But when NN tries to send edits to the JN, the JN will respond with JournalNotFormattedException. Cloudera Manager dashboard will see JN and NN in bad health. 2016-06-07 11:14:18,656 INFO org.apache.hadoop.ipc.Server: IPC Server handler 3 on 8485, call org.apache.hadoop.hdfs.qjournal.protocol.QJournal Protocol.getJournalState from 172.26.10.80:36663 Call#7 Retry#0 org.apache.hadoop.hdfs.qjournal.protocol.JournalNotFormattedException: Journal Storage Directory /data/jn/nameservice1 not formatted at org.apache.hadoop.hdfs.qjournal.server.Journal.checkFormatted(Journal.java:472) at org.apache.hadoop.hdfs.qjournal.server.Journal.getLastPromisedEpoch(Journal.java:245) at org.apache.hadoop.hdfs.qjournal.server.JournalNodeRpcServer.getJournalState(JournalNodeRpcServer.java:124) at org.apache.hadoop.hdfs.qjournal.protocolPB.QJournalProtocolServerSideTranslatorPB.getJournalState(QJournalProtocolServerSideTranslat orPB.java:118) at org.apache.hadoop.hdfs.qjournal.protocol.QJournalProtocolProtos$QJournalProtocolService$2.callBlockingMethod(QJournalProtocolProtos. java:25415) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:617) at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1060) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2086) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2082) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671) at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2080) If I remove current/VERSION from all three JNs, NN will shutdown because it's unabel to get a quorum. If I put the file back to an active JN, it will still complain about it. But if I restart the JN with the file in place, the JN will function normally. So in the case of JN, there is no permanent harm and the damage can be reverted. {quote} [~linyiqun] I think the patch looks good to me overall. Do you know the behavior of JN after your patch? Does JN simply ignores format? Does JN continues to function normally? > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > Attachments: HDFS-2.001.patch, HDFS-2.002.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15662486#comment-15662486 ] Yiqun Lin commented on HDFS-2: -- The failed tests are not related, hi [~arpitagarwal], could you please have a review on the latest patch? I have addressed your comments in the latest patch. Thanks! > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > Attachments: HDFS-2.001.patch, HDFS-2.002.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15649630#comment-15649630 ] Hadoop QA commented on HDFS-2: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 23s{color} | {color:blue} Docker mode activated. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 1 new or modified test files. {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 7m 33s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 47s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 27s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 54s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 13s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 50s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 43s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 55s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 53s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 53s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 28s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 0s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 11s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 3s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 40s{color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 94m 50s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 20s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}115m 28s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.hdfs.server.namenode.TestStartup | | | hadoop.hdfs.TestDataTransferKeepalive | | | hadoop.hdfs.TestCrcCorruption | | | hadoop.hdfs.TestDFSStripedOutputStream | | Timed out junit tests | org.apache.hadoop.hdfs.TestLeaseRecovery2 | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:e809691 | | JIRA Issue | HDFS-2 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12838099/HDFS-2.002.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle | | uname | Linux 6863068bda1c 3.13.0-96-generic #143-Ubuntu SMP Mon Aug 29 20:15:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | trunk / e1c6ef2 | | Default Java | 1.8.0_101 | | findbugs | v3.0.0 | | unit | https://builds.apache.org/job/PreCommit-HDFS-Build/17478/artifact/patchprocess/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/17478/testReport/ | | modules | C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/17478/console | | Powered by | Apache Yetus 0.4.0-SNAPSHOT http://yetus.apache.org | This message was automatically generated. > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15648748#comment-15648748 ] Arpit Agarwal commented on HDFS-2: -- Thank you for taking this up [~linyiqun]. Couple of nitpicks with the patch: # This comment can be removed. Since we call unlockAll() and analyzeStorage(), it follows that we expect the storage can be non-empty and locked. {code} // Unlock the directory since the storage maybe not empty and // locked before formatting sometimes. {code} # We should wrap the _sd.analyzeStorage(StartupOption.FORMAT, this, true);_ call in try-finally and release the lock in the finally block, so we don't return with the lock held if analyze failed. This change may be incompatible as there is a good chance of breaking someone's test setup. I'd commit it to trunk only, just to be safe. > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > Attachments: HDFS-2.001.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15647832#comment-15647832 ] Hadoop QA commented on HDFS-2: -- | (/) *{color:green}+1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 11s{color} | {color:blue} Docker mode activated. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 1 new or modified test files. {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 7m 3s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 43s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 26s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 51s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 12s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 41s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 39s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 44s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 41s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 41s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 24s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 49s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 10s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 47s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 36s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 53m 29s{color} | {color:green} hadoop-hdfs in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 18s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 71m 56s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:e809691 | | JIRA Issue | HDFS-2 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12837981/HDFS-2.001.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle | | uname | Linux a61d24f7e610 3.13.0-93-generic #140-Ubuntu SMP Mon Jul 18 21:21:05 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 026b39a | | Default Java | 1.8.0_101 | | findbugs | v3.0.0 | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/17471/testReport/ | | modules | C: hadoop-hdfs-project/hadoop-hdfs U: hadoop-hdfs-project/hadoop-hdfs | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/17471/console | | Powered by | Apache Yetus 0.4.0-SNAPSHOT http://yetus.apache.org | This message was automatically generated. > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > Attachments: HDFS-2.001.patch > > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { >
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15641049#comment-15641049 ] Yiqun Lin commented on HDFS-2: -- Thanks [~arpitagarwal] for reporting this. Will attach a patch soon. > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal >Assignee: Yiqun Lin > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15640239#comment-15640239 ] Arpit Agarwal commented on HDFS-2: -- Indeed, thanks for the pointer [~jojochuang]. > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-11112) Journal Nodes should refuse to format non-empty directories
[ https://issues.apache.org/jira/browse/HDFS-2?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15640086#comment-15640086 ] Wei-Chiu Chuang commented on HDFS-2: Sounds like similar to HDFS-10457? > Journal Nodes should refuse to format non-empty directories > --- > > Key: HDFS-2 > URL: https://issues.apache.org/jira/browse/HDFS-2 > Project: Hadoop HDFS > Issue Type: Improvement >Reporter: Arpit Agarwal > > Journal Nodes should reject the {{format}} RPC request if a storage directory > is non-empty. The relevant code is in {{JNStorage#format}}. > {code} > void format(NamespaceInfo nsInfo) throws IOException { > setStorageInfo(nsInfo); > ... > unlockAll(); > sd.clearDirectory(); > writeProperties(sd); > createPaxosDir(); > analyzeStorage(); > {code} > This would make the behavior similar to {{namenode -format -nonInteractive}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org