Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.18
-
None
Description
Broker will crash if a priority queue contains deleted messages with NULL payloads (i.e. HA message padding) when a reroute is performed. PriorityQueue::removeIf is missing a guard to only include available messages for the reroute – other classes derived from Messages have the guard.
Backtrace:
#0 0x00000036f42091c0 in pthread_mutex_lock () from /lib64/libpthread.so.0
#1 0x00007f8d9d58297a in qpid::sys::Mutex::lock (this=<value optimized out>) at ../include/qpid/sys/posix/Mutex.h:116
#2 0x00007f8d9d5fbdaa in ScopedLock (this=0x0) at ../include/qpid/sys/Mutex.h:33
#3 qpid::broker::Message::clearTrace (this=0x0) at qpid/broker/Message.cpp:389
#4 0x00007f8d9d61beab in qpid::broker::Queue::purge (this=0x7f8d940111a0, purge_request=<value optimized out>, dest=..., filter=<value optimized out>) at qpid/broker/Queue.