You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Kevin Odell (JIRA)" <ji...@apache.org> on 2012/06/22 23:15:43 UTC
[jira] [Created] (HBASE-6262) Row Count hangs due to printing raw
without filtering for control codes/non-displayable characters
Kevin Odell created HBASE-6262:
----------------------------------
Summary: Row Count hangs due to printing raw without filtering for control codes/non-displayable characters
Key: HBASE-6262
URL: https://issues.apache.org/jira/browse/HBASE-6262
Project: HBase
Issue Type: Bug
Components: shell
Reporter: Kevin Odell
Attachments: hbase-shell.log
The problem is the key is printed raw without filtering for control codes/non-displayable characters. Consequently, row 264000's row key includes the data <ESC>P (hex: 1B 50) which initiates a VT100/ANSI DCS sequence, which normally must be terminated by a DCS string terminator code, <ESC>\ (hex: 1B 5C) (cf.
At row 264000, <ESC>P appears, but is not followed by the <ESC>\ termination code -- so instead of data being output to the display, it is getting buffered by the terminal to complete the DCS command. Result: the data is not displayed (xterminal) or the terminal locks up (gnome-terminal).
Note that this is a potential for abusing this "feature" to hide/alter information displayed on the screen, since an arbitrary terminal control codes could potentially be constructed and injected into a rowkey.
If you open a VT100-emulating terminal window can cat the attached file, as-is, it would hang after displaying the starting portion of the line for row 264000.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-6262) Row Count hangs due to printing raw
without filtering for control codes/non-displayable characters
Posted by "Jonathan Hsieh (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HBASE-6262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13400172#comment-13400172 ]
Jonathan Hsieh commented on HBASE-6262:
---------------------------------------
Kevin, can you try esteban's the suggested fix?
Esteban, is that the only instance? Can you check for others that should be escaped with toStringBinary and then create a patch file?
> Row Count hangs due to printing raw without filtering for control codes/non-displayable characters
> --------------------------------------------------------------------------------------------------
>
> Key: HBASE-6262
> URL: https://issues.apache.org/jira/browse/HBASE-6262
> Project: HBase
> Issue Type: Bug
> Components: shell
> Reporter: Kevin Odell
> Attachments: hbase-shell.log
>
>
> The problem is the key is printed raw without filtering for control codes/non-displayable characters. Consequently, row 264000's row key includes the data <ESC>P (hex: 1B 50) which initiates a VT100/ANSI DCS sequence, which normally must be terminated by a DCS string terminator code, <ESC>\ (hex: 1B 5C) (cf.
> At row 264000, <ESC>P appears, but is not followed by the <ESC>\ termination code -- so instead of data being output to the display, it is getting buffered by the terminal to complete the DCS command. Result: the data is not displayed (xterminal) or the terminal locks up (gnome-terminal).
> Note that this is a potential for abusing this "feature" to hide/alter information displayed on the screen, since an arbitrary terminal control codes could potentially be constructed and injected into a rowkey.
> If you open a VT100-emulating terminal window can cat the attached file, as-is, it would hang after displaying the starting portion of the line for row 264000.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-6262) Row Count hangs due to printing raw
without filtering for control codes/non-displayable characters
Posted by "Esteban Gutierrez (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HBASE-6262?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13399632#comment-13399632 ]
Esteban Gutierrez commented on HBASE-6262:
------------------------------------------
I think the fix is basically this in hbase/table.rb
{code}
def _count_internal(interval = 1000, caching_rows = 10)
...
yield(count, org.apache.hadoop.hbase.util.Bytes::toStringBinary(row.getRow)
...
{code}
> Row Count hangs due to printing raw without filtering for control codes/non-displayable characters
> --------------------------------------------------------------------------------------------------
>
> Key: HBASE-6262
> URL: https://issues.apache.org/jira/browse/HBASE-6262
> Project: HBase
> Issue Type: Bug
> Components: shell
> Reporter: Kevin Odell
> Attachments: hbase-shell.log
>
>
> The problem is the key is printed raw without filtering for control codes/non-displayable characters. Consequently, row 264000's row key includes the data <ESC>P (hex: 1B 50) which initiates a VT100/ANSI DCS sequence, which normally must be terminated by a DCS string terminator code, <ESC>\ (hex: 1B 5C) (cf.
> At row 264000, <ESC>P appears, but is not followed by the <ESC>\ termination code -- so instead of data being output to the display, it is getting buffered by the terminal to complete the DCS command. Result: the data is not displayed (xterminal) or the terminal locks up (gnome-terminal).
> Note that this is a potential for abusing this "feature" to hide/alter information displayed on the screen, since an arbitrary terminal control codes could potentially be constructed and injected into a rowkey.
> If you open a VT100-emulating terminal window can cat the attached file, as-is, it would hang after displaying the starting portion of the line for row 264000.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (HBASE-6262) Row Count hangs due to printing raw
without filtering for control codes/non-displayable characters
Posted by "Kevin Odell (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HBASE-6262?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kevin Odell updated HBASE-6262:
-------------------------------
Attachment: hbase-shell.log
Shell log attached
> Row Count hangs due to printing raw without filtering for control codes/non-displayable characters
> --------------------------------------------------------------------------------------------------
>
> Key: HBASE-6262
> URL: https://issues.apache.org/jira/browse/HBASE-6262
> Project: HBase
> Issue Type: Bug
> Components: shell
> Reporter: Kevin Odell
> Attachments: hbase-shell.log
>
>
> The problem is the key is printed raw without filtering for control codes/non-displayable characters. Consequently, row 264000's row key includes the data <ESC>P (hex: 1B 50) which initiates a VT100/ANSI DCS sequence, which normally must be terminated by a DCS string terminator code, <ESC>\ (hex: 1B 5C) (cf.
> At row 264000, <ESC>P appears, but is not followed by the <ESC>\ termination code -- so instead of data being output to the display, it is getting buffered by the terminal to complete the DCS command. Result: the data is not displayed (xterminal) or the terminal locks up (gnome-terminal).
> Note that this is a potential for abusing this "feature" to hide/alter information displayed on the screen, since an arbitrary terminal control codes could potentially be constructed and injected into a rowkey.
> If you open a VT100-emulating terminal window can cat the attached file, as-is, it would hang after displaying the starting portion of the line for row 264000.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira