From 294444bbe3a1114d997565a475896864f3fd2a1b Mon Sep 17 00:00:00 2001 From: Peter Silva Date: Wed, 19 Jun 2024 16:00:04 -0400 Subject: [PATCH 1/2] #1115 stopped flows were marked cpuS. fix --- sarracenia/sr.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sarracenia/sr.py b/sarracenia/sr.py index d5e62ec68..73cf04060 100755 --- a/sarracenia/sr.py +++ b/sarracenia/sr.py @@ -492,7 +492,7 @@ def _read_state_dir(self): if pathname[-4:] == '.pid': i = int(pathname[-6:-4]) if t.isdigit(): - #print( "%s/%s instance: %s, pid: %s" % ( c, cfg, i, t ) ) + #print( "pid assignment: {c}/{cfg} instance: {i}, pid: {t}" ) self.states[c][cfg]['instance_pids'][i] = int(t) elif pathname[-6:] == '.qname': self.states[c][cfg]['queueName'] = t @@ -1050,8 +1050,7 @@ def _resolve(self): resource_usage={ 'uss': 0, 'rss': 0, 'vms':0, 'user_cpu': 0.0, 'system_cpu':0.0 } nvip=False for i in self.states[c][cfg]['instance_pids']: - if self.states[c][cfg]['instance_pids'][ - i] not in self.procs: + if self.states[c][cfg]['instance_pids'][i] not in self.procs: self.states[c][cfg]['missing_instances'].append(i) else: observed_instances += 1 @@ -1117,7 +1116,7 @@ def _resolve(self): else: flow_status = 'running' - if self.states[c][cfg]['metrics']['msgRate'] > 0 and \ + if (len(self.states[c][cfg]['instance_pids']) > 0) and self.states[c][cfg]['metrics']['msgRate'] > 0 and \ self.states[c][cfg]['metrics']['msgRateCpu'] < self.configs[c][cfg]['options'].runStateThreshold_cpuSlow: flow_status = 'cpuSlow' From d7b2de543581bdbe5dc45f2d8080a9caf29ef0f5 Mon Sep 17 00:00:00 2001 From: Peter Silva Date: Wed, 19 Jun 2024 17:03:49 -0400 Subject: [PATCH 2/2] cpuS should only override running state, not any others --- sarracenia/sr.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sarracenia/sr.py b/sarracenia/sr.py index 73cf04060..957750436 100755 --- a/sarracenia/sr.py +++ b/sarracenia/sr.py @@ -1113,12 +1113,11 @@ def _resolve(self): flow_status = 'idle' elif (now-self.states[c][cfg]['metrics']['rxLast']) > self.configs[c][cfg]['options'].runStateThreshold_idle: flow_status = 'idle' - else: - flow_status = 'running' - - if (len(self.states[c][cfg]['instance_pids']) > 0) and self.states[c][cfg]['metrics']['msgRate'] > 0 and \ + elif self.states[c][cfg]['metrics']['msgRate'] > 0 and \ self.states[c][cfg]['metrics']['msgRateCpu'] < self.configs[c][cfg]['options'].runStateThreshold_cpuSlow: flow_status = 'cpuSlow' + else: + flow_status = 'running' self.states[c][cfg]['resource_usage'] = copy.deepcopy(resource_usage) self.configs[c][cfg]['status'] = flow_status