You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Timothy Bish (JIRA)" <ji...@apache.org> on 2015/07/29 23:50:04 UTC

[jira] [Reopened] (AMQCPP-532) Frequently deleting queue browser causes access violation

     [ https://issues.apache.org/jira/browse/AMQCPP-532?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish reopened AMQCPP-532:
---------------------------------

Saw a segfault during a few test runs. 

> Frequently deleting queue browser causes access violation
> ---------------------------------------------------------
>
>                 Key: AMQCPP-532
>                 URL: https://issues.apache.org/jira/browse/AMQCPP-532
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>    Affects Versions: 3.8.2
>         Environment: Windows
>            Reporter: Andrei Gheorghe
>            Assignee: Timothy Bish
>             Fix For: 3.9.0
>
>         Attachments: crash.cpp, stacktrace.txt
>
>
> The following code should reproduce this issue :
> #include <activemq/library/ActiveMQCPP.h>
> #include <activemq/core/ActiveMQConnectionFactory.h>
> #include <activemq/commands/ActiveMQQueue.h>
> using namespace cms;
> int main()
> {
> 	try 
> 	{
> 	activemq::library::ActiveMQCPP::initializeLibrary();
> 	activemq::core::ActiveMQConnectionFactory connectionFactory( "tcp://localhost:61616" );
> 	auto connection = connectionFactory.createConnection();
> 	connection->start();
> 	auto session = connection->createSession( Session::SESSION_TRANSACTED );
> 	activemq::commands::ActiveMQQueue queue( "testqueue" ); //sometimes it doesn't crash if the queue is empty so it should have atleast a message
> 	while ( 1 )
> 	{
> 		auto queueBrowser = session->createBrowser( &queue, "" );
> 		auto enumeration = queueBrowser->getEnumeration();
> 	
> 		if ( enumeration->hasMoreMessages() )
> 			auto message = enumeration->nextMessage();
> 		delete queueBrowser;
> 	}
> 	}
> 	catch ( const std::exception& e )
> 	{
> 		std::string what = e.what(); //sometimes it throws an exception like "Monitor is still in use!"
> 	}
> 	while ( 1 ) {} //wait, sometimes an activemq thread fails
> }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)