Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
None
-
None
-
None
-
None
Description
If you create a Path object from a URI string (ie, dfs://namenode:port/filename), and your default filesystem isn't that same dfs namenode, when you call listPaths() on that Path object, the objects you get back are DfsPath() objects which haven't been constructed with the right details to connect to the same host.
I tried this on a debug machine that hadn't been configured to use our DFS configuration. The listPaths() completes, populating with the actual contents of the Path in DFS - but the Path objects no longer refer to the dfs://namenode:port/ that they need to.
This appears to be a problem with DistributedFileSystem.listPaths(), and/or DfsPath(). When you create a DfsPath(), it takes a DfsInfo() object, which isn't derived from any object which remembers the name or port of the namenode.