[ 
https://issues.apache.org/jira/browse/HBASE-18174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16041710#comment-16041710
 ] 

Ted Yu commented on HBASE-18174:
--------------------------------

With patch v7 where I use lambda inside RawAsyncTable::CheckAndPut(), I got 
linker error:
{code}
/usr/src/hbase/hbase-native-client/buck-out/gen/core/core#default,static/libcore.a(raw-async-table.cc.o):
 In function `hbase::RawAsyncTable::CheckAndPut(std::string const&, std::string 
const&, std::string const&, std::string const&, hbase::Put const&)':
/usr/src/hbase/hbase-native-client/core/raw-async-table.cc:135: undefined 
reference to `hbase::AsyncSingleRequestRpcRetryingCaller<bool>::Call()'
/usr/src/hbase/hbase-native-client/buck-out/gen/core/core#default,static/libcore.a(raw-async-table.cc.o):
 In function `void 
__gnu_cxx::new_allocator<hbase::AsyncSingleRequestRpcRetryingCaller<bool> 
>::construct<hbase::AsyncSingleRequestRpcRetryingCaller<bool>, 
std::shared_ptr<hbase::AsyncConnection>&, 
std::shared_ptr<folly::HHWheelTimer>&, std::shared_ptr<hbase::pb::TableName>&, 
std::string&, hbase::RegionLocateType&, std::function<folly::Future<bool> 
(std::shared_ptr<hbase::HBaseRpcController>, 
std::shared_ptr<hbase::RegionLocation>, std::shared_ptr<hbase::RpcClient>)>&, 
std::chrono::duration<long, std::ratio<1l, 1000000000l> >&, unsigned int&, 
std::chrono::duration<long, std::ratio<1l, 1000000000l> >&, 
std::chrono::duration<long, std::ratio<1l, 1000000000l> >&, unsigned 
int&>(hbase::AsyncSingleRequestRpcRetryingCaller<bool>*, 
std::shared_ptr<hbase::AsyncConnection>&, 
std::shared_ptr<folly::HHWheelTimer>&, std::shared_ptr<hbase::pb::TableName>&, 
std::string&, hbase::RegionLocateType&, std::function<folly::Future<bool> 
(std::shared_ptr<hbase::HBaseRpcController>, 
std::shared_ptr<hbase::RegionLocation>, std::shared_ptr<hbase::RpcClient>)>&, 
std::chrono::duration<long, std::ratio<1l, 1000000000l> >&, unsigned int&, 
std::chrono::duration<long, std::ratio<1l, 1000000000l> >&, 
std::chrono::duration<long, std::ratio<1l, 1000000000l> >&, unsigned int&)':
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.3.1/../../../../include/c++/5.3.1/ext/new_allocator.h:120:
 undefined reference to 
`hbase::AsyncSingleRequestRpcRetryingCaller<bool>::AsyncSingleRequestRpcRetryingCaller(std::shared_ptr<hbase::AsyncConnection>,
 std::shared_ptr<folly::HHWheelTimer>, std::shared_ptr<hbase::pb::TableName>, 
std::string const&, hbase::RegionLocateType, std::function<folly::Future<bool> 
(std::shared_ptr<hbase::HBaseRpcController>, 
std::shared_ptr<hbase::RegionLocation>, std::shared_ptr<hbase::RpcClient>)>, 
std::chrono::duration<long, std::ratio<1l, 1000000000l> >, unsigned int, 
std::chrono::duration<long, std::ratio<1l, 1000000000l> >, 
std::chrono::duration<long, std::ratio<1l, 1000000000l> >, unsigned int)'
{code}

> Implement Table#checkAndPut()
> -----------------------------
>
>                 Key: HBASE-18174
>                 URL: https://issues.apache.org/jira/browse/HBASE-18174
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Ted Yu
>         Attachments: 18174.v1.txt, 18174.v7.lambda.txt
>
>
> This task is to implement Table#checkAndPut() method



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to