diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2008-10-08 21:22:15 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2008-10-08 21:22:15 +0000 |
commit | ca36779a8f04767a8a2ab0ea5e9ff8994aa5e131 (patch) | |
tree | ec9ffd35f30b43a7136395cdbcd0b219531cdd3e /src | |
parent | 3e7d63c4b27057676f02fa505ef108f45a81472f (diff) | |
download | bcfg2-ca36779a8f04767a8a2ab0ea5e9ff8994aa5e131.tar.gz bcfg2-ca36779a8f04767a8a2ab0ea5e9ff8994aa5e131.tar.bz2 bcfg2-ca36779a8f04767a8a2ab0ea5e9ff8994aa5e131.zip |
Add error handling and retries for database write problems (Resolves Ticket #602)
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@4935 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/Server/Plugins/DBStats.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/lib/Server/Plugins/DBStats.py b/src/lib/Server/Plugins/DBStats.py index a9686533e..8f28e8c2d 100644 --- a/src/lib/Server/Plugins/DBStats.py +++ b/src/lib/Server/Plugins/DBStats.py @@ -34,8 +34,16 @@ class DBStats(Bcfg2.Server.Plugin.StatisticsPlugin): # FIXME need to build a metadata interface to expose a list of clients # FIXME Server processing the request should be mentionned here start = time.time() - Bcfg2.Server.Reports.importscript.load_stats( - self.core.metadata.clientdata, container, 0, True) + for i in [1,2,3]: + try: + Bcfg2.Server.Reports.importscript.load_stats( + self.core.metadata.clientdata, container, 0, True) + break + except: + logger.error("DBStats: Failed to write data to database due to lock; retrying") + if i == 3: + logger.error("DBStats: Retry limit failed; aborting operation") + return logger.info("Imported data in the reason fast path in %s second" % (time.time() - start)) def GetExtra(self, client): |