From c5349d56415c926e952b82ff878cc731cde95453 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Thu, 9 Feb 2012 20:53:14 +0100 Subject: [PATCH 1/1] re-create md5sum database on fatal error --- lib/CloudStore/MD5sum.pm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/CloudStore/MD5sum.pm b/lib/CloudStore/MD5sum.pm index 8410ab1..e0da2b5 100644 --- a/lib/CloudStore/MD5sum.pm +++ b/lib/CloudStore/MD5sum.pm @@ -28,8 +28,11 @@ sub md5sum { my $md5_path = "$dir/.md5"; my $db = TokyoCabinet::HDB->new(); - $db->open($md5_path, $db->OWRITER | $db->OCREAT) - or die "can't open $md5_path: ",$db->errmsg( $db->ecode ); + if ( ! $db->open($md5_path, $db->OWRITER | $db->OCREAT) ) { + warn "FATAL ERROR: md5sum $md5_path: ",$db->errmsg( $db->ecode ),"\n"; + rename $md5_path, $md5_path . 'bak' && warn "saved old file in $md5_path.bak and re-created database"; + $db->open($md5_path, $db->OWRITER | $db->OCREAT); + } warn "open $md5_path"; -- 2.20.1