X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=swapmon.py;h=5758108d5f4d1ac62fa0e843e4d12e058223894c;hb=46cc1152410dbbe3eb9598cfcc2ba4bbb75ff2fd;hp=dd246a2da756759495b3ad9045fc98580280a7cc;hpb=6338e1c586d30785791f61bce607ad15a42b87ab;p=mom.git diff --git a/swapmon.py b/swapmon.py index dd246a2..5758108 100755 --- a/swapmon.py +++ b/swapmon.py @@ -626,10 +626,12 @@ def main(): slicemail(slice['name'], alarm_subject % params, alarm_body % params) else: - # Reset slice - if not resetlist.has_key(slice['name']): - resetlist[slice['name']] = Reset(slice['name']) - resetlist[slice['name']].reset(params) + # XXX HACK to kill zombied NM procs in slices + if not killNM(slice): + # Reset slice + if not resetlist.has_key(slice['name']): + resetlist[slice['name']] = Reset(slice['name']) + resetlist[slice['name']].reset(params) # wait period vefore recalculating swap. If in danger, recalc. if timer <= 0 or used >= (last_used + change_thresh): @@ -647,5 +649,15 @@ def main(): removepid("swapmon") + +def killNM(slice): + for proc in slice['procs']: + if proc['cmd'] == "/usr/bin/python /usr/share/NodeManager/nm.py -d -s": + print "Killing NM in slice %s" % slice['name'] + bwlimit.run("kill -9 %s" % proc['pid']) + return True + return False + + if __name__ == '__main__': main()