[
https://issues.apache.org/jira/browse/THRIFT-5611?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17580115#comment-17580115
]
Erik commented on THRIFT-5611:
------------------------------
here's the server side function
{code:java}
void request_matching_symbols(std::vector<MatchingSymbolResponse> & _return,
const std::vector<std::string> & queries_list) {
std::cout << "[hndlr-" << this->handler_num << "]
request_matching_symbols() queries_list.size() == " << queries_list.size() <<
std::endl;
int batch_size = calculate_batch_size(queries_list.size(),
this->tws_conn_pool->size());
int remainder = calculate_remainder(queries_list.size(),
this->tws_conn_pool->size());
if (batch_size == 1) {
std::cout << "[hndlr-" << this->handler_num << "]
request_matching_symbols() Queries list is less than # of clients\n";
std::future<std::vector<twsapithrift::IBContractDescription>>
single_future_result;
SymbolsDataFetcher single_fetcher =
SymbolsDataFetcher(*this->tws_conn_pool);
single_future_result = std::async(std::launch::async,
&SymbolsDataFetcher::process_data, single_fetcher, std::ref(queries_list), 0,
queries_list.size());
std::string concetenated_query;
for (unsigned int i = 0; i < queries_list.size(); i++) {
concetenated_query += queries_list[i] + ", ";
}
MatchingSymbolResponse response_obj;
response_obj.request_query = concetenated_query;
response_obj.matches;
std::vector<twsapithrift::IBContractDescription> result_obj =
single_future_result.get();
for (unsigned int j = 0; j < result_obj.size(); j++) {
std::cout << "[hndlr-" << this->handler_num << "]
request_matching_symbols() PUSHING RESULT INTO RESPONSE\n";
response_obj.matches.push_back(result_obj[j]);
}
_return.push_back(response_obj);
std::cout << "[hndlr-" << this->handler_num << "]
request_matching_symbols() Setting response_obj\n";
return;
} {code}
> v0.16.0 C++ servers suddenly giving brokenpipe errors
> -----------------------------------------------------
>
> Key: THRIFT-5611
> URL: https://issues.apache.org/jira/browse/THRIFT-5611
> Project: Thrift
> Issue Type: Bug
> Components: C++ - Library
> Affects Versions: 0.16.0
> Reporter: Erik
> Priority: Major
>
> I jumped from v0.15.0 to v0.16.0 .. and trying to track down what could cause
> this response in my C++ Server
>
> {code:java}
> Thrift: Mon Aug 15 22:11:54 2022 TSocket::write_partial() send() <Host:
> 127.0.0.1 Port: 58998>: Broken pipe
> Thrift: Mon Aug 15 22:11:54 2022 TConnectedClient died: write() send():
> Broken pipe
> Thrift: Mon Aug 15 22:11:54 2022 TConnectedClient output close failed: Called
> write on non-open socket
> {code}
>
> my server code is unchanged and was previously okay, I think.. I will keep
> debugging and trying to ensure it's not me but.. can anyone clue me in on how
> to repair this ? or what to look for?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)