Hello,

i'm having problems with our activemq application in production environment.
the application core dumped several times during the last days when the
connection to the broker was lost. each time it was either caused by the
broker beeing restartet by our monitor/service application (noticing the
broker having problems and restarting it, the activemq app will then notice
a disconnect and recover itself), or, what is worse, write attempts failing
(see exception below) and causing the activemq application to recover
itself. in this situation, the application will close and delete all
activemq objects (see cleanup() from web example), and recreate them/try to
open the queue after 60s waiting. the core dumps seemed to happen when the
application trys to re-open the connection, but fails because the broker is
still unreachable. here is the backtrace:



> #0  activemq::connector::openwire::OpenWireConnector::closeResource
> (this=0x8b4a268, resource=0x8b4dde0) at
> activemq/connector/openwire/OpenWireConnector.cpp:1200
> #1  0x080da6fc in activemq::connector::BaseConnectorResource::close
> (this=0x8b4dde0) at activemq/connector/BaseConnectorResource.cpp:59
> #2  0x0812ff50 in ~OpenWireSessionInfo (this=0x8b4dde0) at
> OpenWireSessionInfo.h:56
> #3  0x0812d0c4 in
> activemq::connector::openwire::OpenWireConnector::createSession
> (this=0x8b4dde0, ackMode=cms::Session::AUTO_ACKNOWLEDGE)
>     at activemq/connector/openwire/OpenWireConnector.cpp:281
> #4  0x080e86c1 in activemq::core::ActiveMQConnection::createSession
> (this=0x8b4ded0, ackMode=137247624) at
> activemq/core/ActiveMQConnection.cpp:98
> #5  0x08059c19 in ActiveMqQueue::open (this=0x8b1d6b0,
> aQueueName=0x8ab925c "outqueue", aMode=ActiveMqQueue::modeWrite,
> aListenMode=0) at activemqqueue.cc:335
> 

Debuggin shows that at
activemq/connector/openwire/OpenWireConnector.cpp:1200

1200:  dataStructure = session->getSessionInfo()->getSessionId();

the session object is null, the previously dyn-casted resource object
however is not null:



> (gdb) p session
> $1 = (activemq::connector::openwire::OpenWireSessionInfo *) 0x0
> (gdb) p resource
> $2 = (class activemq::connector::ConnectorResource *) 0x8b4dde0
(corrupt memory?)

Exception when write attempts fail:

No valid response received for command: Begin Class = ActiveMQTextMessage
Begin Class = ActiveMQMessageBase  Value of ackHandler = 0  Value of
redeliveryCount = 0  Value of properties = Begin Class PrimitiveMap: Begin
Class PrimitiveMap:  Begin Class = Message  Value of Message::ID_MESSAGE = 0 
Value of ProducerId is Below: Begin Class = ProducerId  Value of
ProducerId::ID_PRODUCERID = 123  Value of ConnectionId =
0c00f32b-2269-4e0f-ace1-13fd0414b4b5  Value of Value = 0  Value of SessionId
= 0 No Data for Class BaseDataStructure End Class = ProducerId   Value of
Destination is Below: Begin Class = ActiveMQQueue Begin Class =
ActiveMQDestination  Value of exclusive = false  Value of ordered = false 
Value of advisory = false  Value of orderedTarget = coordinator  Value of
physicalName = ffs_out  Value of options = Begin Class
activemq::util::Properties: End Class activemq::util::Properties:  No Data
for Class BaseDataStructure End Class = ActiveMQDestination End Class =
ActiveMQQueue   Value of TransactionId is Below:    Object is NULL  Value of
OriginalDestination is Below:    Object is NULL  Value of MessageId is
Below: Begin Class = MessageId  Value of MessageId::ID_MESSAGEID = 110 
Value of ProducerId is Below: Begin Class = ProducerId  Value of
ProducerId::ID_PRODUCERID = 123  Value of ConnectionId =
0c00f32b-2269-4e0f-ace1-13fd0414b4b5  Value of Value = 0  Value of SessionId
= 0 No Data for Class BaseDataStructure End Class = ProducerId   Value of
ProducerSequenceId = 4  Value of BrokerSequenceId = 0 No Data for Class
BaseDataStructure End Class = MessageId   Value of OriginalTransactionId is
Below:    Object is NULL  Value of GroupID =   Value of GroupSequence = 0 
Value of CorrelationId =   Value of Persistent = 1  Value of Expiration =
1201683817204  Value of Priority = 4  Value of ReplyTo is Below:    Object
is NULL  Value of Timestamp = 1201676617204  Value of Type =   Value of
Content[0] = , check broker.

Versions:
Activemq-cpp-2.1.1
ActiveMq Broker 4.2

the application handles 17 write-mode queues, with a rather low
messages/second rate.
Using 5.0.0 broker instead of 4.2 would most likely solve this problem,
since the failed write attempts problem only occurs with 4.2 broker (i
reported this bug before, but it seemed like no one was interested in taking
care of it). however, the broker 5.0.0 won't start with preconfigured JAAS
queues, so its not an option and we have to stick with 4.2. i will try the
latest snapshot these days, however i dont feel good when using a snapshot
server in production environment.

hopefully someone can help, since core dumps in production environment cause
severe problems to the whole system. in the last 3 days we had about 30 core
dumps (eating hard disk space..). 
-- 
View this message in context: 
http://www.nabble.com/AMQ-CPP---Core-Dump-on-reconnect-tp15223366s2354p15223366.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to