[jira] [Updated] (QPID-8250) Qpid C++ 1.39.0 release tasks
[ https://issues.apache.org/jira/browse/QPID-8250?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Justin Ross updated QPID-8250: -- Fix Version/s: (was: qpid-cpp-1.38.0) qpid-cpp-1.39.0 > Qpid C++ 1.39.0 release tasks > - > > Key: QPID-8250 > URL: https://issues.apache.org/jira/browse/QPID-8250 > Project: Qpid > Issue Type: Task > Components: C++ Broker, C++ Client >Reporter: Justin Ross >Assignee: Justin Ross >Priority: Major > Fix For: qpid-cpp-1.39.0 > > -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Created] (QPID-8250) Qpid C++ 1.39.0 release tasks
Justin Ross created QPID-8250: - Summary: Qpid C++ 1.39.0 release tasks Key: QPID-8250 URL: https://issues.apache.org/jira/browse/QPID-8250 Project: Qpid Issue Type: Task Components: C++ Broker, C++ Client Reporter: Justin Ross Assignee: Justin Ross Fix For: qpid-cpp-1.38.0 -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Closed] (QPID-7814) Can't Compile "Hello World" example with g++, but can compile with clang++
[ https://issues.apache.org/jira/browse/QPID-7814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Justin Ross closed QPID-7814. - Resolution: Not A Bug > Can't Compile "Hello World" example with g++, but can compile with clang++ > -- > > Key: QPID-7814 > URL: https://issues.apache.org/jira/browse/QPID-7814 > Project: Qpid > Issue Type: Bug > Components: C++ Client >Affects Versions: qpid-cpp-1.36.0 > Environment: Ubuntu 16.04 Docker Image >Reporter: Matt Singman >Assignee: Justin Ross >Priority: Major > Labels: build > > The example hello_world.cpp program does not compile when using g++ in my > Ubuntu 16.04 Docker image, but does when using clang++. I attempted to > compile it with g++ 5.4.0, g++ 4.9 and g++ 4.8 but I get the same error for > each. The command entered was "g++ -lqpidtypes -lqpidmessaging > helloWorld.cpp". When using clang++ 3.8.0 with the command "clang++ > -lqpidtypes -lqpidmessaging helloWorld.cpp" the code compiles. > I am pretty sure that it is able to find the libraries because when I do > something like "g++ -lqpidtypes -lqpidmessagin helloWorld.cpp" (note the > missing g on messaging) it says "/usr/bin/ld: cannot find -lqpidmessagin". > When the libraries are typed correctly I get the following: > /tmp/ccNPg3lI.o: In function `main': > helloWorld.cpp:(.text+0xba): undefined reference to > `qpid::messaging::Connection::Connection(std::string const&, std::string > const&)' > helloWorld.cpp:(.text+0xc9): undefined reference to > `qpid::messaging::Connection::open()' > helloWorld.cpp:(.text+0xf8): undefined reference to > `qpid::messaging::Connection::createSession(std::string const&)' > helloWorld.cpp:(.text+0x127): undefined reference to > `qpid::messaging::Session::createReceiver(std::string const&)' > helloWorld.cpp:(.text+0x144): undefined reference to > `qpid::messaging::Session::createSender(std::string const&)' > helloWorld.cpp:(.text+0x163): undefined reference to > `qpid::messaging::Message::Message(std::string const&)' > helloWorld.cpp:(.text+0x180): undefined reference to > `qpid::types::Variant::Variant(char const*)' > helloWorld.cpp:(.text+0x193): undefined reference to > `qpid::messaging::Message::setContentObject(qpid::types::Variant const&)' > helloWorld.cpp:(.text+0x19f): undefined reference to > `qpid::types::Variant::~Variant()' > helloWorld.cpp:(.text+0x1cc): undefined reference to > `qpid::messaging::Message::getContentObject()' > helloWorld.cpp:(.text+0x1db): undefined reference to > `qpid::types::Variant::setEncoding(std::string const&)' > helloWorld.cpp:(.text+0x20b): undefined reference to > `qpid::messaging::Sender::send(qpid::messaging::Message const&, bool)' > helloWorld.cpp:(.text+0x215): undefined reference to > `qpid::messaging::Duration::SECOND' > helloWorld.cpp:(.text+0x21a): undefined reference to > `qpid::messaging::operator*(qpid::messaging::Duration const&, unsigned long)' > helloWorld.cpp:(.text+0x233): undefined reference to > `qpid::messaging::Receiver::fetch(qpid::messaging::Duration)' > helloWorld.cpp:(.text+0x246): undefined reference to > `qpid::messaging::Message::operator=(qpid::messaging::Message const&)' > helloWorld.cpp:(.text+0x252): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x265): undefined reference to > `qpid::messaging::Message::getContent() const' > helloWorld.cpp:(.text+0x2a3): undefined reference to > `qpid::messaging::Session::acknowledge(bool)' > helloWorld.cpp:(.text+0x2b2): undefined reference to > `qpid::messaging::Connection::close()' > helloWorld.cpp:(.text+0x2c3): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x2cf): undefined reference to > `qpid::messaging::Sender::~Sender()' > helloWorld.cpp:(.text+0x2de): undefined reference to > `qpid::messaging::Receiver::~Receiver()' > helloWorld.cpp:(.text+0x2ed): undefined reference to > `qpid::messaging::Session::~Session()' > helloWorld.cpp:(.text+0x2fc): undefined reference to > `qpid::messaging::Connection::~Connection()' > helloWorld.cpp:(.text+0x3a1): undefined reference to > `qpid::messaging::Session::~Session()' > helloWorld.cpp:(.text+0x3cf): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x3e3): undefined reference to > `qpid::types::Variant::~Variant()' > helloWorld.cpp:(.text+0x41f): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x447): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x45b): undefined reference to > `qpid::messaging::Sender::~Sender()' > helloWorld.cpp:(.text+0x472): undefined reference to > `qpid::messaging::Receiver::~Receiver()' >
[jira] [Updated] (QPID-7814) Can't Compile "Hello World" example with g++, but can compile with clang++
[ https://issues.apache.org/jira/browse/QPID-7814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Justin Ross updated QPID-7814: -- Fix Version/s: (was: qpid-cpp-1.39.0) > Can't Compile "Hello World" example with g++, but can compile with clang++ > -- > > Key: QPID-7814 > URL: https://issues.apache.org/jira/browse/QPID-7814 > Project: Qpid > Issue Type: Bug > Components: C++ Client >Affects Versions: qpid-cpp-1.36.0 > Environment: Ubuntu 16.04 Docker Image >Reporter: Matt Singman >Assignee: Justin Ross >Priority: Major > Labels: build > > The example hello_world.cpp program does not compile when using g++ in my > Ubuntu 16.04 Docker image, but does when using clang++. I attempted to > compile it with g++ 5.4.0, g++ 4.9 and g++ 4.8 but I get the same error for > each. The command entered was "g++ -lqpidtypes -lqpidmessaging > helloWorld.cpp". When using clang++ 3.8.0 with the command "clang++ > -lqpidtypes -lqpidmessaging helloWorld.cpp" the code compiles. > I am pretty sure that it is able to find the libraries because when I do > something like "g++ -lqpidtypes -lqpidmessagin helloWorld.cpp" (note the > missing g on messaging) it says "/usr/bin/ld: cannot find -lqpidmessagin". > When the libraries are typed correctly I get the following: > /tmp/ccNPg3lI.o: In function `main': > helloWorld.cpp:(.text+0xba): undefined reference to > `qpid::messaging::Connection::Connection(std::string const&, std::string > const&)' > helloWorld.cpp:(.text+0xc9): undefined reference to > `qpid::messaging::Connection::open()' > helloWorld.cpp:(.text+0xf8): undefined reference to > `qpid::messaging::Connection::createSession(std::string const&)' > helloWorld.cpp:(.text+0x127): undefined reference to > `qpid::messaging::Session::createReceiver(std::string const&)' > helloWorld.cpp:(.text+0x144): undefined reference to > `qpid::messaging::Session::createSender(std::string const&)' > helloWorld.cpp:(.text+0x163): undefined reference to > `qpid::messaging::Message::Message(std::string const&)' > helloWorld.cpp:(.text+0x180): undefined reference to > `qpid::types::Variant::Variant(char const*)' > helloWorld.cpp:(.text+0x193): undefined reference to > `qpid::messaging::Message::setContentObject(qpid::types::Variant const&)' > helloWorld.cpp:(.text+0x19f): undefined reference to > `qpid::types::Variant::~Variant()' > helloWorld.cpp:(.text+0x1cc): undefined reference to > `qpid::messaging::Message::getContentObject()' > helloWorld.cpp:(.text+0x1db): undefined reference to > `qpid::types::Variant::setEncoding(std::string const&)' > helloWorld.cpp:(.text+0x20b): undefined reference to > `qpid::messaging::Sender::send(qpid::messaging::Message const&, bool)' > helloWorld.cpp:(.text+0x215): undefined reference to > `qpid::messaging::Duration::SECOND' > helloWorld.cpp:(.text+0x21a): undefined reference to > `qpid::messaging::operator*(qpid::messaging::Duration const&, unsigned long)' > helloWorld.cpp:(.text+0x233): undefined reference to > `qpid::messaging::Receiver::fetch(qpid::messaging::Duration)' > helloWorld.cpp:(.text+0x246): undefined reference to > `qpid::messaging::Message::operator=(qpid::messaging::Message const&)' > helloWorld.cpp:(.text+0x252): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x265): undefined reference to > `qpid::messaging::Message::getContent() const' > helloWorld.cpp:(.text+0x2a3): undefined reference to > `qpid::messaging::Session::acknowledge(bool)' > helloWorld.cpp:(.text+0x2b2): undefined reference to > `qpid::messaging::Connection::close()' > helloWorld.cpp:(.text+0x2c3): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x2cf): undefined reference to > `qpid::messaging::Sender::~Sender()' > helloWorld.cpp:(.text+0x2de): undefined reference to > `qpid::messaging::Receiver::~Receiver()' > helloWorld.cpp:(.text+0x2ed): undefined reference to > `qpid::messaging::Session::~Session()' > helloWorld.cpp:(.text+0x2fc): undefined reference to > `qpid::messaging::Connection::~Connection()' > helloWorld.cpp:(.text+0x3a1): undefined reference to > `qpid::messaging::Session::~Session()' > helloWorld.cpp:(.text+0x3cf): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x3e3): undefined reference to > `qpid::types::Variant::~Variant()' > helloWorld.cpp:(.text+0x41f): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x447): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x45b): undefined reference to > `qpid::messaging::Sender::~Sender()' > helloWorld.cpp:(.text+0x472): undefined reference to >
[jira] [Commented] (QPID-7814) Can't Compile "Hello World" example with g++, but can compile with clang++
[ https://issues.apache.org/jira/browse/QPID-7814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16658413#comment-16658413 ] Justin Ross commented on QPID-7814: --- I reproduced this, and then I was able to fix it. I'd run into it before, but forgotten: certain gcc versions on ubuntu are sensitive to the position of the args. This fails with the error you listed: g++ -lqpidtypes -lqpidmessaging hello_world.cpp This succeeds: g++ hello_world.cpp -lqpidtypes -lqpidmessaging Pretty user hostile, I'd say. Closing this since it doesn't appear to be a Qpid issue. > Can't Compile "Hello World" example with g++, but can compile with clang++ > -- > > Key: QPID-7814 > URL: https://issues.apache.org/jira/browse/QPID-7814 > Project: Qpid > Issue Type: Bug > Components: C++ Client >Affects Versions: qpid-cpp-1.36.0 > Environment: Ubuntu 16.04 Docker Image >Reporter: Matt Singman >Assignee: Justin Ross >Priority: Major > Labels: build > > The example hello_world.cpp program does not compile when using g++ in my > Ubuntu 16.04 Docker image, but does when using clang++. I attempted to > compile it with g++ 5.4.0, g++ 4.9 and g++ 4.8 but I get the same error for > each. The command entered was "g++ -lqpidtypes -lqpidmessaging > helloWorld.cpp". When using clang++ 3.8.0 with the command "clang++ > -lqpidtypes -lqpidmessaging helloWorld.cpp" the code compiles. > I am pretty sure that it is able to find the libraries because when I do > something like "g++ -lqpidtypes -lqpidmessagin helloWorld.cpp" (note the > missing g on messaging) it says "/usr/bin/ld: cannot find -lqpidmessagin". > When the libraries are typed correctly I get the following: > /tmp/ccNPg3lI.o: In function `main': > helloWorld.cpp:(.text+0xba): undefined reference to > `qpid::messaging::Connection::Connection(std::string const&, std::string > const&)' > helloWorld.cpp:(.text+0xc9): undefined reference to > `qpid::messaging::Connection::open()' > helloWorld.cpp:(.text+0xf8): undefined reference to > `qpid::messaging::Connection::createSession(std::string const&)' > helloWorld.cpp:(.text+0x127): undefined reference to > `qpid::messaging::Session::createReceiver(std::string const&)' > helloWorld.cpp:(.text+0x144): undefined reference to > `qpid::messaging::Session::createSender(std::string const&)' > helloWorld.cpp:(.text+0x163): undefined reference to > `qpid::messaging::Message::Message(std::string const&)' > helloWorld.cpp:(.text+0x180): undefined reference to > `qpid::types::Variant::Variant(char const*)' > helloWorld.cpp:(.text+0x193): undefined reference to > `qpid::messaging::Message::setContentObject(qpid::types::Variant const&)' > helloWorld.cpp:(.text+0x19f): undefined reference to > `qpid::types::Variant::~Variant()' > helloWorld.cpp:(.text+0x1cc): undefined reference to > `qpid::messaging::Message::getContentObject()' > helloWorld.cpp:(.text+0x1db): undefined reference to > `qpid::types::Variant::setEncoding(std::string const&)' > helloWorld.cpp:(.text+0x20b): undefined reference to > `qpid::messaging::Sender::send(qpid::messaging::Message const&, bool)' > helloWorld.cpp:(.text+0x215): undefined reference to > `qpid::messaging::Duration::SECOND' > helloWorld.cpp:(.text+0x21a): undefined reference to > `qpid::messaging::operator*(qpid::messaging::Duration const&, unsigned long)' > helloWorld.cpp:(.text+0x233): undefined reference to > `qpid::messaging::Receiver::fetch(qpid::messaging::Duration)' > helloWorld.cpp:(.text+0x246): undefined reference to > `qpid::messaging::Message::operator=(qpid::messaging::Message const&)' > helloWorld.cpp:(.text+0x252): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x265): undefined reference to > `qpid::messaging::Message::getContent() const' > helloWorld.cpp:(.text+0x2a3): undefined reference to > `qpid::messaging::Session::acknowledge(bool)' > helloWorld.cpp:(.text+0x2b2): undefined reference to > `qpid::messaging::Connection::close()' > helloWorld.cpp:(.text+0x2c3): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x2cf): undefined reference to > `qpid::messaging::Sender::~Sender()' > helloWorld.cpp:(.text+0x2de): undefined reference to > `qpid::messaging::Receiver::~Receiver()' > helloWorld.cpp:(.text+0x2ed): undefined reference to > `qpid::messaging::Session::~Session()' > helloWorld.cpp:(.text+0x2fc): undefined reference to > `qpid::messaging::Connection::~Connection()' > helloWorld.cpp:(.text+0x3a1): undefined reference to > `qpid::messaging::Session::~Session()' > helloWorld.cpp:(.text+0x3cf): undefined reference to > `qpid::messaging::Message::~Message()' > helloWorld.cpp:(.text+0x3e3): undefined reference to >
[jira] [Resolved] (QPID-8187) Incompatible callback function pointer casts fail to build on GCC 8
[ https://issues.apache.org/jira/browse/QPID-8187?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Justin Ross resolved QPID-8187. --- Resolution: Fixed > Incompatible callback function pointer casts fail to build on GCC 8 > --- > > Key: QPID-8187 > URL: https://issues.apache.org/jira/browse/QPID-8187 > Project: Qpid > Issue Type: Bug > Components: C++ Broker >Affects Versions: qpid-cpp-1.38.0 > Environment: Gentoo x64, GCC 8.1 >Reporter: Chris Richardson >Assignee: Justin Ross >Priority: Major > Fix For: qpid-cpp-1.39.0 > > > {quote}[ 22%] Building CXX object > src/CMakeFiles/qpidcommon.dir/qpid/sys/epoll/EpollPoller.cpp.o > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp: In > constructor ‘qpid::CyrusSasl::CyrusSasl(const string&, const string&, const > string&, const string&, int, int, bool)’: > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp:215:46: > error: cast between incompatible function types from ‘int (*)(void*, int, > const char**, unsigned int*)’ to ‘int (*)()’ [-Werror=cast-function-type] > callbacks[i].proc = (CallbackProc*) > ^~~ > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp:223:50: > error: cast between incompatible function types from ‘int (*)(sasl_conn_t*, > void*, int, sasl_secret_t**)’ > Unknown macro: \{aka ‘int (*)(sasl_conn*, void*, int, sasl_secret**)’} > to ‘int (*)()’ [-Werror=cast-function-type] > callbacks[i].proc = (CallbackProc*) > ^~ > {quote} > Given the constrains of the SASL library interface, the only obvious solution > for this I can think of is to add "-Wno-error=cast-function-type" to the > compiler settings. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Reopened] (QPID-8187) Incompatible callback function pointer casts fail to build on GCC 8
[ https://issues.apache.org/jira/browse/QPID-8187?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Justin Ross reopened QPID-8187: --- > Incompatible callback function pointer casts fail to build on GCC 8 > --- > > Key: QPID-8187 > URL: https://issues.apache.org/jira/browse/QPID-8187 > Project: Qpid > Issue Type: Bug > Components: C++ Broker >Affects Versions: qpid-cpp-1.38.0 > Environment: Gentoo x64, GCC 8.1 >Reporter: Chris Richardson >Assignee: Justin Ross >Priority: Major > Fix For: qpid-cpp-1.39.0 > > > {quote}[ 22%] Building CXX object > src/CMakeFiles/qpidcommon.dir/qpid/sys/epoll/EpollPoller.cpp.o > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp: In > constructor ‘qpid::CyrusSasl::CyrusSasl(const string&, const string&, const > string&, const string&, int, int, bool)’: > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp:215:46: > error: cast between incompatible function types from ‘int (*)(void*, int, > const char**, unsigned int*)’ to ‘int (*)()’ [-Werror=cast-function-type] > callbacks[i].proc = (CallbackProc*) > ^~~ > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp:223:50: > error: cast between incompatible function types from ‘int (*)(sasl_conn_t*, > void*, int, sasl_secret_t**)’ > Unknown macro: \{aka ‘int (*)(sasl_conn*, void*, int, sasl_secret**)’} > to ‘int (*)()’ [-Werror=cast-function-type] > callbacks[i].proc = (CallbackProc*) > ^~ > {quote} > Given the constrains of the SASL library interface, the only obvious solution > for this I can think of is to add "-Wno-error=cast-function-type" to the > compiler settings. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Closed] (QPID-8187) Incompatible callback function pointer casts fail to build on GCC 8
[ https://issues.apache.org/jira/browse/QPID-8187?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Justin Ross closed QPID-8187. - Resolution: Fixed > Incompatible callback function pointer casts fail to build on GCC 8 > --- > > Key: QPID-8187 > URL: https://issues.apache.org/jira/browse/QPID-8187 > Project: Qpid > Issue Type: Bug > Components: C++ Broker >Affects Versions: qpid-cpp-1.38.0 > Environment: Gentoo x64, GCC 8.1 >Reporter: Chris Richardson >Assignee: Justin Ross >Priority: Major > Fix For: qpid-cpp-1.39.0 > > > {quote}[ 22%] Building CXX object > src/CMakeFiles/qpidcommon.dir/qpid/sys/epoll/EpollPoller.cpp.o > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp: In > constructor ‘qpid::CyrusSasl::CyrusSasl(const string&, const string&, const > string&, const string&, int, int, bool)’: > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp:215:46: > error: cast between incompatible function types from ‘int (*)(void*, int, > const char**, unsigned int*)’ to ‘int (*)()’ [-Werror=cast-function-type] > callbacks[i].proc = (CallbackProc*) > ^~~ > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp:223:50: > error: cast between incompatible function types from ‘int (*)(sasl_conn_t*, > void*, int, sasl_secret_t**)’ > Unknown macro: \{aka ‘int (*)(sasl_conn*, void*, int, sasl_secret**)’} > to ‘int (*)()’ [-Werror=cast-function-type] > callbacks[i].proc = (CallbackProc*) > ^~ > {quote} > Given the constrains of the SASL library interface, the only obvious solution > for this I can think of is to add "-Wno-error=cast-function-type" to the > compiler settings. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Updated] (QPID-8056) qpid::messaging::ConnectionContext crash after network disconnect (with patch)
[ https://issues.apache.org/jira/browse/QPID-8056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Justin Ross updated QPID-8056: -- Fix Version/s: (was: qpid-cpp-1.39.0) > qpid::messaging::ConnectionContext crash after network disconnect (with patch) > -- > > Key: QPID-8056 > URL: https://issues.apache.org/jira/browse/QPID-8056 > Project: Qpid > Issue Type: Bug > Components: C++ Client >Affects Versions: qpid-cpp-1.36.0 > Environment: RedHat Enterprise Linux 6 >Reporter: Håkan Johansson >Assignee: Justin Ross >Priority: Major > Labels: crash, patch > Attachments: connection_context.diff, valgrind.txt > > > When doing HA testing we found that our application often crashed inside the > Qpid Messaging library. > Our test: > * One ActiveMQ broker. > * Two proxies connecting to the AMQP port on the broker. At the start, only > one of the proxies are running. > * Test program configured to use failover between the two proxies. Protocol > is "amqp1.0". It reads messages in a loop using a transactional session. On > error it closes the connection and opens a new. > * Three queues are read from in parallel, each reader using its own > connection in a thread. Nothing is shared between the threads in the client > code. > * Send some messages and let the test program process them. > * Stop proxy1 and start proxy2. > * Send some more messages and let the test program process them. > * Stop proxy2 and start proxy1. > * And so on... > After a couple of switches the test program crashes, but not always. It's a > timing thing. > A typical error message that we see before the crash: > {noformat} > Exception when trying to close the qpid connection: Transaction outcome > unknown: transport failure > {noformat} > The reason for the crash is that the poller thread is still active when the > connection is being deleted. The destructor of the > {{qpid::messaging::ConnectionContext}} class deletes the {{TcpTransport}} > instance at the same time as, or right before, the poller thread is calling a > callback on it ({{qpid::messaging::amqp::TcpTransport::disconnected}}). > I have attached a patch to solve the issue, at least for this use case. > I cannot test this on {{1.37.0}} as I cannot build that version on RHEL6 as > it uses Python 2.6 which is no longer supported in {{1.37.0}}. The code in > question is identical in {{1.36.0}} and {{1.37.0}} though. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Resolved] (QPID-8183) [cpp] Remove deprecated code
[ https://issues.apache.org/jira/browse/QPID-8183?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Justin Ross resolved QPID-8183. --- Resolution: Done > [cpp] Remove deprecated code > > > Key: QPID-8183 > URL: https://issues.apache.org/jira/browse/QPID-8183 > Project: Qpid > Issue Type: Task > Components: C++ Broker, C++ Client >Affects Versions: qpid-cpp-1.38.0 >Reporter: Justin Ross >Assignee: Justin Ross >Priority: Major > Fix For: qpid-cpp-1.39.0 > > -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8187) Incompatible callback function pointer casts fail to build on GCC 8
[ https://issues.apache.org/jira/browse/QPID-8187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16658402#comment-16658402 ] ASF GitHub Bot commented on QPID-8187: -- Github user ssorj commented on the issue: https://github.com/apache/qpid-cpp/pull/17 My mistake. It's actually committed at https://github.com/apache/qpid-cpp/commit/706b5f3fb2fd4bb89ef8268575a8592b7b66272e > Incompatible callback function pointer casts fail to build on GCC 8 > --- > > Key: QPID-8187 > URL: https://issues.apache.org/jira/browse/QPID-8187 > Project: Qpid > Issue Type: Bug > Components: C++ Broker >Affects Versions: qpid-cpp-1.38.0 > Environment: Gentoo x64, GCC 8.1 >Reporter: Chris Richardson >Assignee: Justin Ross >Priority: Major > Fix For: qpid-cpp-1.39.0 > > > {quote}[ 22%] Building CXX object > src/CMakeFiles/qpidcommon.dir/qpid/sys/epoll/EpollPoller.cpp.o > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp: In > constructor ‘qpid::CyrusSasl::CyrusSasl(const string&, const string&, const > string&, const string&, int, int, bool)’: > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp:215:46: > error: cast between incompatible function types from ‘int (*)(void*, int, > const char**, unsigned int*)’ to ‘int (*)()’ [-Werror=cast-function-type] > callbacks[i].proc = (CallbackProc*) > ^~~ > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp:223:50: > error: cast between incompatible function types from ‘int (*)(sasl_conn_t*, > void*, int, sasl_secret_t**)’ > Unknown macro: \{aka ‘int (*)(sasl_conn*, void*, int, sasl_secret**)’} > to ‘int (*)()’ [-Werror=cast-function-type] > callbacks[i].proc = (CallbackProc*) > ^~ > {quote} > Given the constrains of the SASL library interface, the only obvious solution > for this I can think of is to add "-Wno-error=cast-function-type" to the > compiler settings. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] qpid-cpp issue #17: QPID-8187 Allow incompatible function casts for SASL com...
Github user ssorj commented on the issue: https://github.com/apache/qpid-cpp/pull/17 My mistake. It's actually committed at https://github.com/apache/qpid-cpp/commit/706b5f3fb2fd4bb89ef8268575a8592b7b66272e --- - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8186) Incorrect exception handling fails to build on GCC 8
[ https://issues.apache.org/jira/browse/QPID-8186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16658400#comment-16658400 ] ASF GitHub Bot commented on QPID-8186: -- Github user ssorj commented on the issue: https://github.com/apache/qpid-cpp/pull/14 Commited at https://github.com/apache/qpid-cpp/commit/8b09d246f2529ea59809cac743e55af3920b4895 > Incorrect exception handling fails to build on GCC 8 > > > Key: QPID-8186 > URL: https://issues.apache.org/jira/browse/QPID-8186 > Project: Qpid > Issue Type: Bug > Components: C++ Broker >Affects Versions: qpid-cpp-1.38.0 > Environment: Gentoo x64, GCC 8.1 >Reporter: Chris Richardson >Assignee: Justin Ross >Priority: Major > Fix For: qpid-cpp-1.39.0 > > > [ 22%] Building CXX object > src/CMakeFiles/qpidcommon.dir/qpid/sys/ssl/check.cpp.o > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/sys/posix/SocketAddress.cpp: > In member function ‘bool qpid::sys::SocketAddress::isComparable(const > qpid::sys::SocketAddress&) const’: > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/sys/posix/SocketAddress.cpp:208:18: > error: catching polymorphic type ‘class qpid::Exception’ by value > [-Werror=catch-value=] > } catch (Exception) { > ^ > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/sys/posix/SocketAddress.cpp:212:14: > error: catching polymorphic type ‘class qpid::Exception’ by value > [-Werror=catch-value=] > } catch (Exception) { > ^ > > > these "catch (Exception)" statements would better be const ref, which would > also fix the build failure. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8187) Incompatible callback function pointer casts fail to build on GCC 8
[ https://issues.apache.org/jira/browse/QPID-8187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16658399#comment-16658399 ] ASF GitHub Bot commented on QPID-8187: -- Github user ssorj commented on the issue: https://github.com/apache/qpid-cpp/pull/17 @chrisrichardson77 , this one is on master at https://github.com/apache/qpid-cpp/commit/8b09d246f2529ea59809cac743e55af3920b4895 Would you close the PR? > Incompatible callback function pointer casts fail to build on GCC 8 > --- > > Key: QPID-8187 > URL: https://issues.apache.org/jira/browse/QPID-8187 > Project: Qpid > Issue Type: Bug > Components: C++ Broker >Affects Versions: qpid-cpp-1.38.0 > Environment: Gentoo x64, GCC 8.1 >Reporter: Chris Richardson >Assignee: Justin Ross >Priority: Major > Fix For: qpid-cpp-1.39.0 > > > {quote}[ 22%] Building CXX object > src/CMakeFiles/qpidcommon.dir/qpid/sys/epoll/EpollPoller.cpp.o > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp: In > constructor ‘qpid::CyrusSasl::CyrusSasl(const string&, const string&, const > string&, const string&, int, int, bool)’: > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp:215:46: > error: cast between incompatible function types from ‘int (*)(void*, int, > const char**, unsigned int*)’ to ‘int (*)()’ [-Werror=cast-function-type] > callbacks[i].proc = (CallbackProc*) > ^~~ > /home/chrisr/projects/qpid/qpid-cpp/source/src/qpid/SaslFactory.cpp:223:50: > error: cast between incompatible function types from ‘int (*)(sasl_conn_t*, > void*, int, sasl_secret_t**)’ > Unknown macro: \{aka ‘int (*)(sasl_conn*, void*, int, sasl_secret**)’} > to ‘int (*)()’ [-Werror=cast-function-type] > callbacks[i].proc = (CallbackProc*) > ^~ > {quote} > Given the constrains of the SASL library interface, the only obvious solution > for this I can think of is to add "-Wno-error=cast-function-type" to the > compiler settings. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] qpid-cpp issue #14: QPID-8186 Use const ref when catching exceptions
Github user ssorj commented on the issue: https://github.com/apache/qpid-cpp/pull/14 Commited at https://github.com/apache/qpid-cpp/commit/8b09d246f2529ea59809cac743e55af3920b4895 --- - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[GitHub] qpid-cpp issue #17: QPID-8187 Allow incompatible function casts for SASL com...
Github user ssorj commented on the issue: https://github.com/apache/qpid-cpp/pull/17 @chrisrichardson77 , this one is on master at https://github.com/apache/qpid-cpp/commit/8b09d246f2529ea59809cac743e55af3920b4895 Would you close the PR? --- - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Updated] (QPID-8134) qpid::client::Message::send multiple memory leaks
[ https://issues.apache.org/jira/browse/QPID-8134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Justin Ross updated QPID-8134: -- Priority: Major (was: Blocker) > qpid::client::Message::send multiple memory leaks > - > > Key: QPID-8134 > URL: https://issues.apache.org/jira/browse/QPID-8134 > Project: Qpid > Issue Type: Bug > Components: C++ Client >Affects Versions: qpid-cpp-1.37.0, qpid-cpp-1.38.0 > Environment: *CentOS* Linux release 7.4.1708 (Core) > Linux localhost.novalocal 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 > UTC 2015 x86_64 x86_64 x86_64 GNU/Linux > *qpid*-qmf-1.37.0-1.el7.x86_64 > *qpid*-dispatch-debuginfo-1.0.0-1.el7.x86_64 > python-*qpid*-1.37.0-1.el7.noarch > *qpid*-proton-c-0.18.1-1.el7.x86_64 > python-*qpid*-qmf-1.37.0-1.el7.x86_64 > *qpid*-proton-debuginfo-0.18.1-1.el7.x86_64 > *qpid*-cpp-debuginfo-1.37.0-1.el7.x86_64 > *qpid*-cpp-client-devel-1.37.0-1.el7.x86_64 > *qpid*-cpp-server-1.37.0-1.el7.x86_64 > *qpid*-cpp-client-1.37.0-1.el7.x86_64 > >Reporter: dan clark >Assignee: Alan Conway >Priority: Major > Labels: leak, maven > Attachments: drain.cpp, godrain.sh, gospout.sh, qpid-8134.tgz, > qpid-stat.out, spout.cpp, spout.log > > Original Estimate: 40h > Remaining Estimate: 40h > > There may be multiple leaks of the outgoing message structure and associated > fields when using the qpid::client::amqp0_10::SenderImpl::send function to > publish messages under certain setups. I will concede that there may be > options that are beyond my ken to ameliorate the leak of messages structures, > especially since there is an indication that under prolonged runs (a > demonized version of an application like spout) that the statistics for quidd > indicate increased acquires with zero releases. > The basic notion is illustrated with the test application spout (and drain). > Consider a long running daemon reducing the overhead of open/send/close by > keeping the message connection open for long periods of time. Then the logic > would be: start application/open connection. In a loop send data (and never > reach a close). Thus the drain application illustrates the behavior and > demonstrates the leak using valgrind by sending the data followed by an > exit(0). > Note also the lack of 'releases' associated with the 'acquires' in the stats > output. > Capturing the leaks using the test applications spout/drain required adding > an 'exit()' prior to the close, as during normal operations of a daemon, the > connection remains open for a sustained period of time, thus the leak of > structures within the c++ client library are found as structures still > tracked by the library and cleaned up on 'connection.close()', but they > should be cleaned up as a result of the completion of the send/receive ack or > the termination of the life of the message based on the TTL of the message, > which ever comes first. I have witnessed growth of the leaked structures > into the millions of messages lasting more than 24hours with short (300sec) > TTL of the messages based on scenarios attached using spout/drain as test > vehicle. > The attached spout.log uses a short 10message test and the spout.log contains > 5 sets of different structures leaked (found with the 'bytes in 10 blocks are > still reachable' lines, that are in line with much more sustained leaks when > running the application for multiple days with millions of messages. > The leaks seem to be associated with structures allocation 'stdstrings' to > save the "subject" and the "payload" for string based messages using send for > amq.topic output. > Suggested work arounds are welcome based on application level changes to > spout/drain (if they are missing key components) or changes to the > address/setup of the queues for amq.topic messages (see the 'gospout.sh and > godrain.sh' test drivers providing the specific address structures being used. > For example, the following is one of the 5 different categories of leaked > data from 'spout.log' on a valgrind analysis of the output post the send and > session.sync but prior connection.close(): > > ==3388== 3,680 bytes in 10 blocks are still reachable in loss record 233 of > 234 > ==3388== at 0x4C2A203: operator new(unsigned long) > (vg_replace_malloc.c:334) > ==3388== by 0x4EB046C: qpid::client::Message::Message(std::string const&, > std::string const&) (Message.cpp:31) > ==3388== by 0x51742C1: > qpid::client::amqp0_10::OutgoingMessage::OutgoingMessage() > (OutgoingMessage.cpp:167) > ==3388== by 0x5186200: > qpid::client::amqp0_10::SenderImpl::sendImpl(qpid::messaging::Message const&) > (SenderImpl.cpp:140) > ==3388== by 0x5186485: operator() (SenderImpl.h:114) > ==3388== by 0x5186485: execute
[jira] [Updated] (QPID-8134) qpid::client::Message::send multiple memory leaks
[ https://issues.apache.org/jira/browse/QPID-8134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Justin Ross updated QPID-8134: -- Fix Version/s: (was: qpid-cpp-1.39.0) > qpid::client::Message::send multiple memory leaks > - > > Key: QPID-8134 > URL: https://issues.apache.org/jira/browse/QPID-8134 > Project: Qpid > Issue Type: Bug > Components: C++ Client >Affects Versions: qpid-cpp-1.37.0, qpid-cpp-1.38.0 > Environment: *CentOS* Linux release 7.4.1708 (Core) > Linux localhost.novalocal 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 > UTC 2015 x86_64 x86_64 x86_64 GNU/Linux > *qpid*-qmf-1.37.0-1.el7.x86_64 > *qpid*-dispatch-debuginfo-1.0.0-1.el7.x86_64 > python-*qpid*-1.37.0-1.el7.noarch > *qpid*-proton-c-0.18.1-1.el7.x86_64 > python-*qpid*-qmf-1.37.0-1.el7.x86_64 > *qpid*-proton-debuginfo-0.18.1-1.el7.x86_64 > *qpid*-cpp-debuginfo-1.37.0-1.el7.x86_64 > *qpid*-cpp-client-devel-1.37.0-1.el7.x86_64 > *qpid*-cpp-server-1.37.0-1.el7.x86_64 > *qpid*-cpp-client-1.37.0-1.el7.x86_64 > >Reporter: dan clark >Assignee: Alan Conway >Priority: Blocker > Labels: leak, maven > Attachments: drain.cpp, godrain.sh, gospout.sh, qpid-8134.tgz, > qpid-stat.out, spout.cpp, spout.log > > Original Estimate: 40h > Remaining Estimate: 40h > > There may be multiple leaks of the outgoing message structure and associated > fields when using the qpid::client::amqp0_10::SenderImpl::send function to > publish messages under certain setups. I will concede that there may be > options that are beyond my ken to ameliorate the leak of messages structures, > especially since there is an indication that under prolonged runs (a > demonized version of an application like spout) that the statistics for quidd > indicate increased acquires with zero releases. > The basic notion is illustrated with the test application spout (and drain). > Consider a long running daemon reducing the overhead of open/send/close by > keeping the message connection open for long periods of time. Then the logic > would be: start application/open connection. In a loop send data (and never > reach a close). Thus the drain application illustrates the behavior and > demonstrates the leak using valgrind by sending the data followed by an > exit(0). > Note also the lack of 'releases' associated with the 'acquires' in the stats > output. > Capturing the leaks using the test applications spout/drain required adding > an 'exit()' prior to the close, as during normal operations of a daemon, the > connection remains open for a sustained period of time, thus the leak of > structures within the c++ client library are found as structures still > tracked by the library and cleaned up on 'connection.close()', but they > should be cleaned up as a result of the completion of the send/receive ack or > the termination of the life of the message based on the TTL of the message, > which ever comes first. I have witnessed growth of the leaked structures > into the millions of messages lasting more than 24hours with short (300sec) > TTL of the messages based on scenarios attached using spout/drain as test > vehicle. > The attached spout.log uses a short 10message test and the spout.log contains > 5 sets of different structures leaked (found with the 'bytes in 10 blocks are > still reachable' lines, that are in line with much more sustained leaks when > running the application for multiple days with millions of messages. > The leaks seem to be associated with structures allocation 'stdstrings' to > save the "subject" and the "payload" for string based messages using send for > amq.topic output. > Suggested work arounds are welcome based on application level changes to > spout/drain (if they are missing key components) or changes to the > address/setup of the queues for amq.topic messages (see the 'gospout.sh and > godrain.sh' test drivers providing the specific address structures being used. > For example, the following is one of the 5 different categories of leaked > data from 'spout.log' on a valgrind analysis of the output post the send and > session.sync but prior connection.close(): > > ==3388== 3,680 bytes in 10 blocks are still reachable in loss record 233 of > 234 > ==3388== at 0x4C2A203: operator new(unsigned long) > (vg_replace_malloc.c:334) > ==3388== by 0x4EB046C: qpid::client::Message::Message(std::string const&, > std::string const&) (Message.cpp:31) > ==3388== by 0x51742C1: > qpid::client::amqp0_10::OutgoingMessage::OutgoingMessage() > (OutgoingMessage.cpp:167) > ==3388== by 0x5186200: > qpid::client::amqp0_10::SenderImpl::sendImpl(qpid::messaging::Message const&) > (SenderImpl.cpp:140) > ==3388== by 0x5186485: operator() (SenderImpl.h:114) > ==3388== by
[jira] [Resolved] (QPID-7926) [c++ broker] Windows build error "cannot convert from 'int' to 'qpid::sys::PODMutex"
[ https://issues.apache.org/jira/browse/QPID-7926?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Justin Ross resolved QPID-7926. --- Resolution: Fixed > [c++ broker] Windows build error "cannot convert from 'int' to > 'qpid::sys::PODMutex" > > > Key: QPID-7926 > URL: https://issues.apache.org/jira/browse/QPID-7926 > Project: Qpid > Issue Type: Bug > Components: C++ Broker >Affects Versions: qpid-cpp-1.36.0 > Environment: Windows Server 2012 R2, Visual Studio 2012, x64 build > Today's master branch >Reporter: Chuck Rolke >Assignee: Chuck Rolke >Priority: Major > Fix For: qpid-cpp-1.39.0 > > > {noformat} > 1>-- Build started: Project: qpidcommon, Configuration: Debug x64 -- > 1> Logger.cpp > 1>D:\Users\crolke\git\qpid-cpp\src\qpid\log\Logger.cpp(48): error C2440: > 'initializing' : cannot convert from 'int' to 'qpid::sys::PODMutex' > 1> No constructor could take the source type, or constructor > overload resolution was ambiguous > {noformat} > The issue is with the definition of QPID_MUTEX_INITIALIZER. > In Linux it is defined as PTHREAD_MUTEX_INITIALIZER which is a complex > structure initializer. > In Windows it is a naked 0. > In a stand-alone windows program > {noformat} > std::is_pod::value > {noformat} > returns false. In Linux the same statement in qpidd broker returns true. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Updated] (QPID-7926) [c++ broker] Windows build error "cannot convert from 'int' to 'qpid::sys::PODMutex"
[ https://issues.apache.org/jira/browse/QPID-7926?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Justin Ross updated QPID-7926: -- Fix Version/s: qpid-cpp-1.39.0 > [c++ broker] Windows build error "cannot convert from 'int' to > 'qpid::sys::PODMutex" > > > Key: QPID-7926 > URL: https://issues.apache.org/jira/browse/QPID-7926 > Project: Qpid > Issue Type: Bug > Components: C++ Broker >Affects Versions: qpid-cpp-1.36.0 > Environment: Windows Server 2012 R2, Visual Studio 2012, x64 build > Today's master branch >Reporter: Chuck Rolke >Assignee: Chuck Rolke >Priority: Major > Fix For: qpid-cpp-1.39.0 > > > {noformat} > 1>-- Build started: Project: qpidcommon, Configuration: Debug x64 -- > 1> Logger.cpp > 1>D:\Users\crolke\git\qpid-cpp\src\qpid\log\Logger.cpp(48): error C2440: > 'initializing' : cannot convert from 'int' to 'qpid::sys::PODMutex' > 1> No constructor could take the source type, or constructor > overload resolution was ambiguous > {noformat} > The issue is with the definition of QPID_MUTEX_INITIALIZER. > In Linux it is defined as PTHREAD_MUTEX_INITIALIZER which is a complex > structure initializer. > In Windows it is a naked 0. > In a stand-alone windows program > {noformat} > std::is_pod::value > {noformat} > returns false. In Linux the same statement in qpidd broker returns true. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org