diff --git a/mininet/node.py b/mininet/node.py index 349275d..c93fc1b 100644 --- a/mininet/node.py +++ b/mininet/node.py @@ -681,7 +681,9 @@ class CPULimitedHost( Host ): "Clean up our cgroup" # info( '*** deleting cgroup', self.cgroup, '\n' ) _out, _err, exitcode = errRun( 'cgdelete -r ' + self.cgroup ) - return exitcode == 0 # success condition + # Sometimes cgdelete returns a resource busy error but still + # deletes the group; next attempt will give "no such file" + return exitcode == 0 or ( 'no such file' in _err.lower() ) def popen( self, *args, **kwargs ): """Return a Popen() object in node's namespace @@ -703,7 +705,7 @@ class CPULimitedHost( Host ): def cleanup( self ): "Clean up Node, then clean up our cgroup" super( CPULimitedHost, self ).cleanup() - retry( retries=3, delaySecs=1, fn=self.cgroupDel ) + retry( retries=3, delaySecs=.1, fn=self.cgroupDel ) _rtGroupSched = False # internal class var: Is CONFIG_RT_GROUP_SCHED set?