hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bryan Beaudreault (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-14443) Add request parameter to the TooSlow/TooLarge warn message of RpcServer
Date Tue, 08 Dec 2015 18:29:11 GMT

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

Bryan Beaudreault commented on HBASE-14443:
-------------------------------------------

I see there is a patch available for this.  Any progress on getting it integrated? 

In terms of security, there are already tons of log lines with rowkeys in them. They are part
of split and region names so show up in compactions, moves, etc.  Column family names also
show up in various existing log lines.

I understand not wanting to add to an existing problem if that is one we care about, so maybe
we can add a configuration parameter for redacting the secure info.

Considering the existing functionality is broken (and worked in at least 0.94.x) perhaps some
pragmatism would be good in terms of weighing this concern vs just getting it shipped.

> Add request parameter to the TooSlow/TooLarge warn message of RpcServer
> -----------------------------------------------------------------------
>
>                 Key: HBASE-14443
>                 URL: https://issues.apache.org/jira/browse/HBASE-14443
>             Project: HBase
>          Issue Type: Improvement
>          Components: Operability, rpc
>    Affects Versions: 1.2.1
>            Reporter: Jianwei Cui
>            Assignee: Jianwei Cui
>            Priority: Minor
>         Attachments: HBASE-14443-trunk-v1.patch, HBASE-14443-trunk-v2.patch
>
>
> The RpcServer will log a warn message for TooSlow or TooLarge request as:
> {code}
>         logResponse(new Object[]{param},
>             md.getName(), md.getName() + "(" + param.getClass().getName() + ")",
>             (tooLarge ? "TooLarge" : "TooSlow"),
>             status.getClient(), startTime, processingTime, qTime,
>             responseSize);
> {code}
> The RpcServer#logResponse will create the warn message as:
> {code}
> if (params.length == 2 && server instanceof HRegionServer &&
>         params[0] instanceof byte[] &&
>         params[1] instanceof Operation) {
>       ...
>       responseInfo.putAll(((Operation) params[1]).toMap());
>       ...
>     } else if (params.length == 1 && server instanceof HRegionServer &&
>         params[0] instanceof Operation) {
>       ...
>       responseInfo.putAll(((Operation) params[0]).toMap());
>       ...
>     } else {
>       ...
>     }
> {code}
> Because the parameter is always a protobuf message, not an instance of Operation, the
request parameter will not be added into the warn message. The parameter is helpful to find
out the problem, for example, knowing the startRow/endRow is useful for a TooSlow scan. To
improve the warn message, we can transform the protobuf request message to corresponding Operation
subclass object by ProtobufUtil, so that it can be added the warn message. Suggestion and
discussion are welcomed.  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message