From 5b55193a4263464efd71279dddf57a1a14dd22e4 Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Thu, 8 Jun 2006 22:37:38 +0000 Subject: Do environment checkpointing and log cleanups on save. This should prevent log file proliferation (previous commit [192] only cleaned up the logfiles on quit) --- lib/rbot/dbhash.rb | 26 ++++++++++++++++++++------ lib/rbot/ircbot.rb | 1 + 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/lib/rbot/dbhash.rb b/lib/rbot/dbhash.rb index ed5b9e61..e687cebf 100644 --- a/lib/rbot/dbhash.rb +++ b/lib/rbot/dbhash.rb @@ -112,13 +112,14 @@ module Irc return @@env.open_db(BDB::CIBtree, name, nil, "r+", 0600) end - def DBTree.cleanup_env() + def DBTree.cleanup_logs() + begin + debug "DBTree: checkpointing ..." + @@env.checkpoint + rescue => e + debug "Failed: #{e}" + end begin - debug "DBTree: checking transactions ..." - has_active_txn = @@env.txn_stat["st_nactive"] > 0 - if has_active_txn - debug "DBTree: WARNING: not all transactions completed!" - end debug "DBTree: flushing log ..." @@env.log_flush logs = @@env.log_archive(BDB::ARCH_ABS) @@ -126,6 +127,19 @@ module Irc logs.each { |log| File.delete(log) } + rescue => e + debug "Failed: #{e}" + end + end + + def DBTree.cleanup_env() + begin + debug "DBTree: checking transactions ..." + has_active_txn = @@env.txn_stat["st_nactive"] > 0 + if has_active_txn + debug "DBTree: WARNING: not all transactions completed!" + end + DBTree.cleanup_logs debug "DBTree: closing environment #{@@env}" path = @@env.home @@env.close diff --git a/lib/rbot/ircbot.rb b/lib/rbot/ircbot.rb index 9c682949..e8806254 100644 --- a/lib/rbot/ircbot.rb +++ b/lib/rbot/ircbot.rb @@ -511,6 +511,7 @@ class IrcBot @keywords.save @auth.save @plugins.save + DBTree.cleanup_logs end # call the rescan method for the bot's lang, keywords and all plugins -- cgit v1.2.3