Skip to content

Pawel plesniak emuhammad/split shell fixing#888

Draft
PawelPlesniak wants to merge 6 commits into
developfrom
PawelPlesniakEmuhammad/SplitShellFixing
Draft

Pawel plesniak emuhammad/split shell fixing#888
PawelPlesniak wants to merge 6 commits into
developfrom
PawelPlesniakEmuhammad/SplitShellFixing

Conversation

@PawelPlesniak
Copy link
Copy Markdown
Collaborator

@PawelPlesniak PawelPlesniak commented Apr 24, 2026

Description

Fixes issue #905

WHAT DOES THIS PR CHANGE - ONE LINE.

DOCUMENT THE CHANGE BELOW OR DELETE IT

The relevant changes in the user workflow have been documented here (link URL)

Type of change

  • New feature / enhancement
  • Optimization
  • Bug fix
  • Breaking change
  • Documentation

List of required branches from other repositories

WHAT PRs NEED TO BE INCLUDED TO MAKE THE CHANGE.

Change log

WHAT HAS CHANGED.

Suggested manual testing checklist

LIST COMMANDS TO DEMONSTRATE CHANGE

Developer checklist

Prior to marking this as "Ready for Review"

Tests ran on: WHAT HOSTNAME from release RELEASE_NAME

Unit tests - some tests can't be ran on the CI. This is documented. If this PR checks a feature that can't be tested with CI, this has been marked appropriately.

Integration tests - the daqsystemtest_integtest_bundle requires a lot of resources, and connections to the EHN1 infrastructure. Check the cross referenced list if you can't run these. The developer needs to run at least the .

  • Unit tests (pytest --marker) passed
    • With relevant marker
    • Without marker
  • Integration tests passed
    • Only daqsystemtest_integtest_bundle.sh -k minimal_system_quick_test.py
    • Full daqsystemtest_integtest_bundle.sh
  • Testing skipped as there are no core code changes in this PR, this only relates to documentation/CI workflows

Final checklist prior to marking this as "Ready for Review"

  • Code is clearly commented.
  • New unit tests have been added, or is documented in # ISSUE NUMBER
  • A suitable reviewer has been chosen from this list.

Reviewer checklist

  • This branch has been rebased with develop prior to testing.
  • Suggested manual tests show changes.
  • CI workflows fails documented (if present)
  • Integration tests passed
    • Only concern yourself if failures related to drunc are in the log files
    • If non-drunc failure appears:
      • Validate failure in fresh working area
      • Contact Pawel if unsure

Once the features are validated and both the unit and integration tests pass, the PRs is ready to be merged.

Prior to merging

Choose one of the following an complete all substeps
  • Changes only affect the Run Control, are in a single repository, and do not affect the end user.
    • Changes are documented in docstrings and code comments
    • Wiki has been updated if architectural or endpoint changes
  • Otherwise
    • Workflow changes demonstrated in the Change Log (if necessary)
    • Wiki has been updated (if necessary)
    • #daq-sw-librarians Slack channel notified (see below)

Once completed, the reviewer can merge the PR.

Notification message for a Slack channel

Note - this should be to #dunedaq-integration for general workflow that isn't during a release candidate period, and to #daq-release-prep otherwise.

For an single merge that changes the user workflow

The CCM WG has an isolated PR ready to merge that affects user workflows. The PR is:

_URL_

I will leave time for any comments, otherwise will merge these at the end of the work day _Insert your time zone_.

For co-ordinated merge

The CCM WG has a set of co-ordinated merges ready to merge. The PRs are:

_URL_

_URL_


I will leave time for any comments, otherwise will merge these at the end of the day.

@PawelPlesniak
Copy link
Copy Markdown
Collaborator Author

The current implementation uses a superuser (for development with me and @emmuhamm, I was the superuser) to be the owner of all the proceses, similar to the way in which Docker works.

Some other development that needs to happen before cleaning up, review, integ tests, etc.

  • Unified shell should see Some remote PM logs e.g. terminate
  • localhost cannot be used in the following command as it leads to errors, figure out why
drunc-unified-shell grpc://localhost:50000 config/daqsystemtest/example-configs.data.xml ehn1-local-1x1-config pawel
  • Run the same tests with a k8s process manager.
  • Reintroduce the session name checking, it currently uses PM code which blocks standalone PM use.

@emmuhamm
Copy link
Copy Markdown
Contributor

emmuhamm commented May 1, 2026

Reference notes
K8s name scoping fails when passing address
If you use localhost, doesn't work

Env var
Drunc.json
K8s secrets
Auto generate process manager port number for sessions if not present?
Unified shell should see Some remote PM logs e.g. terminate
Permissions for cross server issues

Emir of 028, PM on 029, permissions failures
Cross server issues, Auth of "localhost" when on different NFS backed servers
Process ownership is the root problem - attempting to read user's SSH config as a superuser is not helpful.

K8s did not help - root controller and local conn srv failed.
Got to a point where we were trying to read Emir's SSH config (current develop attempted to read mine), permission denied.
Attempted running PM as root failed on 019

Changes made

Removed k8s name validation - blocks external PM code
Fixing lifetime manager drunc.drunc. -> drunc.

"""

log = get_logger("unified_shell.ps")
session_query = ProcessQuery(session=ctx.obj.session_name)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Validate that whatever is being queried is in the session before you distribute to the different commands

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.

Introduce superuser prototype for multi user running

3 participants