[ https://issues.apache.org/jira/browse/GEODE-8565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17209097#comment-17209097 ]
ASF GitHub Bot commented on GEODE-8565: --------------------------------------- mreddington commented on a change in pull request #662: URL: https://github.com/apache/geode-native/pull/662#discussion_r500552393 ########## File path: cppcache/integration/test/PartitionRegionOpsTest.cpp ########## @@ -46,11 +48,21 @@ using apache::geode::client::RegionShortcut; using std::chrono::minutes; +std::string getClientLogName() { Review comment: Oof... Man, I looked into why you're doing this, and I get you, and I'm just as sorry. Can I convince you to add a refactor that will eliminate all this dubious file handling? If you look at cppcache/src/Log.cpp, there are 2 places, 2 lines each, where we fprintf(stdout... and a flush. What if you replaced both those with a write to ::std::cerr? No need to flush, cerr has unitbuf enabled by default. What this should allow you to do, but I'm not exactly familiar with how this behaves over a shared object boundary, is you can replace the stream buffer of cerr with your own. ::std::istringstream log_stream; auto old_rdbuf = ::std::cerr.rdbuf(log_stream.rdbuf()); // Test code... ::std::getline(log_stream, log_line); // etc... ::std::cerr.rdbuf(old_rdbuf); ---------------------------------------------------------------- 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: us...@infra.apache.org > c++ client tries to connect to down server until IO error is thrown > ------------------------------------------------------------------- > > Key: GEODE-8565 > URL: https://issues.apache.org/jira/browse/GEODE-8565 > Project: Geode > Issue Type: Improvement > Components: native client > Reporter: Alberto Bustamante Reyes > Assignee: Alberto Bustamante Reyes > Priority: Major > Labels: pull-request-available > > This ticket is an improvement over GEODE-8231: > {quote}If a C++ client connected to a cluster is sending operations to a > partitioned region and one of the server goes down, the client keeps trying > to send operations to the down server. This can be observed in the logs by a > continuous flow of lines containing: "IO error in handshake with endpoint..." > {quote} > After that improvement, the c++ client removes the metadata info of the > failing server once the "IO error in handshake" is received. > But it has been observed that before that error is received, "timeout error" > can be returned. So the client will try to reconnect until the "IO error in > handshake" is received. > This ticket aims to extend the GEODE-8231 solution so the client removes the > server metadata information when a timeout is received. -- This message was sent by Atlassian Jira (v8.3.4#803005)