diff options
author | Alan Conway <aconway@apache.org> | 2010-01-18 16:28:17 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2010-01-18 16:28:17 +0000 |
commit | 85bc39cb22f4915b5b03547e21b05db53d582551 (patch) | |
tree | ddf2fef5c6f008d684e796aba6a082871eede162 /cpp | |
parent | e6918fe14a7a22da70d95c7afff7310eefba08f3 (diff) | |
download | qpid-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.cpp | 10 | ||||
-rw-r--r-- | cpp/src/qpid/broker/PersistableQueue.h | 10 | ||||
-rw-r--r-- | cpp/src/qpid/broker/Queue.cpp | 10 | ||||
-rw-r--r-- | cpp/src/qpid/broker/Queue.h | 1 |
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; |