Details
-
Sub-task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Config files just specify an authority rather than a real URI for namenodes, but we've been using the URI class to parse them. This is kind of hacky because a scheme needs to be prepended (and then ignored) for the library to work.
The URI parsing library generates errors in valgrind when it doesn't get a scheme which could be concerning (conditional jump on undefined). At the moment it's unclear if this is a real issue or it's just using vectorized string operations that read whole words but the string ends in the middle of a machine word.
This is also a good place to refactor the split function in uri.h to be general purpose, right now it has a special rule to disregard leading '/' chars.