activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike J. Kitchin" <Mike.Kitc...@Tideworks.com>
Subject Authentication error leads to pure virtual call/kaboom in CMS 3.1.1
Date Mon, 01 Mar 2010 20:37:01 GMT
Hi there,

We have a large, vertical C++ application with ActiveMQ connectivity added about a year ago,
steadily upgrading the CMS interface until current (v3.1.1) and, beginning before 3.0.1, we
noticed after consecutive login failures -- within our app, it takes from 3-10 actual retries
-- we find a pure virtual function call somewhere in the AMQ thread pool, triggering our built-in
crashdump mechanism and shutting things down.

An exception that's at least cosmetically similar may be reproduced with the SimpleProducer,
as I've doctored it and attached to this email (not sure if attachments make it to the list...),
along with the thread stacks/traces witnessed at the time. Start SimpleProducer and, after
an indeterminate number of retries -- in this example, it could take several hundred -- the
circumstance should arise. The test is performed between two hosts, using AMQ broker v5.3
and CMS 3.1.1 and ought to manifest in either debug/release build.

SimpleProducer has been altered to:
===================================
- Provide username/password (in our test case, the username "foo" is incorrect)
- Connect to a remote v5.3 AMQ broker
- Loop the example indefinitely with a short delay between retries until (in a debug build)
a pure virtual assert should trip in the standard library

Our application is built unusually in the following ways:
=========================================================
- AMQ CMS and APR are all reconfigured and built __stdcall, since our main application is
that way and name mangling won't otherwise match at link time
- We don't have STL debug iterators enabled, so key AMQ CMS/APR headers are prepended with
(more or less):

#ifdef _HAS_ITERATOR_DEBUGGING
#undef _HAS_ITERATOR_DEBUGGING
#endif

#define _HAS_ITERATOR_DEBUGGING 0

...This may seem like an odd circumstance, but we function in enterprises where AMQ connectivity
is only part of what our application is responsible for and, occasionally (for example) brokers
may be misconfigured and remain so for notable periods before changes make their way to all
of the clients, during which time we must remain operational in other regards. In practice,
as I've said, our application will experience the pure virtual call within a few minutes.

Thank you for your time/assistance, in advance, and we otherwise very much appreciate the
functionality AMQ/CMS provides us.

Please let me know if I may provide any additional information. Thanks.

-Regards,
MjK

- - - - -

"Here lies Zeke, second-fastest draw in Cripple Creek."
- Epitaph (Cripple Creek, CO)

Michael J. Kitchin  (Senior Software Engineer)
Tideworks Technology
http://www.tideworks.com



Mime
View raw message