zyearn commented on a change in pull request #1128:
URL: https://github.com/apache/incubator-brpc/pull/1128#discussion_r434980490
##########
File path: src/brpc/redis.cpp
##########
@@ -437,19 +437,21 @@ std::ostream& operator<<(std::ostream& os, const
RedisResponse& response) {
}
bool RedisService::AddCommandHandler(const std::string& name,
RedisCommandHandler* handler) {
- std::string lcname = StringToLowerASCII(name);
- auto it = _command_map.find(lcname);
+ butil::StringPiece name_piece(name);
+ auto it = _command_map.find(name_piece);
if (it != _command_map.end()) {
LOG(ERROR) << "redis command name=" << name << " exist";
return false;
}
- _command_map[lcname] = handler;
+
+ _all_commands.push_back(name);
+ name_piece = _all_commands.back();
Review comment:
这个_all_commands有什么用途吗
##########
File path: src/brpc/policy/redis_protocol.cpp
##########
@@ -189,7 +189,9 @@ ParseResult ParseRedisMessage(butil::IOBuf* source, Socket*
socket,
wopt.ignore_eovercrowded = true;
LOG_IF(WARNING, socket->Write(&sendbuf, &wopt) != 0)
<< "Fail to send redis reply";
- ctx->arena.clear();
+ if (err != PARSE_ERROR_NOT_ENOUGH_DATA) {
+ ctx->arena.clear();
+ }
Review comment:
这样会不会出现,每条消息都返回PARSE_ERROR_NOT_ENOUGH_DATA,导致这个链接上的arena一直不释放
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]