diff options
Diffstat (limited to 'qpid/cpp/src')
| -rw-r--r-- | qpid/cpp/src/qpid/broker/PagedQueue.cpp | 1 | ||||
| -rwxr-xr-x | qpid/cpp/src/tests/run_paged_queue_tests | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/broker/PagedQueue.cpp b/qpid/cpp/src/qpid/broker/PagedQueue.cpp index a0fbf530a1..4063fbe695 100644 --- a/qpid/cpp/src/qpid/broker/PagedQueue.cpp +++ b/qpid/cpp/src/qpid/broker/PagedQueue.cpp @@ -127,6 +127,7 @@ Message* PagedQueue::next(QueueCursor& cursor) if (i == used.end() && !used.empty() && used.begin()->first > position) i = used.begin(); } while (i != used.end()) { + if (!i->second.isLoaded()) load(i->second); Message* m = i->second.next(version, cursor); QPID_LOG(debug, "PagedQueue::next(" << cursor.valid << ":" << cursor.position << "): " << m); if (m) return m; diff --git a/qpid/cpp/src/tests/run_paged_queue_tests b/qpid/cpp/src/tests/run_paged_queue_tests index 83e6ba863c..1ccefea716 100755 --- a/qpid/cpp/src/tests/run_paged_queue_tests +++ b/qpid/cpp/src/tests/run_paged_queue_tests @@ -33,7 +33,18 @@ stop_broker() { $QPIDD_EXEC -q --port $QPID_PORT } +test_single_page() { + msgcount=1000 + qpid-send --messages $msgcount --content-size 1024 --broker "localhost:$QPID_PORT" --address "onepage; {create: always, node:{x-declare:{arguments:{'qpid.paging':True,'qpid.max_pages_loaded':1}}}}" + received=$(qpid-receive --address onepage --broker "localhost:$QPID_PORT" --messages $msgcount | wc -l) + if [[ $received -ne $msgcount ]]; then + echo "single page test failed: received $received messages, expected $msgcount" + exit 1 + fi +} + start_broker +test_single_page qpid-cpp-benchmark --broker "localhost:$QPID_PORT" --create-option "node:{x-declare:{arguments:{'qpid.paging':True,'qpid.max_size':0,'qpid.max_count':0,'qpid.flow_stop_size':0,'qpid.flow_resume_size':0,'qpid.flow_stop_count':0,'qpid.flow_resume_count':0}}}" qpid-cpp-benchmark --broker "localhost:$QPID_PORT" --create-option "node:{x-declare:{arguments:{'qpid.paging':True,'qpid.max_size':0,'qpid.max_count':0,'qpid.flow_stop_size':0,'qpid.flow_resume_size':0,'qpid.flow_stop_count':0,'qpid.flow_resume_count':0}}}" --fill-drain stop_broker |
