Alexey Serbin has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/17611


Change subject: [txn_system_client] MonoDelta by value in 
CoordinateTransactionAsync()
......................................................................

[txn_system_client] MonoDelta by value in CoordinateTransactionAsync()

This patch updates the signature of the
TxnSystemClient::CoordinateTransactionAsync() method to pass MonoDelta
by value.  In addition, I added an extra DCHECK() into
MonoTime::AddDelta().

The motivation for this change was seeing the following UBSAN warning
in one of the pre-commit builds [1]:

  #0 0x7f48d11e8f3c in kudu::MonoTime::AddDelta(kudu::MonoDelta const&) 
src/kudu/util/monotime.cc:218:10
  #1 0x7f48d11e9eee in kudu::operator+(kudu::MonoTime const&, kudu::MonoDelta 
const&) src/kudu/util/monotime.cc:333:7
  #2 0x7f48e0d846c1 in 
kudu::transactions::TxnSystemClient::CoordinateTransactionAsync(kudu::tserver::CoordinatorOpPB,
 kudu::MonoDelta const&, std::function<void (kudu::Status const&)> const&, 
kudu::tserver::CoordinatorOpResultPB*) 
src/kudu/transactions/txn_system_client.cc:331:45
  #3 0x7f48e0d86f76 in 
kudu::transactions::TxnSystemClient::KeepTransactionAlive(long, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&, kudu::MonoDelta) src/kudu/transactions/txn_system_client.cc:320:3
  #4 0x7f48e24c62b9 in 
kudu::transactions::TxnManager::KeepTransactionAlive(long, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&, kudu::MonoTime const&) src/kudu/master/txn_manager.cc:238:27
  #5 0x7f48e24ca36f in 
kudu::transactions::TxnManagerServiceImpl::KeepTransactionAlive(kudu::transactions::KeepTransactionAliveRequestPB
 const*, kudu::transactions::KeepTransactionAliveResponsePB*, 
kudu::rpc::RpcContext*) src/kudu/master/txn_manager_service.cc:159:42
  #6 0x7f48d7224b0e in std::function<void (google::protobuf::Message const*, 
google::protobuf::Message*, 
kudu::rpc::RpcContext*)>::operator()(google::protobuf::Message const*, 
google::protobuf::Message*, kudu::rpc::RpcContext*) const 
../../../include/c++/7.5.0/bits/std_function.h:706:14
  #7 0x7f48d7223afc in 
kudu::rpc::GeneratedServiceIf::Handle(kudu::rpc::InboundCall*) 
src/kudu/rpc/service_if.cc:137:3
  #8 0x7f48d7229a9d in kudu::rpc::ServicePool::RunThread() 
src/kudu/rpc/service_pool.cc:232:15
  #9 0x7f48d1290c3a in kudu::Thread::SuperviseThread(void*) 
src/kudu/util/thread.cc:674:3
  #10 0x7f48d3a046da in start_thread 
(/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)
  #11 0x7f48cd55771e in clone (/lib/x86_64-linux-gnu/libc.so.6+0x12171e)

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior 
src/kudu/util/monotime.cc:218:10

[1] http://dist-test.cloudera.org/job?job_id=jenkins-slave.1623914260.1110749

Change-Id: I36ba521a3bb7a4ca42a5dc8d383f5d8b6309154d
---
M src/kudu/transactions/txn_system_client.cc
M src/kudu/transactions/txn_system_client.h
M src/kudu/util/monotime.cc
3 files changed, 3 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/11/17611/1
--
To view, visit http://gerrit.cloudera.org:8080/17611
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I36ba521a3bb7a4ca42a5dc8d383f5d8b6309154d
Gerrit-Change-Number: 17611
Gerrit-PatchSet: 1
Gerrit-Owner: Alexey Serbin <aser...@cloudera.com>

Reply via email to