qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alan Conway" <acon...@redhat.com>
Subject Review Request: QPID-4428: HA add UUID tag to avoid using an out of date queue/exchange.
Date Fri, 09 Nov 2012 15:34:07 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/7988/
-----------------------------------------------------------

Review request for qpid.


Summary (updated)
-----------------

QPID-4428: HA add UUID tag to avoid using an out of date queue/exchange.


Description (updated)
-------

QPID-4428: HA add UUID tag to avoid using an out of date queue/exchange.

Imagine a cluster with primary A and backups B and C. A queue Q is created on A
and replicated to B, C. Now A dies and B takes over as primary. Before C can
connect to B, a client destroys Q and creates a new queue with the same name.
When B connects it sees Q and incorrectly assumes it is the same Q that it has
already replicated. Now C has an inconsistent replica of Q.

The fix is to tag queues/exchanges with a UUID so a backup can tell if a queue
is not the same as the one it has already replicated, even if the names are the
same.  This all also applies to exchanges.

- Minor imrovements to printing UUIDs in a FieldTable.
- Fix comparison of void Variants, added operator !=


Diffs (updated)
-----

  /trunk/qpid/cpp/include/qpid/framing/FieldValue.h 1407448 
  /trunk/qpid/cpp/include/qpid/types/Variant.h 1407448 
  /trunk/qpid/cpp/src/qpid/broker/Broker.cpp 1407448 
  /trunk/qpid/cpp/src/qpid/broker/ConfigurationObserver.h 1407448 
  /trunk/qpid/cpp/src/qpid/broker/Exchange.h 1407448 
  /trunk/qpid/cpp/src/qpid/broker/Exchange.cpp 1407448 
  /trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.h 1407448 
  /trunk/qpid/cpp/src/qpid/broker/ExchangeRegistry.cpp 1407448 
  /trunk/qpid/cpp/src/qpid/broker/Queue.h 1407448 
  /trunk/qpid/cpp/src/qpid/broker/Queue.cpp 1407448 
  /trunk/qpid/cpp/src/qpid/broker/QueueRegistry.cpp 1407448 
  /trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp 1407448 
  /trunk/qpid/cpp/src/qpid/framing/FieldValue.cpp 1407448 
  /trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp 1407448 
  /trunk/qpid/cpp/src/qpid/ha/Primary.h 1407448 
  /trunk/qpid/cpp/src/qpid/ha/Primary.cpp 1407448 
  /trunk/qpid/cpp/src/qpid/ha/QueueReplicator.cpp 1407448 
  /trunk/qpid/cpp/src/qpid/ha/types.h 1407448 
  /trunk/qpid/cpp/src/qpid/ha/types.cpp 1407448 
  /trunk/qpid/cpp/src/qpid/types/Variant.cpp 1407448 
  /trunk/qpid/cpp/src/tests/ha_test.py 1407448 
  /trunk/qpid/cpp/src/tests/ha_tests.py 1407448 

Diff: https://reviews.apache.org/r/7988/diff/


Testing
-------


Thanks,

Alan Conway


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message