[jira] [Commented] (HADOOP-14469) FTPFileSystem#listStatus get currentPath and parentPath at the same time, causing recursively list action endless
[ https://issues.apache.org/jira/browse/HADOOP-14469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16056919#comment-16056919 ] Hongyuan Li commented on HADOOP-14469: -- will resubmit the patch till HADOOP-14559 is resolved to avoid code conflict. > FTPFileSystem#listStatus get currentPath and parentPath at the same time, > causing recursively list action endless > - > > Key: HADOOP-14469 > URL: https://issues.apache.org/jira/browse/HADOOP-14469 > Project: Hadoop Common > Issue Type: Bug > Components: fs, tools/distcp >Affects Versions: 2.6.0 > Environment: ftp build by windows7 + Serv-U_64 12.1.0.8 > code runs any os >Reporter: Hongyuan Li >Assignee: Hongyuan Li >Priority: Critical > Attachments: HADOOP-14469-001.patch, HADOOP-14469-002.patch, > HADOOP-14469-003.patch, HADOOP-14469-004.patch, HADOOP-14469-005.patch, > HADOOP-14469-006.patch, HADOOP-14469-007.patch, HADOOP-14469-008.patch > > > for some ftpsystems, liststatus method will return new Path(".") and new > Path(".."), thus causing list op looping.for example, Serv-U > We can see the logic in code below: > {code} > private FileStatus[] listStatus(FTPClient client, Path file) > throws IOException { > …… > FileStatus[] fileStats = new FileStatus[ftpFiles.length]; > for (int i = 0; i < ftpFiles.length; i++) { > fileStats[i] = getFileStatus(ftpFiles[i], absolute); > } > return fileStats; > } > {code} > {code} > public void test() throws Exception{ > FTPFileSystem ftpFileSystem = new FTPFileSystem(); > ftpFileSystem.initialize(new > Path("ftp://test:123456@192.168.44.1/;).toUri(), > new Configuration()); > FileStatus[] fileStatus = ftpFileSystem.listStatus(new Path("/new")); > for(FileStatus fileStatus1 : fileStatus) > System.out.println(fileStatus1); > } > {code} > using test code below, the test results list below > {code} > FileStatus{path=ftp://test:123456@192.168.44.1/new; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14431-002.patch; > isDirectory=false; length=2036; replication=1; blocksize=4096; > modification_time=149579778; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14486-001.patch; > isDirectory=false; length=1322; replication=1; blocksize=4096; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop-main; > isDirectory=true; modification_time=149579712; access_time=0; owner=user; > group=group; permission=-; isSymlink=false} > {code} > In results above, {{FileStatus{path=ftp://test:123456@192.168.44.1/new; ……}} > is obviously the current Path, and > {{FileStatus{path=ftp://test:123456@192.168.44.1/;……}} is obviously the > parent Path. > So, if we want to walk the directory recursively, it will stuck. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Commented] (HADOOP-14469) FTPFileSystem#listStatus get currentPath and parentPath at the same time, causing recursively list action endless
[ https://issues.apache.org/jira/browse/HADOOP-14469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16056831#comment-16056831 ] Hadoop QA commented on HADOOP-14469: | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 0s{color} | {color:blue} Docker mode activated. {color} | | {color:red}-1{color} | {color:red} patch {color} | {color:red} 0m 5s{color} | {color:red} HADOOP-14469 does not apply to trunk. Rebase required? Wrong Branch? See https://wiki.apache.org/hadoop/HowToContribute for help. {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Issue | HADOOP-14469 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12873776/HADOOP-14469-008.patch | | Console output | https://builds.apache.org/job/PreCommit-HADOOP-Build/12583/console | | Powered by | Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org | This message was automatically generated. > FTPFileSystem#listStatus get currentPath and parentPath at the same time, > causing recursively list action endless > - > > Key: HADOOP-14469 > URL: https://issues.apache.org/jira/browse/HADOOP-14469 > Project: Hadoop Common > Issue Type: Bug > Components: fs, tools/distcp >Affects Versions: 2.6.0 > Environment: ftp build by windows7 + Serv-U_64 12.1.0.8 > code runs any os >Reporter: Hongyuan Li >Assignee: Hongyuan Li >Priority: Critical > Attachments: HADOOP-14469-001.patch, HADOOP-14469-002.patch, > HADOOP-14469-003.patch, HADOOP-14469-004.patch, HADOOP-14469-005.patch, > HADOOP-14469-006.patch, HADOOP-14469-007.patch, HADOOP-14469-008.patch > > > for some ftpsystems, liststatus method will return new Path(".") and new > Path(".."), thus causing list op looping.for example, Serv-U > We can see the logic in code below: > {code} > private FileStatus[] listStatus(FTPClient client, Path file) > throws IOException { > …… > FileStatus[] fileStats = new FileStatus[ftpFiles.length]; > for (int i = 0; i < ftpFiles.length; i++) { > fileStats[i] = getFileStatus(ftpFiles[i], absolute); > } > return fileStats; > } > {code} > {code} > public void test() throws Exception{ > FTPFileSystem ftpFileSystem = new FTPFileSystem(); > ftpFileSystem.initialize(new > Path("ftp://test:123456@192.168.44.1/;).toUri(), > new Configuration()); > FileStatus[] fileStatus = ftpFileSystem.listStatus(new Path("/new")); > for(FileStatus fileStatus1 : fileStatus) > System.out.println(fileStatus1); > } > {code} > using test code below, the test results list below > {code} > FileStatus{path=ftp://test:123456@192.168.44.1/new; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14431-002.patch; > isDirectory=false; length=2036; replication=1; blocksize=4096; > modification_time=149579778; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14486-001.patch; > isDirectory=false; length=1322; replication=1; blocksize=4096; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop-main; > isDirectory=true; modification_time=149579712; access_time=0; owner=user; > group=group; permission=-; isSymlink=false} > {code} > In results above, {{FileStatus{path=ftp://test:123456@192.168.44.1/new; ……}} > is obviously the current Path, and > {{FileStatus{path=ftp://test:123456@192.168.44.1/;……}} is obviously the > parent Path. > So, if we want to walk the directory recursively, it will stuck. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Commented] (HADOOP-14469) FTPFileSystem#listStatus get currentPath and parentPath at the same time, causing recursively list action endless
[ https://issues.apache.org/jira/browse/HADOOP-14469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16056048#comment-16056048 ] Hadoop QA commented on HADOOP-14469: | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 29s{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} 15m 23s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 14m 15s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 35s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 12s{color} | {color:green} trunk passed {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 1m 37s{color} | {color:red} hadoop-common-project/hadoop-common in trunk has 18 extant Findbugs warnings. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 51s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 49s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 12m 34s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 12m 34s{color} | {color:green} root generated 0 new + 821 unchanged - 2 fixed = 821 total (was 823) {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 37s{color} | {color:orange} hadoop-common-project/hadoop-common: The patch generated 1 new + 6 unchanged - 0 fixed = 7 total (was 6) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 9s{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 43s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 49s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 9m 28s{color} | {color:green} hadoop-common in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 38s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 64m 7s{color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:14b5c93 | | JIRA Issue | HADOOP-14469 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12873694/HADOOP-14469-007.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle | | uname | Linux dad1e2a6ad2b 3.13.0-116-generic #163-Ubuntu SMP Fri Mar 31 14:13:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | trunk / dd65eea | | Default Java | 1.8.0_131 | | findbugs | v3.1.0-RC1 | | findbugs | https://builds.apache.org/job/PreCommit-HADOOP-Build/12577/artifact/patchprocess/branch-findbugs-hadoop-common-project_hadoop-common-warnings.html | | checkstyle | https://builds.apache.org/job/PreCommit-HADOOP-Build/12577/artifact/patchprocess/diff-checkstyle-hadoop-common-project_hadoop-common.txt | | Test Results | https://builds.apache.org/job/PreCommit-HADOOP-Build/12577/testReport/ | | modules | C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common | | Console output | https://builds.apache.org/job/PreCommit-HADOOP-Build/12577/console | | Powered by | Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org | This message was automatically generated. > FTPFileSystem#listStatus get currentPath and parentPath at the same time, > causing recursively list action endless > - > > Key: HADOOP-14469 > URL: https://issues.apache.org/jira/browse/HADOOP-14469 >
[jira] [Commented] (HADOOP-14469) FTPFileSystem#listStatus get currentPath and parentPath at the same time, causing recursively list action endless
[ https://issues.apache.org/jira/browse/HADOOP-14469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16055869#comment-16055869 ] Hongyuan Li commented on HADOOP-14469: -- resubmit a new patch to correct the following things: 1、fix the related findbug warn 2、make the test units more gracefully and more obvious > FTPFileSystem#listStatus get currentPath and parentPath at the same time, > causing recursively list action endless > - > > Key: HADOOP-14469 > URL: https://issues.apache.org/jira/browse/HADOOP-14469 > Project: Hadoop Common > Issue Type: Bug > Components: fs, tools/distcp >Affects Versions: 3.0.0-alpha3 > Environment: ftp build by windows7 + Serv-U_64 12.1.0.8 > code runs any os >Reporter: Hongyuan Li >Assignee: Hongyuan Li >Priority: Critical > Attachments: HADOOP-14469-001.patch, HADOOP-14469-002.patch, > HADOOP-14469-003.patch, HADOOP-14469-004.patch, HADOOP-14469-005.patch, > HADOOP-14469-006.patch > > > for some ftpsystems, liststatus method will return new Path(".") and new > Path(".."), thus causing list op looping.for example, Serv-U > We can see the logic in code below: > {code} > private FileStatus[] listStatus(FTPClient client, Path file) > throws IOException { > …… > FileStatus[] fileStats = new FileStatus[ftpFiles.length]; > for (int i = 0; i < ftpFiles.length; i++) { > fileStats[i] = getFileStatus(ftpFiles[i], absolute); > } > return fileStats; > } > {code} > {code} > public void test() throws Exception{ > FTPFileSystem ftpFileSystem = new FTPFileSystem(); > ftpFileSystem.initialize(new > Path("ftp://test:123456@192.168.44.1/;).toUri(), > new Configuration()); > FileStatus[] fileStatus = ftpFileSystem.listStatus(new Path("/new")); > for(FileStatus fileStatus1 : fileStatus) > System.out.println(fileStatus1); > } > {code} > using test code below, the test results list below > {code} > FileStatus{path=ftp://test:123456@192.168.44.1/new; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14431-002.patch; > isDirectory=false; length=2036; replication=1; blocksize=4096; > modification_time=149579778; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14486-001.patch; > isDirectory=false; length=1322; replication=1; blocksize=4096; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop-main; > isDirectory=true; modification_time=149579712; access_time=0; owner=user; > group=group; permission=-; isSymlink=false} > {code} > In results above, {{FileStatus{path=ftp://test:123456@192.168.44.1/new; ……}} > is obviously the current Path, and > {{FileStatus{path=ftp://test:123456@192.168.44.1/;……}} is obviously the > parent Path. > So, if we want to walk the directory recursively, it will stuck. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Commented] (HADOOP-14469) FTPFileSystem#listStatus get currentPath and parentPath at the same time, causing recursively list action endless
[ https://issues.apache.org/jira/browse/HADOOP-14469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16052747#comment-16052747 ] Hadoop QA commented on HADOOP-14469: | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 14s{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 1s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 14m 7s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 36s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 8s{color} | {color:green} trunk passed {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 1m 26s{color} | {color:red} hadoop-common-project/hadoop-common in trunk has 19 extant Findbugs warnings. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 51s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 42s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 10m 46s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 10m 46s{color} | {color:green} root generated 0 new + 821 unchanged - 2 fixed = 821 total (was 823) {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 35s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 6s{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:red}-1{color} | {color:red} findbugs {color} | {color:red} 1m 37s{color} | {color:red} hadoop-common-project/hadoop-common generated 1 new + 19 unchanged - 0 fixed = 20 total (was 19) {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 48s{color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 7m 53s{color} | {color:red} hadoop-common in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 35s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 58m 13s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | FindBugs | module:hadoop-common-project/hadoop-common | | | Possible null pointer dereference of dirEntries in org.apache.hadoop.fs.ftp.FTPFileSystem.delete(FTPClient, Path, boolean) Dereferenced at FTPFileSystem.java:dirEntries in org.apache.hadoop.fs.ftp.FTPFileSystem.delete(FTPClient, Path, boolean) Dereferenced at FTPFileSystem.java:[line 414] | | Failed junit tests | hadoop.fs.TestFilterFileSystem | | | hadoop.fs.TestHarFileSystem | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:14b5c93 | | JIRA Issue | HADOOP-14469 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12873370/HADOOP-14469-005.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle | | uname | Linux f483fa7d0498 3.13.0-116-generic #163-Ubuntu SMP Fri Mar 31 14:13:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 6460df2 | | Default Java | 1.8.0_131 | | findbugs | v3.1.0-RC1 | | findbugs | https://builds.apache.org/job/PreCommit-HADOOP-Build/12556/artifact/patchprocess/branch-findbugs-hadoop-common-project_hadoop-common-warnings.html | | findbugs | https://builds.apache.org/job/PreCommit-HADOOP-Build/12556/artifact/patchprocess/new-findbugs-hadoop-common-project_hadoop-common.html | | unit | https://builds.apache.org/job/PreCommit-HADOOP-Build/12556/artifact/patchprocess/patch-unit-hadoop-common-project_hadoop-common.txt | | Test Results | https://builds.apache.org/job/PreCommit-HADOOP-Build/12556/testReport/ | | modules | C: hadoop-common-project/hadoop-common U:
[jira] [Commented] (HADOOP-14469) FTPFileSystem#listStatus get currentPath and parentPath at the same time, causing recursively list action endless
[ https://issues.apache.org/jira/browse/HADOOP-14469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16052718#comment-16052718 ] Hongyuan Li commented on HADOOP-14469: -- resubmit patch to add the correct statement of param qualifyPath {{getFileStatus(FTPFile ftpFile, Path parentPath,boolean qualifyPath)}}. dirEntries in {{ delete(FTPClient client, Path file, boolean recursive)}} cannot be null, because method {{listStatus(FTPClient client, Path file)}} returned { FileStatus[] { fileStat }} or {{getFileStatuses(absolute, ftpFiles, true)}}.Meanwhile, method {{getFileStatuses(absolute, ftpFiles, true)}} uses {{fileStatusList.toArray(new FileStatus[fileStatusList.size()])}},which will return an empty array at least. Test result using Serv-U using code in description lists below {code} FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop; isDirectory=true; modification_time=149671698; access_time=0; owner=user; group=group; permission=-; isSymlink=false} FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14431-002.patch; isDirectory=false; length=2036; replication=1; blocksize=4096; modification_time=149579778; access_time=0; owner=user; group=group; permission=-; isSymlink=false} FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14486-001.patch; isDirectory=false; length=1322; replication=1; blocksize=4096; modification_time=149671698; access_time=0; owner=user; group=group; permission=-; isSymlink=false} FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop-main; isDirectory=true; modification_time=149579712; access_time=0; owner=user; group=group; permission=-; isSymlink=false} {code} > FTPFileSystem#listStatus get currentPath and parentPath at the same time, > causing recursively list action endless > - > > Key: HADOOP-14469 > URL: https://issues.apache.org/jira/browse/HADOOP-14469 > Project: Hadoop Common > Issue Type: Bug > Components: fs, tools/distcp >Affects Versions: 3.0.0-alpha3 > Environment: ftp build by windows7 + Serv-U_64 12.1.0.8 > code runs any os >Reporter: Hongyuan Li >Assignee: Hongyuan Li >Priority: Critical > Attachments: HADOOP-14469-001.patch, HADOOP-14469-002.patch, > HADOOP-14469-003.patch, HADOOP-14469-004.patch, HADOOP-14469-005.patch > > > for some ftpsystems, liststatus method will return new Path(".") and new > Path(".."), thus causing list op looping.for example, Serv-U > We can see the logic in code below: > {code} > private FileStatus[] listStatus(FTPClient client, Path file) > throws IOException { > …… > FileStatus[] fileStats = new FileStatus[ftpFiles.length]; > for (int i = 0; i < ftpFiles.length; i++) { > fileStats[i] = getFileStatus(ftpFiles[i], absolute); > } > return fileStats; > } > {code} > {code} > public void test() throws Exception{ > FTPFileSystem ftpFileSystem = new FTPFileSystem(); > ftpFileSystem.initialize(new > Path("ftp://test:123456@192.168.44.1/;).toUri(), > new Configuration()); > FileStatus[] fileStatus = ftpFileSystem.listStatus(new Path("/new")); > for(FileStatus fileStatus1 : fileStatus) > System.out.println(fileStatus1); > } > {code} > using test code below, the test results list below > {code} > FileStatus{path=ftp://test:123456@192.168.44.1/new; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14431-002.patch; > isDirectory=false; length=2036; replication=1; blocksize=4096; > modification_time=149579778; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14486-001.patch; > isDirectory=false; length=1322; replication=1; blocksize=4096; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop-main; > isDirectory=true; modification_time=149579712; access_time=0; owner=user; > group=group; permission=-; isSymlink=false} > {code} > In results above, {{FileStatus{path=ftp://test:123456@192.168.44.1/new; ……}} > is obviously the current Path, and
[jira] [Commented] (HADOOP-14469) FTPFileSystem#listStatus get currentPath and parentPath at the same time, causing recursively list action endless
[ https://issues.apache.org/jira/browse/HADOOP-14469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16052162#comment-16052162 ] Hadoop QA commented on HADOOP-14469: | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 14s{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} 13m 15s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 13m 50s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 36s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 10s{color} | {color:green} trunk passed {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 1m 34s{color} | {color:red} hadoop-common-project/hadoop-common in trunk has 19 extant Findbugs warnings. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 53s{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} 10m 21s{color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} javac {color} | {color:red} 10m 21s{color} | {color:red} root generated 1 new + 821 unchanged - 2 fixed = 822 total (was 823) {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 35s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 2s{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:red}-1{color} | {color:red} findbugs {color} | {color:red} 1m 34s{color} | {color:red} hadoop-common-project/hadoop-common generated 1 new + 19 unchanged - 0 fixed = 20 total (was 19) {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 49s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 7m 57s{color} | {color:green} hadoop-common in the patch passed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 34s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 56m 57s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | FindBugs | module:hadoop-common-project/hadoop-common | | | Possible null pointer dereference of dirEntries in org.apache.hadoop.fs.ftp.FTPFileSystem.delete(FTPClient, Path, boolean) Dereferenced at FTPFileSystem.java:dirEntries in org.apache.hadoop.fs.ftp.FTPFileSystem.delete(FTPClient, Path, boolean) Dereferenced at FTPFileSystem.java:[line 414] | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:14b5c93 | | JIRA Issue | HADOOP-14469 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12873306/HADOOP-14469-004.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle | | uname | Linux 66d63b0650a9 3.13.0-116-generic #163-Ubuntu SMP Fri Mar 31 14:13:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | trunk / 942ecbb | | Default Java | 1.8.0_131 | | findbugs | v3.1.0-RC1 | | findbugs | https://builds.apache.org/job/PreCommit-HADOOP-Build/12548/artifact/patchprocess/branch-findbugs-hadoop-common-project_hadoop-common-warnings.html | | javac | https://builds.apache.org/job/PreCommit-HADOOP-Build/12548/artifact/patchprocess/diff-compile-javac-root.txt | | findbugs | https://builds.apache.org/job/PreCommit-HADOOP-Build/12548/artifact/patchprocess/new-findbugs-hadoop-common-project_hadoop-common.html | | Test Results | https://builds.apache.org/job/PreCommit-HADOOP-Build/12548/testReport/ | | modules | C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common | | Console output | https://builds.apache.org/job/PreCommit-HADOOP-Build/12548/console |
[jira] [Commented] (HADOOP-14469) FTPFileSystem#listStatus get currentPath and parentPath at the same time, causing recursively list action endless
[ https://issues.apache.org/jira/browse/HADOOP-14469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16051655#comment-16051655 ] Hongyuan Li commented on HADOOP-14469: -- Ok, got your meanings, i will try to do it after i went off. > FTPFileSystem#listStatus get currentPath and parentPath at the same time, > causing recursively list action endless > - > > Key: HADOOP-14469 > URL: https://issues.apache.org/jira/browse/HADOOP-14469 > Project: Hadoop Common > Issue Type: Bug > Components: fs, tools/distcp >Affects Versions: 3.0.0-alpha3 > Environment: ftp build by windows7 + Serv-U_64 12.1.0.8 > code runs any os >Reporter: Hongyuan Li >Assignee: Hongyuan Li >Priority: Critical > Attachments: HADOOP-14469-001.patch, HADOOP-14469-002.patch, > HADOOP-14469-003.patch > > > for some ftpsystems, liststatus method will return new Path(".") and new > Path(".."), thus causing list op looping.for example, Serv-U > We can see the logic in code below: > {code} > private FileStatus[] listStatus(FTPClient client, Path file) > throws IOException { > …… > FileStatus[] fileStats = new FileStatus[ftpFiles.length]; > for (int i = 0; i < ftpFiles.length; i++) { > fileStats[i] = getFileStatus(ftpFiles[i], absolute); > } > return fileStats; > } > {code} > {code} > public void test() throws Exception{ > FTPFileSystem ftpFileSystem = new FTPFileSystem(); > ftpFileSystem.initialize(new > Path("ftp://test:123456@192.168.44.1/;).toUri(), > new Configuration()); > FileStatus[] fileStatus = ftpFileSystem.listStatus(new Path("/new")); > for(FileStatus fileStatus1 : fileStatus) > System.out.println(fileStatus1); > } > {code} > using test code below, the test results list below > {code} > FileStatus{path=ftp://test:123456@192.168.44.1/new; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14431-002.patch; > isDirectory=false; length=2036; replication=1; blocksize=4096; > modification_time=149579778; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14486-001.patch; > isDirectory=false; length=1322; replication=1; blocksize=4096; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop-main; > isDirectory=true; modification_time=149579712; access_time=0; owner=user; > group=group; permission=-; isSymlink=false} > {code} > In results above, {{FileStatus{path=ftp://test:123456@192.168.44.1/new; ……}} > is obviously the current Path, and > {{FileStatus{path=ftp://test:123456@192.168.44.1/;……}} is obviously the > parent Path. > So, if we want to walk the directory recursively, it will stuck. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Commented] (HADOOP-14469) FTPFileSystem#listStatus get currentPath and parentPath at the same time, causing recursively list action endless
[ https://issues.apache.org/jira/browse/HADOOP-14469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16051631#comment-16051631 ] Steve Loughran commented on HADOOP-14469: - I know the size of the list may be less than the size of the status.length value, but it will be rare (problem would have surfaced earlier). Remember that the size doesn't stop the list being smaller than the actual list. What it does do is preallocate enough space for that many objects, so avoiding extra memory allocations & work as the list grows. Because we know the max size of the list, we should use that. so: use the length and we have a more efficient codepath in the default "no . or .. coming back" case, and only waste the memory space of two status allocations in the other case > FTPFileSystem#listStatus get currentPath and parentPath at the same time, > causing recursively list action endless > - > > Key: HADOOP-14469 > URL: https://issues.apache.org/jira/browse/HADOOP-14469 > Project: Hadoop Common > Issue Type: Bug > Components: fs, tools/distcp >Affects Versions: 3.0.0-alpha3 > Environment: ftp build by windows7 + Serv-U_64 12.1.0.8 > code runs any os >Reporter: Hongyuan Li >Assignee: Hongyuan Li >Priority: Critical > Attachments: HADOOP-14469-001.patch, HADOOP-14469-002.patch, > HADOOP-14469-003.patch > > > for some ftpsystems, liststatus method will return new Path(".") and new > Path(".."), thus causing list op looping.for example, Serv-U > We can see the logic in code below: > {code} > private FileStatus[] listStatus(FTPClient client, Path file) > throws IOException { > …… > FileStatus[] fileStats = new FileStatus[ftpFiles.length]; > for (int i = 0; i < ftpFiles.length; i++) { > fileStats[i] = getFileStatus(ftpFiles[i], absolute); > } > return fileStats; > } > {code} > {code} > public void test() throws Exception{ > FTPFileSystem ftpFileSystem = new FTPFileSystem(); > ftpFileSystem.initialize(new > Path("ftp://test:123456@192.168.44.1/;).toUri(), > new Configuration()); > FileStatus[] fileStatus = ftpFileSystem.listStatus(new Path("/new")); > for(FileStatus fileStatus1 : fileStatus) > System.out.println(fileStatus1); > } > {code} > using test code below, the test results list below > {code} > FileStatus{path=ftp://test:123456@192.168.44.1/new; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14431-002.patch; > isDirectory=false; length=2036; replication=1; blocksize=4096; > modification_time=149579778; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14486-001.patch; > isDirectory=false; length=1322; replication=1; blocksize=4096; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop-main; > isDirectory=true; modification_time=149579712; access_time=0; owner=user; > group=group; permission=-; isSymlink=false} > {code} > In results above, {{FileStatus{path=ftp://test:123456@192.168.44.1/new; ……}} > is obviously the current Path, and > {{FileStatus{path=ftp://test:123456@192.168.44.1/;……}} is obviously the > parent Path. > So, if we want to walk the directory recursively, it will stuck. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Commented] (HADOOP-14469) FTPFileSystem#listStatus get currentPath and parentPath at the same time, causing recursively list action endless
[ https://issues.apache.org/jira/browse/HADOOP-14469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16051260#comment-16051260 ] Hongyuan Li commented on HADOOP-14469: -- Thanks fro your review, i will check the code and resubmit it. > FTPFileSystem#listStatus get currentPath and parentPath at the same time, > causing recursively list action endless > - > > Key: HADOOP-14469 > URL: https://issues.apache.org/jira/browse/HADOOP-14469 > Project: Hadoop Common > Issue Type: Bug > Components: fs, tools/distcp >Affects Versions: 3.0.0-alpha3 > Environment: ftp build by windows7 + Serv-U_64 12.1.0.8 > code runs any os >Reporter: Hongyuan Li >Assignee: Hongyuan Li >Priority: Critical > Attachments: HADOOP-14469-001.patch, HADOOP-14469-002.patch, > HADOOP-14469-003.patch > > > for some ftpsystems, liststatus method will return new Path(".") and new > Path(".."), thus causing list op looping.for example, Serv-U > We can see the logic in code below: > {code} > private FileStatus[] listStatus(FTPClient client, Path file) > throws IOException { > …… > FileStatus[] fileStats = new FileStatus[ftpFiles.length]; > for (int i = 0; i < ftpFiles.length; i++) { > fileStats[i] = getFileStatus(ftpFiles[i], absolute); > } > return fileStats; > } > {code} > {code} > public void test() throws Exception{ > FTPFileSystem ftpFileSystem = new FTPFileSystem(); > ftpFileSystem.initialize(new > Path("ftp://test:123456@192.168.44.1/;).toUri(), > new Configuration()); > FileStatus[] fileStatus = ftpFileSystem.listStatus(new Path("/new")); > for(FileStatus fileStatus1 : fileStatus) > System.out.println(fileStatus1); > } > {code} > using test code below, the test results list below > {code} > FileStatus{path=ftp://test:123456@192.168.44.1/new; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14431-002.patch; > isDirectory=false; length=2036; replication=1; blocksize=4096; > modification_time=149579778; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14486-001.patch; > isDirectory=false; length=1322; replication=1; blocksize=4096; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop-main; > isDirectory=true; modification_time=149579712; access_time=0; owner=user; > group=group; permission=-; isSymlink=false} > {code} > In results above, {{FileStatus{path=ftp://test:123456@192.168.44.1/new; ……}} > is obviously the current Path, and > {{FileStatus{path=ftp://test:123456@192.168.44.1/;……}} is obviously the > parent Path. > So, if we want to walk the directory recursively, it will stuck. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org
[jira] [Commented] (HADOOP-14469) FTPFileSystem#listStatus get currentPath and parentPath at the same time, causing recursively list action endless
[ https://issues.apache.org/jira/browse/HADOOP-14469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16050860#comment-16050860 ] Steve Loughran commented on HADOOP-14469: - * {{getFileStatuses}}: make dest list the size of the incoming status array (which it will normally be) {{new ArrayList(ftpFiles.length)}} * Why do you need to pass a flag down indicating that the code is a test? Is it because {{fs.makeQualified()}} was unhappy? If so, call that new parameter something like {{boolean qualifyPath}} and just do the path qualification when it is set. That will make clearer what the option does. That said: It'd be good to know why what was cuasing problems before we split the test and production codepaths up. * tests: the args in assertEquals are in the wrong order. We all get that wrong; it makes a big difference in trying to understand the error messages on failure. > FTPFileSystem#listStatus get currentPath and parentPath at the same time, > causing recursively list action endless > - > > Key: HADOOP-14469 > URL: https://issues.apache.org/jira/browse/HADOOP-14469 > Project: Hadoop Common > Issue Type: Bug > Components: fs, tools/distcp >Affects Versions: 3.0.0-alpha3 > Environment: ftp build by windows7 + Serv-U_64 12.1.0.8 > code runs any os >Reporter: Hongyuan Li >Assignee: Hongyuan Li >Priority: Critical > Attachments: HADOOP-14469-001.patch, HADOOP-14469-002.patch, > HADOOP-14469-003.patch > > > for some ftpsystems, liststatus method will return new Path(".") and new > Path(".."), thus causing list op looping.for example, Serv-U > We can see the logic in code below: > {code} > private FileStatus[] listStatus(FTPClient client, Path file) > throws IOException { > …… > FileStatus[] fileStats = new FileStatus[ftpFiles.length]; > for (int i = 0; i < ftpFiles.length; i++) { > fileStats[i] = getFileStatus(ftpFiles[i], absolute); > } > return fileStats; > } > {code} > {code} > public void test() throws Exception{ > FTPFileSystem ftpFileSystem = new FTPFileSystem(); > ftpFileSystem.initialize(new > Path("ftp://test:123456@192.168.44.1/;).toUri(), > new Configuration()); > FileStatus[] fileStatus = ftpFileSystem.listStatus(new Path("/new")); > for(FileStatus fileStatus1 : fileStatus) > System.out.println(fileStatus1); > } > {code} > using test code below, the test results list below > {code} > FileStatus{path=ftp://test:123456@192.168.44.1/new; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop; isDirectory=true; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14431-002.patch; > isDirectory=false; length=2036; replication=1; blocksize=4096; > modification_time=149579778; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/HADOOP-14486-001.patch; > isDirectory=false; length=1322; replication=1; blocksize=4096; > modification_time=149671698; access_time=0; owner=user; group=group; > permission=-; isSymlink=false} > FileStatus{path=ftp://test:123456@192.168.44.1/new/hadoop-main; > isDirectory=true; modification_time=149579712; access_time=0; owner=user; > group=group; permission=-; isSymlink=false} > {code} > In results above, {{FileStatus{path=ftp://test:123456@192.168.44.1/new; ……}} > is obviously the current Path, and > {{FileStatus{path=ftp://test:123456@192.168.44.1/;……}} is obviously the > parent Path. > So, if we want to walk the directory recursively, it will stuck. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org