Skip to content

Commit

Permalink
[chassis][psud] Move the PSU parent information generation to the loo…
Browse files Browse the repository at this point in the history
…p run function from the initialization function (#576)

Description
Move the PSU parent information generation to the loop run function from the initialization function

Motivation and Context
Fixes #575

How Has This Been Tested?
Tested on Cisco chassis, the PHYSICAL_ENTITY_INFO|PSU * can be re-inserted after thermalctld restart.
And monitored the stated db for memory for hours, works well:
  • Loading branch information
yejianquan authored Dec 17, 2024
1 parent 3fe8841 commit 0d79916
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions sonic-psud/scripts/psud
Original file line number Diff line number Diff line change
Expand Up @@ -405,9 +405,6 @@ class DaemonPsud(daemon_base.DaemonBase):
fvs = swsscommon.FieldValuePairs([(CHASSIS_INFO_PSU_NUM_FIELD, str(self.num_psus))])
self.chassis_tbl.set(CHASSIS_INFO_KEY, fvs)

# Update predefined position_in_parent and parent_name for PSU
self._update_psu_entity_info()

def __del__(self):
# Delete all the information from DB and then exit
for psu_index in range(1, self.num_psus + 1):
Expand Down Expand Up @@ -438,6 +435,13 @@ class DaemonPsud(daemon_base.DaemonBase):
# We received a fatal signal
return False

# Update predefined position_in_parent and parent_name for PSU
# it was in the __init__ function which means will be run only once
# But there's chance that the keys(PHYSICAL_ENTITY_INFO|*) got removed by other processes,
# like the exit function during the restart of thermalctld,
# hence move it to the iteration run, so the key will be filled again after removed.
self._update_psu_entity_info()

self.update_psu_data()
self._update_led_color()

Expand Down

0 comments on commit 0d79916

Please sign in to comment.