Review Board 1.7.22


QPID-3215: cached exchange reference can cause cluster inconsistencies if exchange is deleted/recreated

Review Request #623 - Created April 19, 2011 and submitted

Alan Conway
Reviewers
qpid
gordon
qpid
QPID-3215: cached exchange reference can cause cluster inconsistencies if exchange is deleted/recreated

SemanticState::route() uses a simple cache variable to avoid looking
up the exchange for every message. However if the exchange in question
is deleted, even if then recreated, this can cause inconsistencies in
a cluster.

Even in a stand-alone broker messages can be routed by a deleted
exchange because of the cache.

Fix is to mark the exchange deleted and check the status when using
the cached exchange.

 
Review request changed
Updated (April 19, 2011, 5:23 p.m.)
Ship it!
Posted (April 19, 2011, 5:29 p.m.)
Nice fix; thanks!