@@ -167,6 +167,24 @@ RequestHandler::RequestHandler(const Request::ConstPtr& request, const ResponseF
167167 , manager_(NULL )
168168 , metrics_(metrics) {}
169169
170+ RequestHandler::~RequestHandler () {
171+ if (Logger::log_level () >= CASS_LOG_TRACE) {
172+ OStringStream ss;
173+ for (RequestTryVec::const_iterator it = request_tries_.begin (), end = request_tries_.end ();
174+ it != end; ++it) {
175+ if (it != request_tries_.begin ()) ss << " , " ;
176+ ss << " (" << it->address << " , " ;
177+ if (it->error != CASS_OK) {
178+ ss << cass_error_desc (it->error );
179+ } else {
180+ ss << it->latency ;
181+ }
182+ ss << " )" ;
183+ }
184+ LOG_TRACE (" Speculative execution attempts: [%s]" , ss.str ().c_str ());
185+ }
186+ }
187+
170188void RequestHandler::set_prepared_metadata (const PreparedMetadata::Entry::Ptr& entry) {
171189 wrapper_.set_prepared_metadata (entry);
172190}
@@ -269,6 +287,10 @@ void RequestHandler::set_response(const Host::Ptr& host, const Response::Ptr& re
269287 metrics_->record_speculative_request (uv_hrtime () - start_time_ns_);
270288 }
271289 }
290+
291+ if (Logger::log_level () >= CASS_LOG_TRACE) {
292+ request_tries_.push_back (RequestTry (host->address (), uv_hrtime () - start_time_ns_));
293+ }
272294}
273295
274296void RequestHandler::set_error (CassError code, const String& message) {
@@ -289,6 +311,9 @@ void RequestHandler::set_error(const Host::Ptr& host, CassError code, const Stri
289311 set_error (code, message);
290312 }
291313 }
314+ if (Logger::log_level () >= CASS_LOG_TRACE) {
315+ request_tries_.push_back (RequestTry (host->address (), code));
316+ }
292317}
293318
294319void RequestHandler::set_error_with_error_response (const Host::Ptr& host,
@@ -297,6 +322,9 @@ void RequestHandler::set_error_with_error_response(const Host::Ptr& host,
297322 stop_request ();
298323 running_executions_--;
299324 future_->set_error_with_response (host->address (), error, code, message);
325+ if (Logger::log_level () >= CASS_LOG_TRACE) {
326+ request_tries_.push_back (RequestTry (host->address (), code));
327+ }
300328}
301329
302330void RequestHandler::stop_timer () { timer_.stop (); }
0 commit comments