[
https://issues.apache.org/jira/browse/THRIFT-5670?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Quanlong Huang updated THRIFT-5670:
-----------------------------------
Affects Version/s: 0.19.0
0.18.1
0.18.0
> recvTimeout is not printed correctly for THRIFT_EAGAIN
> ------------------------------------------------------
>
> Key: THRIFT-5670
> URL: https://issues.apache.org/jira/browse/THRIFT-5670
> Project: Thrift
> Issue Type: Bug
> Components: C++ - Library
> Affects Versions: 0.16.0, 0.17.0, 0.18.0, 0.18.1, 0.19.0
> Reporter: Quanlong Huang
> Assignee: Quanlong Huang
> Priority: Major
> Time Spent: 1h 40m
> Remaining Estimate: 0h
>
> Saw a strange log when using cpp lib of thrift-0.16.0:
> {noformat}
> I1114 15:50:53.952184 16548 thrift-util.cc:196] TSocket::read() THRIFT_EAGAIN
> (timed out) after %f ms: Unknown error 30000
> {noformat}
> It's logged by this line
> {code:cpp}
> GlobalOutput.perror("TSocket::read() THRIFT_EAGAIN (timed out) after %f ms",
> recvTimeout_);
> {code}
> added by this commit since 0.16.0:
> [https://github.com/apache/thrift/commit/b31377f0a1813d3b0cb9afd0efc67b61ca021c67]
> recvTimeout_ is incorrectly used as errno_copy in GlobalOutput.perror():
> {code:cpp}
> class TOutput {
> ...
> void perror(const char* message, int errno_copy);
> inline void perror(const std::string& message, int errno_copy) {
> perror(message.c_str(), errno_copy);
> }
> void printf(const char* message, ...);
> };
> THRIFT_EXPORT extern TOutput GlobalOutput;{code}
> https://github.com/apache/thrift/blob/0.16.0/lib/cpp/src/thrift/TOutput.h
> We should use GlobalOutput.printf() instead.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)