summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2010-01-18 16:28:17 +0000
committerAlan Conway <aconway@apache.org>2010-01-18 16:28:17 +0000
commit85bc39cb22f4915b5b03547e21b05db53d582551 (patch)
treeddf2fef5c6f008d684e796aba6a082871eede162 /cpp
parente6918fe14a7a22da70d95c7afff7310eefba08f3 (diff)
downloadqpid-python-85bc39cb22f4915b5b03547e21b05db53d582551.tar.gz
QPID-2295: Clustered + persistent broker crashes with inconsistency error.
Code running in the store's timer thread was causing inconsistent changes in message allocation. This code is out-of-date, we no longer need to notify the Queue when persistent storage completes as the message is already available on the queue. Removed the out-dated code. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@900448 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/qpid/broker/PersistableMessage.cpp10
-rw-r--r--cpp/src/qpid/broker/PersistableQueue.h10
-rw-r--r--cpp/src/qpid/broker/Queue.cpp10
-rw-r--r--cpp/src/qpid/broker/Queue.h1
4 files changed, 1 insertions, 30 deletions
diff --git a/cpp/src/qpid/broker/PersistableMessage.cpp b/cpp/src/qpid/broker/PersistableMessage.cpp
index 303a0501f4..76e9404b5d 100644
--- a/cpp/src/qpid/broker/PersistableMessage.cpp
+++ b/cpp/src/qpid/broker/PersistableMessage.cpp
@@ -83,16 +83,8 @@ void PersistableMessage::enqueueComplete() {
}
}
}
- if (notify) {
+ if (notify)
allEnqueuesComplete();
- sys::ScopedLock<sys::Mutex> l(storeLock);
- if (store) {
- for (syncList::iterator i = synclist.begin(); i != synclist.end(); ++i) {
- PersistableQueue::shared_ptr q(i->lock());
- if (q) q->notifyDurableIOComplete();
- }
- }
- }
}
bool PersistableMessage::isStoredOnQueue(PersistableQueue::shared_ptr queue){
diff --git a/cpp/src/qpid/broker/PersistableQueue.h b/cpp/src/qpid/broker/PersistableQueue.h
index 8d85d36fef..e742a72f42 100644
--- a/cpp/src/qpid/broker/PersistableQueue.h
+++ b/cpp/src/qpid/broker/PersistableQueue.h
@@ -66,17 +66,7 @@ public:
PersistableQueue():externalQueueStore(NULL){
};
-
- /**
- * call back to signal async AIO writes have
- * completed (enqueue/dequeue etc)
- *
- * Note: DO NOT do work on this callback, if you block
- * this callback you will block the store.
- */
- virtual void notifyDurableIOComplete() = 0;
protected:
-
ExternalQueueStore* externalQueueStore;
};
diff --git a/cpp/src/qpid/broker/Queue.cpp b/cpp/src/qpid/broker/Queue.cpp
index b99b849bcc..dcc5116afa 100644
--- a/cpp/src/qpid/broker/Queue.cpp
+++ b/cpp/src/qpid/broker/Queue.cpp
@@ -124,16 +124,6 @@ Queue::~Queue()
mgmtObject->resourceDestroy ();
}
-void Queue::notifyDurableIOComplete()
-{
- QueueListeners::NotificationSet copy;
- {
- Mutex::ScopedLock locker(messageLock);
- listeners.populate(copy);
- }
- copy.notify();
-}
-
bool isLocalTo(const OwnershipToken* token, boost::intrusive_ptr<Message>& msg)
{
return token && token->isLocal(msg->getPublisher());
diff --git a/cpp/src/qpid/broker/Queue.h b/cpp/src/qpid/broker/Queue.h
index 0984d5e2cd..cac8956bf5 100644
--- a/cpp/src/qpid/broker/Queue.h
+++ b/cpp/src/qpid/broker/Queue.h
@@ -153,7 +153,6 @@ namespace qpid {
public:
- virtual void notifyDurableIOComplete();
typedef boost::shared_ptr<Queue> shared_ptr;
typedef std::vector<shared_ptr> vector;