You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2020/06/17 07:36:37 UTC
[GitHub] [pulsar] nqf opened a new issue #7286: call sendAsync produce segmentation fault
nqf opened a new issue #7286:
URL: https://github.com/apache/pulsar/issues/7286
```
void callback(Result code, const MessageId& msgId) {
std::cout << "call back" << std::endl;
//LOG_INFO("Received code: " << code << " -- MsgID: " << msgId);
}
int main() {
Client client("pulsar://localhost:6650");
Producer producer;
Result result = client.createProducer("persistent://prop/r1/ns1/my-topic", producer);
if (result != ResultOk) {
//LOG_ERROR("Error creating producer: " << result);
return -1;
}
// Send asynchronously
while (true) {
Message msg = MessageBuilder().setContent("content").setProperty("x", "1").build();
producer.sendAsync(msg, callback);
std::this_thread::sleep_for(std::chrono::seconds(10));
}
client.close();
}
➜ examples git:(master) ✗ gdb ./async_producer
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-110.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/user/pulsar/pulsar-client-cpp/examples/async_producer...done.
(gdb) run
Starting program: /home/user/pulsar/pulsar-client-cpp/examples/./async_producer
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7ffff6310700 (LWP 14722)]
2020-06-17 16:31:06.760 INFO ConnectionPool:85 | Created connection for pulsar://localhost:6650
[New Thread 0x7ffff5b0f700 (LWP 14723)]
2020-06-17 16:31:06.767 INFO ClientConnection:330 | [127.0.0.1:52252 -> 127.0.0.1:6650] Connected to broker
2020-06-17 16:31:06.770 INFO BatchMessageContainer:43 | { BatchContainer [size = 0] [batchSizeInBytes_ = 0] [maxAllowedMessageBatchSizeInBytes_ =
131072] [maxAllowedNumMessagesInBatch_ = 1000] [topicName = persistent://prop/r1/ns1/my-topic] [producerName_ = ] [batchSizeInBytes_ = 0] [number
OfBatchesSent = 0] [averageBatchSize = 0]} BatchMessageContainer constructed
2020-06-17 16:31:06.770 INFO HandlerBase:53 | [persistent://prop/r1/ns1/my-topic, ] Getting connection from pool
2020-06-17 16:31:06.773 INFO ProducerImpl:153 | [persistent://prop/r1/ns1/my-topic, ] Created producer on broker [127.0.0.1:52252 -> 127.0.0.1:66
50]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff6310700 (LWP 14722)]
std::_Function_handler<void (pulsar::Result, pulsar::MessageId const&), void (*)(pulsar::Result, pulsar::MessageId const&)>::_M_invoke(std::_Any_$ata const&, pulsar::Result&&, pulsar::MessageId const&) (__functor=...,
__args#0=<unknown type in /home/user/pulsar/pulsar-client-cpp/examples/async_producer, CU 0x0, DIE 0x1c534>, __args#1=...)
at /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/std_function.h:316
316 (*_Base::_M_get_pointer(__functor))(
Missing separate debuginfos, use: debuginfo-install glibc-2.17-222.el7.x86_64 libgcc-4.8.5-28.el7_5.1.x86_64 libstdc++-4.8.5-28.el7_5.1.x86_64
(gdb) where
#0 std::_Function_handler<void (pulsar::Result, pulsar::MessageId const&), void (*)(pulsar::Result, pulsar::MessageId const&)>::_M_invoke(std::_A
ny_data const&, pulsar::Result&&, pulsar::MessageId const&) (__functor=...,
__args#0=<unknown type in /home/user/pulsar/pulsar-client-cpp/examples/async_producer, CU 0x0, DIE 0x1c534>, __args#1=...)
at /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/std_function.h:316
#1 0x00007ffff7739f9f in pulsar::ProducerImpl::statsCallBackHandler(pulsar::Result, pulsar::MessageId const&, std::function<void (pulsar::Result,
pulsar::MessageId const&)>, boost::posix_time::ptime) (this=<optimized out>, res=pulsar::ResultOk, msgId=..., callback=..., publishTime=...)
at /usr/src/debug/apache-pulsar-2.5.2/pulsar-client-cpp/lib/ProducerImpl.cc:301
#2 0x00007ffff7742a98 in _M_call<std::shared_ptr<pulsar::ProducerImpl>&, pulsar::Result, const pulsar::MessageId&, std::function<void(pulsar::Res
ult, const pulsar::MessageId&)>&, boost::posix_time::ptime&> (__ptr=warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace<pulsar:
:ProducerImpl, std::allocator<pulsar::ProducerImpl>, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace<pulsar::ProducerImpl, std::allocator<pulsar::ProducerImpl>, (__gnu_cxx::_Lo
ck_policy)2>'
std::shared_ptr (count 4, weak 4) 0x7fffe80018d8, this=0x61e510)
at /usr/include/c++/4.8.2/functional:558
#3 operator()<std::shared_ptr<pulsar::ProducerImpl>&, pulsar::Result, const pulsar::MessageId&, std::function<void(pulsar::Result, const pulsar::
MessageId&)>&, boost::posix_time::ptime&, void> (__object=warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace<pulsar::ProducerI
mpl, std::allocator<pulsar::ProducerImpl>, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace<pulsar::ProducerImpl, std::allocator<pulsar::ProducerImpl>, (__gnu_cxx::_Lo
ck_policy)2>'
std::shared_ptr (count 4, weak 4) 0x7fffe80018d8, this=0x61e510)
at /usr/include/c++/4.8.2/functional:610
#4 __call<void, pulsar::Result&&, const pulsar::MessageId&, 0ul, 1ul, 2ul, 3ul, 4ul> (__args=<optimized out>, this=0x61e510)
at /usr/include/c++/4.8.2/functional:1296
#5 operator()<pulsar::Result, const pulsar::MessageId&, void> (this=0x61e510) at /usr/include/c++/4.8.2/functional:1355
#6 std::_Function_handler<void (pulsar::Result, pulsar::MessageId const&), std::_Bind<std::_Mem_fn<void (pulsar::ProducerImpl::*)(pulsar::Result, pulsar::MessageId const&, std::function<void (pulsar::Result, pulsar::MessageId const&)>, boost::posix_time::ptime)> (std::shared_ptr<pulsar::ProducerImpl>, std::_Placeholder<1>, std::_Placeholder<2>, std::function<void (pulsar::Result, pulsar::MessageId const&)>, boost::posix_time::ptime)> >::_M_invoke(std::_Any_data const&, pulsar::Result, pulsar::MessageId const&) (__functor=..., __args#0=pulsar::ResultOk, __args#1=...)
at /usr/include/c++/4.8.2/functional:2071
#7 0x00007ffff7681fb4 in operator() (__args#1=..., __args#0=pulsar::ResultOk, this=<optimized out>) at /usr/include/c++/4.8.2/functional:2471
#8 callBack (messageId=..., r=pulsar::ResultOk, this=<optimized out>)
at /usr/src/debug/apache-pulsar-2.5.2/pulsar-client-cpp/lib/BatchMessageContainer.h:52
#9 pulsar::BatchMessageContainer::batchMessageCallBack(pulsar::Result, pulsar::MessageId const&, std::shared_ptr<std::vector<pulsar::BatchMessageContainer::MessageContainer, std::allocator<pulsar::BatchMessageContainer::MessageContainer> > >, std::function<void (pulsar::Result)>) (
r=pulsar::ResultOk, messageId=..., messagesContainerListPtr=std::shared_ptr (count 2, weak 0) 0x7fffe8001308, flushCallback=...)
at /usr/src/debug/apache-pulsar-2.5.2/pulsar-client-cpp/lib/BatchMessageContainer.cc:161
#10 0x00007ffff7685b80 in __call<void, pulsar::Result&&, const pulsar::MessageId&, 0ul, 1ul, 2ul, 3ul> (__args=<optimized out>,
this=<optimized out>) at /usr/include/c++/4.8.2/functional:1296
---Type <return> to continue, or q <return> to quit---
```
----------------------------------------------------------------
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:
users@infra.apache.org
[GitHub] [pulsar] BewareMyPower commented on issue #7286: [c++] call sendAsync produce segmentation fault
Posted by GitBox <gi...@apache.org>.
BewareMyPower commented on issue #7286:
URL: https://github.com/apache/pulsar/issues/7286#issuecomment-645235245
It seems like you didn't use the latest version of C++ client. Besides, should you use topic name like `persistent://public/default/my-topic`?
----------------------------------------------------------------
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:
users@infra.apache.org
[GitHub] [pulsar] TinDang97 commented on issue #7286: [c++] call sendAsync produce segmentation fault
Posted by GitBox <gi...@apache.org>.
TinDang97 commented on issue #7286:
URL: https://github.com/apache/pulsar/issues/7286#issuecomment-645723794
> I didn't use pulsar admin, but `producer.send(msg);` can work
Yes, `producer.send` work without any problem but the broker doesn't auto-create new tenant and namespace. You can check pulsar logs.
----------------------------------------------------------------
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:
users@infra.apache.org
[GitHub] [pulsar] nqf commented on issue #7286: [c++] call sendAsync produce segmentation fault
Posted by GitBox <gi...@apache.org>.
nqf commented on issue #7286:
URL: https://github.com/apache/pulsar/issues/7286#issuecomment-645765105
> > I didn't use pulsar admin, but `producer.send(msg);` can work
>
> Yes, `producer.send` work without any problem but the broker doesn't auto-create new tenant and namespace. You can check pulsar logs.
```
13:29:00.545 [pulsar-io-50-29] INFO org.apache.pulsar.broker.service.ServerCnx - New connection from /127.0.0.1:58352
13:29:00.548 [pulsar-io-50-29] INFO org.apache.pulsar.broker.service.ServerCnx - [/127.0.0.1:58352][persistent://prop/r1/ns1/my-topic] Creating producer. producerId=0
13:29:00.548 [pulsar-io-50-29] WARN org.apache.pulsar.broker.service.BrokerService - No autoTopicCreateOverride policy found for persistent://prop/r1/ns1/my-topic
13:29:00.549 [ForkJoinPool.commonPool-worker-9] INFO org.apache.pulsar.broker.service.ServerCnx - [/127.0.0.1:58352] persistent://prop/r1/ns1/my-topic configured with schema false
13:29:00.550 [ForkJoinPool.commonPool-worker-9] INFO org.apache.pulsar.broker.service.ServerCnx - [/127.0.0.1:58352] Created new producer: Producer{topic=PersistentTopic{topic=persistent://prop/r1/ns1/my-topic}, client=/127.0.0.1:58352, producerName=standalone-5-118, producerId=0}
13:29:00.564 [pulsar-io-50-29] INFO org.apache.pulsar.broker.service.ServerCnx - Closed connection from /127.0.0.1:58352
13:29:01.572 [pulsar-web-67-27] INFO org.eclipse.jetty.server.RequestLog - 127.0.0.1 - - [18/Jun/2020:13:29:01 +0900] "GET /admin/v2/persistent/public/functions/coordinate/stats?getPreciseBacklog=false HTTP/1.1" 200 1165 "-" "Pulsar-Java-v2.5.2" 1
```
----------------------------------------------------------------
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:
users@infra.apache.org
[GitHub] [pulsar] TinDang97 edited a comment on issue #7286: [c++] call sendAsync produce segmentation fault
Posted by GitBox <gi...@apache.org>.
TinDang97 edited a comment on issue #7286:
URL: https://github.com/apache/pulsar/issues/7286#issuecomment-645723794
> I didn't use pulsar admin, but `producer.send(msg);` can work
>
Yes, `producer.send` work without any problem but the broker doesn't auto-create new tenant and namespace. You can check pulsar logs.
----------------------------------------------------------------
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:
users@infra.apache.org
[GitHub] [pulsar] nqf commented on issue #7286: [c++] call sendAsync produce segmentation fault
Posted by GitBox <gi...@apache.org>.
nqf commented on issue #7286:
URL: https://github.com/apache/pulsar/issues/7286#issuecomment-645717010
> Did you create tenant (prop) and namespace (r1) by pulsar-admin?
I didn't use pulsar admin, but `producer.send(msg);` can work
----------------------------------------------------------------
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:
users@infra.apache.org
[GitHub] [pulsar] TinDang97 commented on issue #7286: [c++] call sendAsync produce segmentation fault
Posted by GitBox <gi...@apache.org>.
TinDang97 commented on issue #7286:
URL: https://github.com/apache/pulsar/issues/7286#issuecomment-645258666
Did you create tenant (prop) and namespace (r1) by pulsar-admin?
----------------------------------------------------------------
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:
users@infra.apache.org