SEGFAULT in activemq-cpp 3.9.4 when creating connection

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

SEGFAULT in activemq-cpp 3.9.4 when creating connection

Munson, Eric
Hi,

I am trying to use activemq-cpp as a message producer and I cannot get
the system setup.  I have built and installed activemq-cpp using the
distro versions of apr and aprutil on Ubuntu 17.04.  When I try and
create a ConnectionFactory with the following code (simplified from my
process for isolating the problem) I get a segfault:

#include <activemq/core/ActiveMQConnectionFactory.h>
#include <activemq/util/Config.h>
#include <activemq/library/ActiveMQCPP.h>
#include <cms/Connection.h>
#include <cms/Session.h>
#include <cms/TextMessage.h>

#include <iostream>
#include <sstream>
#include <string>

using namespace std;
using namespace cms;
using namespace activemq;
using namespace activemq::core;

int main(int argc, char **argv)
{
     ConnectionFactory *mFactory;
     Connection *mConnection;
     Session *mSession;
     Destination *mDestination;
     MessageProducer *mProducer;

     string brokerURI = "tcp://localhost:61613?wireFormat=stomp";

     try
     {
         mFactory =
ConnectionFactory::createCMSConnectionFactory(brokerURI);
         if (!mFactory)
             throw runtime_error("Failed to create ActiveMQ Connection
Factory");

...

     }
     catch (CMSException &e)
     {
         throw runtime_error(e.what());
     }

     return 0;
}

And the segfault is:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff77a1707 in
decaf::internal::util::concurrent::Threading::lockThreadsLib () at
decaf/internal/util/concurrent/Threading.cpp:866
866         PlatformThread::lockMutex(library->globalLock);
(gdb) where
#0  0x00007ffff77a1707 in
decaf::internal::util::concurrent::Threading::lockThreadsLib () at
decaf/internal/util/concurrent/Threading.cpp:866
#1  0x00007ffff7830916 in decaf::util::concurrent::Mutex::lock
(this=0x5555557724c0) at decaf/util/concurrent/Mutex.cpp:120
#2  0x00007ffff7830535 in decaf::util::concurrent::Lock::lock
(this=0x7fffffffda30) at decaf/util/concurrent/Lock.cpp:54
#3  0x00007ffff7830665 in decaf::util::concurrent::Lock::Lock
(this=<optimized out>, object=<optimized out>, intiallyLocked=<optimized
out>) at decaf/util/concurrent/Lock.cpp:32
#4  0x00007ffff74de552 in
activemq::core::ActiveMQConnectionFactory::setBrokerURI
(this=this@entry=0x55555576f9e0, uri=...) at
activemq/core/ActiveMQConnectionFactory.cpp:471
#5  0x00007ffff74de809 in
activemq::core::ActiveMQConnectionFactory::ActiveMQConnectionFactory
(this=0x55555576f9e0, uri="tcp://localhost:61613?wireFormat=stomp",
username="",
     password="") at activemq/core/ActiveMQConnectionFactory.cpp:257
#6  0x00007ffff74dea99 in
cms::ConnectionFactory::createCMSConnectionFactory
(brokerURI="tcp://localhost:61613?wireFormat=stomp") at
activemq/core/ActiveMQConnectionFactory.cpp:245
#7  0x0000555555554db4 in main (argc=<optimized out>, argv=<optimized
out>) at test.cpp:28


Am I doing something wrong?

Thanks,
Eric
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: SEGFAULT in activemq-cpp 3.9.4 when creating connection

tabish121@gmail.com
On 08/02/2017 12:02 PM, Munson, Eric wrote:

> Hi,
>
> I am trying to use activemq-cpp as a message producer and I cannot get
> the system setup.  I have built and installed activemq-cpp using the
> distro versions of apr and aprutil on Ubuntu 17.04. When I try and
> create a ConnectionFactory with the following code (simplified from my
> process for isolating the problem) I get a segfault:
>
> #include <activemq/core/ActiveMQConnectionFactory.h>
> #include <activemq/util/Config.h>
> #include <activemq/library/ActiveMQCPP.h>
> #include <cms/Connection.h>
> #include <cms/Session.h>
> #include <cms/TextMessage.h>
>
> #include <iostream>
> #include <sstream>
> #include <string>
>
> using namespace std;
> using namespace cms;
> using namespace activemq;
> using namespace activemq::core;
>
> int main(int argc, char **argv)
> {
>     ConnectionFactory *mFactory;
>     Connection *mConnection;
>     Session *mSession;
>     Destination *mDestination;
>     MessageProducer *mProducer;
>
>     string brokerURI = "tcp://localhost:61613?wireFormat=stomp";
>
>     try
>     {
>         mFactory =
> ConnectionFactory::createCMSConnectionFactory(brokerURI);
>         if (!mFactory)
>             throw runtime_error("Failed to create ActiveMQ Connection
> Factory");
>
> ...
>
>     }
>     catch (CMSException &e)
>     {
>         throw runtime_error(e.what());
>     }
>
>     return 0;
> }
>
> And the segfault is:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff77a1707 in
> decaf::internal::util::concurrent::Threading::lockThreadsLib () at
> decaf/internal/util/concurrent/Threading.cpp:866
> 866         PlatformThread::lockMutex(library->globalLock);
> (gdb) where
> #0  0x00007ffff77a1707 in
> decaf::internal::util::concurrent::Threading::lockThreadsLib () at
> decaf/internal/util/concurrent/Threading.cpp:866
> #1  0x00007ffff7830916 in decaf::util::concurrent::Mutex::lock
> (this=0x5555557724c0) at decaf/util/concurrent/Mutex.cpp:120
> #2  0x00007ffff7830535 in decaf::util::concurrent::Lock::lock
> (this=0x7fffffffda30) at decaf/util/concurrent/Lock.cpp:54
> #3  0x00007ffff7830665 in decaf::util::concurrent::Lock::Lock
> (this=<optimized out>, object=<optimized out>,
> intiallyLocked=<optimized out>) at decaf/util/concurrent/Lock.cpp:32
> #4  0x00007ffff74de552 in
> activemq::core::ActiveMQConnectionFactory::setBrokerURI
> (this=this@entry=0x55555576f9e0, uri=...) at
> activemq/core/ActiveMQConnectionFactory.cpp:471
> #5  0x00007ffff74de809 in
> activemq::core::ActiveMQConnectionFactory::ActiveMQConnectionFactory
> (this=0x55555576f9e0, uri="tcp://localhost:61613?wireFormat=stomp",
> username="",
>     password="") at activemq/core/ActiveMQConnectionFactory.cpp:257
> #6  0x00007ffff74dea99 in
> cms::ConnectionFactory::createCMSConnectionFactory
> (brokerURI="tcp://localhost:61613?wireFormat=stomp") at
> activemq/core/ActiveMQConnectionFactory.cpp:245
> #7  0x0000555555554db4 in main (argc=<optimized out>, argv=<optimized
> out>) at test.cpp:28
>
>
> Am I doing something wrong?
>
> Thanks,
> Eric
>
Don't see any call to activemq::library::ActiveMQCPP::initializeLibrary();


--
Tim Bish
twitter: @tabish121
blog: http://timbish.blogspot.com/

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: SEGFAULT in activemq-cpp 3.9.4 when creating connection

Munson, Eric
On 2017-08-02 12:14, Timothy Bish wrote:

> On 08/02/2017 12:02 PM, Munson, Eric wrote:
>> Hi,
>>
>> I am trying to use activemq-cpp as a message producer and I cannot get
>> the system setup.  I have built and installed activemq-cpp using the
>> distro versions of apr and aprutil on Ubuntu 17.04. When I try and
>> create a ConnectionFactory with the following code (simplified from my
>> process for isolating the problem) I get a segfault:
>>
>> #include <activemq/core/ActiveMQConnectionFactory.h>
>> #include <activemq/util/Config.h>
>> #include <activemq/library/ActiveMQCPP.h>
>> #include <cms/Connection.h>
>> #include <cms/Session.h>
>> #include <cms/TextMessage.h>
>>
>> #include <iostream>
>> #include <sstream>
>> #include <string>
>>
>> using namespace std;
>> using namespace cms;
>> using namespace activemq;
>> using namespace activemq::core;
>>
>> int main(int argc, char **argv)
>> {
>>     ConnectionFactory *mFactory;
>>     Connection *mConnection;
>>     Session *mSession;
>>     Destination *mDestination;
>>     MessageProducer *mProducer;
>>
>>     string brokerURI = "tcp://localhost:61613?wireFormat=stomp";
>>
>>     try
>>     {
>>         mFactory =
>> ConnectionFactory::createCMSConnectionFactory(brokerURI);
>>         if (!mFactory)
>>             throw runtime_error("Failed to create ActiveMQ Connection
>> Factory");
>>
>> ...
>>
>>     }
>>     catch (CMSException &e)
>>     {
>>         throw runtime_error(e.what());
>>     }
>>
>>     return 0;
>> }
>>
>> And the segfault is:
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x00007ffff77a1707 in
>> decaf::internal::util::concurrent::Threading::lockThreadsLib () at
>> decaf/internal/util/concurrent/Threading.cpp:866
>> 866         PlatformThread::lockMutex(library->globalLock);
>> (gdb) where
>> #0  0x00007ffff77a1707 in
>> decaf::internal::util::concurrent::Threading::lockThreadsLib () at
>> decaf/internal/util/concurrent/Threading.cpp:866
>> #1  0x00007ffff7830916 in decaf::util::concurrent::Mutex::lock
>> (this=0x5555557724c0) at decaf/util/concurrent/Mutex.cpp:120
>> #2  0x00007ffff7830535 in decaf::util::concurrent::Lock::lock
>> (this=0x7fffffffda30) at decaf/util/concurrent/Lock.cpp:54
>> #3  0x00007ffff7830665 in decaf::util::concurrent::Lock::Lock
>> (this=<optimized out>, object=<optimized out>,
>> intiallyLocked=<optimized out>) at decaf/util/concurrent/Lock.cpp:32
>> #4  0x00007ffff74de552 in
>> activemq::core::ActiveMQConnectionFactory::setBrokerURI
>> (this=this@entry=0x55555576f9e0, uri=...) at
>> activemq/core/ActiveMQConnectionFactory.cpp:471
>> #5  0x00007ffff74de809 in
>> activemq::core::ActiveMQConnectionFactory::ActiveMQConnectionFactory
>> (this=0x55555576f9e0, uri="tcp://localhost:61613?wireFormat=stomp",
>> username="",
>>     password="") at activemq/core/ActiveMQConnectionFactory.cpp:257
>> #6  0x00007ffff74dea99 in
>> cms::ConnectionFactory::createCMSConnectionFactory
>> (brokerURI="tcp://localhost:61613?wireFormat=stomp") at
>> activemq/core/ActiveMQConnectionFactory.cpp:245
>> #7  0x0000555555554db4 in main (argc=<optimized out>, argv=<optimized
>> out>) at test.cpp:28
>>
>>
>> Am I doing something wrong?
>>
>> Thanks,
>> Eric
>>
> Don't see any call to
> activemq::library::ActiveMQCPP::initializeLibrary();


That took care of it, thank you.

Eric
Loading...