summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKim van der Riet <kpvdr@apache.org>2014-01-22 21:55:48 +0000
committerKim van der Riet <kpvdr@apache.org>2014-01-22 21:55:48 +0000
commit71500ddb2ca73e445ba1ed5c8bd242cf85568a16 (patch)
tree60ed3e801847f57aa8cdd92f43d389c65245db26
parent03c9bd72d51f98d39f006db6d260ae5616fb836d (diff)
downloadqpid-python-71500ddb2ca73e445ba1ed5c8bd242cf85568a16.tar.gz
QPID-5362: Bugfixes for journal analysis tool qpid_qls_analyze
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1560530 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/tools/src/py/qls/jrnl.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/qpid/tools/src/py/qls/jrnl.py b/qpid/tools/src/py/qls/jrnl.py
index 484cbb4e91..eef885b217 100644
--- a/qpid/tools/src/py/qls/jrnl.py
+++ b/qpid/tools/src/py/qls/jrnl.py
@@ -248,9 +248,10 @@ class Journal(object):
self.directory = directory
self.queue_name = os.path.basename(directory)
self.files = {}
+ self.file_num_list = None
+ self.file_num_itr = None
self.enq_map = EnqueueMap(self)
self.txn_map = TransactionMap(self.enq_map)
- self.file_itr = None
self.current_file_header = None
self.first_rec_flag = None
self.statistics = Journal.JournalStatistics()
@@ -288,7 +289,8 @@ class Journal(object):
print self.txn_map.report_str(True, True)
print 'file_num p_no efp journal_file'
print '-------- ---- ----- ------------'
- for file_num, file_hdr in self.files.iteritems():
+ for file_num in sorted(self.files.keys()):
+ file_hdr = self.files[file_num]
comment = '<uninitialized>' if file_hdr.file_num == 0 else ''
print '%8d %4d %4dk %s %s' % (file_num, file_hdr.partition_num, file_hdr.efp_data_size_kb,
os.path.basename(file_hdr.file_handle.name), comment)
@@ -308,7 +310,8 @@ class Journal(object):
file_hdr.load(file_handle)
Utils.skip(file_handle, file_hdr.file_header_size_sblks * Utils.SBLK_SIZE)
self.files[file_hdr.file_num] = file_hdr
- self.file_itr = iter(self.files)
+ self.file_num_list = sorted(self.files.keys())
+ self.file_num_itr = iter(self.file_num_list)
def _check_file(self):
if not self.current_file_header is None and not self.current_file_header.is_end_of_file():
return
@@ -321,7 +324,7 @@ class Journal(object):
file_num = 0
try:
while file_num == 0:
- file_num = self.file_itr.next()
+ file_num = self.file_num_itr.next()
except StopIteration:
pass
if file_num == 0:
@@ -355,6 +358,7 @@ class Journal(object):
Utils.skip(self.current_file_header.file_handle, Utils.DBLK_SIZE)
return True
def _handle_enqueue_record(self, enqueue_record):
+ start_file_header = self.current_file_header
while enqueue_record.load(self.current_file_header.file_handle):
self._get_next_file()
if enqueue_record.is_external() and enqueue_record.data != None:
@@ -363,12 +367,12 @@ class Journal(object):
self.statistics.transient_record_count += 1
return
if enqueue_record.xid_size > 0:
- self.txn_map.add(self.current_file_header, enqueue_record)
+ self.txn_map.add(start_file_header, enqueue_record)
self.statistics.transaction_operation_count += 1
self.statistics.transaction_record_count += 1
self.statistics.transaction_enqueue_count += 1
else:
- self.enq_map.add(self.current_file_header, enqueue_record, False)
+ self.enq_map.add(start_file_header, enqueue_record, False)
self.statistics.enqueue_count += 1
#print enqueue_record, # DEBUG
def _handle_dequeue_record(self, dequeue_record):