hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matteo Bertozzi (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-8798) Fix a minor bug in shell command with clone_snapshot table error
Date Tue, 02 Jul 2013 20:25:21 GMT

    [ https://issues.apache.org/jira/browse/HBASE-8798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13698178#comment-13698178

Matteo Bertozzi commented on HBASE-8798:

removing the rescue/raise results in a different behaviour. (It shows the full stack trace
of the exception)

When I mentioned that only the TableExists exception from the snapshot code is "the good one"
I was referring to changing the shell code to print the exception message, but to do that
you've to change the other couple of throws new TableException() to have a better message
to show... at the moment is only the table name.. or alternative rely on the message to be
just the table name.. and change the exception message raised by clone snapshot
> Fix a minor bug in shell command with clone_snapshot table error
> ----------------------------------------------------------------
>                 Key: HBASE-8798
>                 URL: https://issues.apache.org/jira/browse/HBASE-8798
>             Project: HBase
>          Issue Type: Bug
>          Components: shell, snapshots
>    Affects Versions: 0.94.8, 0.95.1
>            Reporter: Jerry He
>            Assignee: Jerry He
>            Priority: Minor
>         Attachments: 8798-trunk-v2.txt, HBASE-8798-trunk.patch
> In HBase shell, the syntax for clone_snapshot is:
>   hbase> clone_snapshot 'snapshotName', 'tableName'
> If the target table already exists, we'll get an error.
> For example:
> ------------------
> hbase(main):011:0> clone_snapshot 'mysnapshot1', 'TestTable'
> ERROR: Table already exists: mysnapshot1!
> Here is some help for this command:
> Create a new table by cloning the snapshot content.
> There're no copies of data involved.
> And writing on the newly created table will not influence the snapshot data.
> Examples:
>   hbase> clone_snapshot 'snapshotName', 'tableName'
> ----------------------
> The bug is in the ERROR message:
> *ERROR: Table already exists: mysnapshot1!*
> We should output the table name, not the snapshot name.
> Currently, in command.rb, we have the output fixed as args.first for TableExistsException:
> {code}
>       def translate_hbase_exceptions(*args)
>         yield
>       rescue org.apache.hadoop.hbase.exceptions.TableNotFoundException
>         raise "Unknown table #{args.first}!"
>       rescue org.apache.hadoop.hbase.exceptions.NoSuchColumnFamilyException
>         valid_cols = table(args.first).get_all_columns.map { |c| c + '*' }
>         raise "Unknown column family! Valid column names: #{valid_cols.join(", ")}"
>       rescue org.apache.hadoop.hbase.exceptions.TableExistsException
>         raise "Table already exists: #{args.first}!"
>       end
> {code}
> This is fine with commands like 'create tableName ...' but not 'clone_snapshot snapshotName

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

View raw message