activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQCPP-532) Frequently deleting queue browser causes access violation
Date Mon, 27 Jan 2014 17:29:38 GMT

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

Timothy Bish commented on AMQCPP-532:
-------------------------------------

Added an integration test on trunk and in 3.8.x but could not reproduce this.  Might want
to try and capture a thread back trace when this happens to see where the issue originates.


> 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
>         Attachments: crash.cpp
>
>
> 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.1.5#6160)

Mime
View raw message