[
https://issues.apache.org/jira/browse/HBASE-18379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16086759#comment-16086759
]
Jingcheng Du commented on HBASE-18379:
--------------------------------------
Thanks [[email protected]].
I checked the code in URI, this exception happens only when it has a schema,
but the left part doesn't start with /.
According to the stack trace, the whole path is Daily_Snapshot_Apps_2017-xx, no
any schema (the part before ":"), this should can pass the new Path step.
Do you have ideas why this happens? This just tries to create a path instance.
> SnapshotManager#checkSnapshotSupport() should better handle malfunctioning
> hdfs snapshot
> ----------------------------------------------------------------------------------------
>
> Key: HBASE-18379
> URL: https://issues.apache.org/jira/browse/HBASE-18379
> Project: HBase
> Issue Type: Bug
> Reporter: Ted Yu
>
> The following was observed by a customer which prevented master from coming
> up:
> {code}
> 2017-07-13 13:25:07,898 FATAL [xyz:16000.activeMasterManager] master.HMaster:
> Failed to become active master
> java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative
> path in absolute URI: Daily_Snapshot_Apps_2017-xx
> at org.apache.hadoop.fs.Path.initialize(Path.java:205)
> at org.apache.hadoop.fs.Path.<init>(Path.java:171)
> at org.apache.hadoop.fs.Path.<init>(Path.java:93)
> at
> org.apache.hadoop.hdfs.protocol.HdfsFileStatus.getFullPath(HdfsFileStatus.java:230)
> at
> org.apache.hadoop.hdfs.protocol.HdfsFileStatus.makeQualified(HdfsFileStatus.java:263)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem.listStatusInternal(DistributedFileSystem.java:911)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem.access$600(DistributedFileSystem.java:113)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem$21.doCall(DistributedFileSystem.java:966)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem$21.doCall(DistributedFileSystem.java:962)
> at
> org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
> at
> org.apache.hadoop.hdfs.DistributedFileSystem.listStatus(DistributedFileSystem.java:962)
> at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1534)
> at org.apache.hadoop.fs.FileSystem.listStatus(FileSystem.java:1574)
> at
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.getCompletedSnapshots(SnapshotManager.java:206)
> at
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.checkSnapshotSupport(SnapshotManager.java:1011)
> at
> org.apache.hadoop.hbase.master.snapshot.SnapshotManager.initialize(SnapshotManager.java:1070)
> at
> org.apache.hadoop.hbase.procedure.MasterProcedureManagerHost.initialize(MasterProcedureManagerHost.java:50)
> at
> org.apache.hadoop.hbase.master.HMaster.initializeZKBasedSystemTrackers(HMaster.java:667)
> at
> org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:732)
> at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:213)
> at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1863)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.net.URISyntaxException: Relative path in absolute URI:
> Daily_Snapshot_Apps_2017-xx
> at java.net.URI.checkPath(URI.java:1823)
> at java.net.URI.<init>(URI.java:745)
> at org.apache.hadoop.fs.Path.initialize(Path.java:202)
> {code}
> Turns out the exception can be reproduced using hdfs command line accessing
> .snapshot directory.
> SnapshotManager#checkSnapshotSupport() should better handle malfunctioning
> hdfs snapshot so that master starts up.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)