activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Wasilczuk <andrew.wasilc...@netdev.co.uk>
Subject KahaDB, detecting corrupt index file
Date Thu, 16 Sep 2010 11:12:53 GMT
Hi there,

I have a shared file system master-slave setup and I'm currently
testing how KahaDB handles corruption (it's important since it's a
single point of failure).  

In one of the tests I corrupt the index file while the broker is running
(there are a few pending messages in a test queue):

dd if=/dev/random of=/var/lib/activemq/data/kahadb/db.data bs=512 count=20

While the broker is running everything seems to work fine.  I can
connect a consumer and receive the pending messages.  I guess this is
because the index is cached in the memory.

However, if I restart the broker after corrupting the index file, the
persisted message counter will show 0 and I'm unable to consume the
pending messages.  There's nothing in the logs that would indicate a
problem.

When I rebuild the index (stop broker, remove db.data, start broker) the
old messages re-appear.  This is cool, but I have no way of telling when
the index needs recovering if this happens on a real life system.

Is there a way to detect a corrupt index on startup?  Something like
checkForCorruptJournalFiles but for the index?  


Many thanks,

Andrew.
-- 
[ Andrew Wasilczuk   | Service Support Engineer ]
[ NetDev Limited     | http://netdev.co.uk/     ]

Mime
View raw message