Skip to content

test blockserver restarts processes - #140

Draft
jackbdoughty wants to merge 2 commits into
masterfrom
restart_processes
Draft

jackbdoughty wants to merge 2 commits into
masterfrom
restart_processes

Conversation

@jackbdoughty

@jackbdoughty jackbdoughty commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

Description of work

Lets users who are in manager mode, restart individual server-side processes that before they would have had to do via a whole server restart. This is done by exposing two new PVs:

  • CS:BLOCKSERVER:RESTART_SERVICE_IOC (Restarts the given service list of IOCs provided to it as a compressed, hexed and jsonified string)
  • CS:BLOCKSERVER:RESTART_DBSVR (Restarts the Database server when written 1 to)

All server processes (except PSCTRL) are restarted (by the frontend) by writing their ioc name to CS:BLOCKSERVER:RESTART_SERVICE_IOC. Most of which are restarted by the blockserver. The 3 that are different are:

  • The blockserver itself (Does a sys.exit when pv is written to)
  • Database server (Blockserver writes a 1 to CS:BLOCKSERVER:RESTART_DBSVR which in turn causes a sys.exit)
  • Block gateway (Blockserver just called reload on the gateway.)

Unit tests are written at the blockserver and database server level. And there is a system test that checks that all service iocs can be restarted from the above PV.

To test, check out all linked PRs. You'll need to do a python -m pip install -e . --no-deps for server-common and just copy paste the inst-server changes to C:\instrument\apps\EPICS\ISIS\inst_servers\master. (atleast thats what I did). Make sure all tests pass and check for expected behaviour. Is their enough friction/informative enough on the front end for restarting processes?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant