From 23ef533708ecb5f8bb98672527c70119dcae88cc Mon Sep 17 00:00:00 2001 From: Mark Huang Date: Tue, 9 May 2006 03:23:57 +0000 Subject: [PATCH] vps sometimes prints ERR instead of a context ID if it cannot identify the context of an orphaned (usually dying) process. Skip these processes. --- swapmon.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/swapmon.py b/swapmon.py index 655ff47..3f6304e 100755 --- a/swapmon.py +++ b/swapmon.py @@ -9,7 +9,7 @@ # Andy Bavier # Copyright (C) 2004-2006 The Trustees of Princeton University # -# $Id: swapmon.py,v 1.3 2006/05/01 18:28:01 mlhuang Exp $ +# $Id: swapmon.py,v 1.4 2006/05/02 17:23:14 mlhuang Exp $ # import syslog @@ -180,6 +180,12 @@ def slicestat(names = None): except ValueError: pass + # vps sometimes prints ERR instead of a context ID if it + # cannot identify the context of an orphaned (usually dying) + # process. Skip these processes. + if type(proc['xid']) != int: + continue + # Assign (pl_)sshd processes to slice instead of root m = re.search(r"sshd: ([a-zA-Z_]+)", proc['cmd']) if m is not None: @@ -187,14 +193,10 @@ def slicestat(names = None): if xid is not None: proc['xid'] = xid - try: - name = bwlimit.get_slice(proc['xid']) - if name is None: - # Orphaned (not associated with a slice) class - name = "%d?" % proc['xid'] - except Exception, err: - print "Warning: Exception received while parsing vps output", err - print proc + name = bwlimit.get_slice(proc['xid']) + if name is None: + # Orphaned (not associated with a slice) class + name = "%d?" % proc['xid'] # Monitor only the specified slices if names and name not in names: @@ -347,7 +349,7 @@ def main(): (version, slices) = pickle.load(f) f.close() # Check version of data file - if version != "$Id: swapmon.py,v 1.3 2006/05/01 18:28:01 mlhuang Exp $": + if version != "$Id: swapmon.py,v 1.4 2006/05/02 17:23:14 mlhuang Exp $": print "Not using old version '%s' data file %s" % (version, datafile) raise Exception @@ -364,7 +366,7 @@ def main(): # Delete data file os.unlink(datafile) except Exception: - version = "$Id: swapmon.py,v 1.3 2006/05/01 18:28:01 mlhuang Exp $" + version = "$Id: swapmon.py,v 1.4 2006/05/02 17:23:14 mlhuang Exp $" slices = {} # Query process table every 30 seconds, or when a large change in -- 2.43.0