[ 
https://issues.apache.org/jira/browse/HBASE-9060?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry He updated HBASE-9060:
----------------------------

    Description: 
Here is the stack trace:

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot table1_snapshot 
-copy-to hdfs:///myhbase%2Cbackup/table1_snapshot
 
{code}
13/07/26 18:09:50 INFO mapred.JobClient:  map 0% reduce 0%
13/07/26 18:09:58 INFO mapred.JobClient: Task Id : 
attempt_201307261804_0002_m_000001_0, Status : FAILED
java.util.MissingFormatArgumentException: Format specifier ') from 
family1/table1=3567d8ac6cfee83dfe81c346f139fb9c-c5bc120475a54d188f30d4b621d505b1
 to hdfs:/myhbase%2C'
        at java.util.Formatter.getArgument(Formatter.java:592)
        at java.util.Formatter.format(Formatter.java:561)
        at java.util.Formatter.format(Formatter.java:510)
        at java.lang.String.format(String.java:1977)
        at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.copyData(ExportSnapshot.java:274)
        at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.copyFile(ExportSnapshot.java:204)
        at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:149)
        at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:98)
{code}

The problem is this code in copyData():
{code}
final String statusMessage = "copied %s/" + 
StringUtils.humanReadableInt(inputFileSize) +
                                   " (%.3f%%) from " + inputPath + " to " + 
outputPath;
{code}

Since we don't know what the path may contain that may confuse the formatter, 
we need to pull that part out of the format string.

Also the percentage completion math seems to be wrong in the same code.

  was:
Here is the stack trace:

hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot table1_snapshot 
-copy-to hdfs:///myhbasebackup/table1_snapshot
 
{code}
13/07/26 18:09:50 INFO mapred.JobClient:  map 0% reduce 0%
13/07/26 18:09:58 INFO mapred.JobClient: Task Id : 
attempt_201307261804_0002_m_000001_0, Status : FAILED
java.util.MissingFormatArgumentException: Format specifier ') from 
family1/table1=3567d8ac6cfee83dfe81c346f139fb9c-c5bc120475a54d188f30d4b621d505b1
 to hdfs:/myhbase%2C'
        at java.util.Formatter.getArgument(Formatter.java:592)
        at java.util.Formatter.format(Formatter.java:561)
        at java.util.Formatter.format(Formatter.java:510)
        at java.lang.String.format(String.java:1977)
        at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.copyData(ExportSnapshot.java:274)
        at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.copyFile(ExportSnapshot.java:204)
        at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:149)
        at 
org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:98)
{code}

The problem is this code in copyData():
{code}
final String statusMessage = "copied %s/" + 
StringUtils.humanReadableInt(inputFileSize) +
                                   " (%.3f%%) from " + inputPath + " to " + 
outputPath;
{code}

Since we don't know what the path may contain that may confuse the formatter, 
we need to pull that part out of the format string.

Also the percentage completion math seems to be wrong in the same code.

    
> EXportSnapshot job fails if target path contains percentage character
> ---------------------------------------------------------------------
>
>                 Key: HBASE-9060
>                 URL: https://issues.apache.org/jira/browse/HBASE-9060
>             Project: HBase
>          Issue Type: Bug
>          Components: snapshots
>    Affects Versions: 0.95.1, 0.94.10
>            Reporter: Jerry He
>            Assignee: Jerry He
>            Priority: Minor
>             Fix For: 0.95.2
>
>         Attachments: HBase-9060.patch
>
>
> Here is the stack trace:
> hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot -snapshot 
> table1_snapshot -copy-to hdfs:///myhbase%2Cbackup/table1_snapshot
>  
> {code}
> 13/07/26 18:09:50 INFO mapred.JobClient:  map 0% reduce 0%
> 13/07/26 18:09:58 INFO mapred.JobClient: Task Id : 
> attempt_201307261804_0002_m_000001_0, Status : FAILED
> java.util.MissingFormatArgumentException: Format specifier ') from 
> family1/table1=3567d8ac6cfee83dfe81c346f139fb9c-c5bc120475a54d188f30d4b621d505b1
>  to hdfs:/myhbase%2C'
>         at java.util.Formatter.getArgument(Formatter.java:592)
>         at java.util.Formatter.format(Formatter.java:561)
>         at java.util.Formatter.format(Formatter.java:510)
>         at java.lang.String.format(String.java:1977)
>         at 
> org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.copyData(ExportSnapshot.java:274)
>         at 
> org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.copyFile(ExportSnapshot.java:204)
>         at 
> org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:149)
>         at 
> org.apache.hadoop.hbase.snapshot.ExportSnapshot$ExportMapper.map(ExportSnapshot.java:98)
> {code}
> The problem is this code in copyData():
> {code}
> final String statusMessage = "copied %s/" + 
> StringUtils.humanReadableInt(inputFileSize) +
>                                    " (%.3f%%) from " + inputPath + " to " + 
> outputPath;
> {code}
> Since we don't know what the path may contain that may confuse the formatter, 
> we need to pull that part out of the format string.
> Also the percentage completion math seems to be wrong in the same code.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to