Skip to content

Silent purge fails when super-sticky module prerequisite isn't super-sticky #582

@adrien-cotte

Description

@adrien-cotte

Problem description

I'm facing an issue regarding module purging when using super-sticky modules with non-sticky prereqs.

Summary of my use case:

  • workspace and default_workspace are virtual modules.
  • I can load multiple workspace/<group> modules simultaneously (e.g., workspace/enterprise, workspace/partner).
  • Only one default_workspace module can be loaded at a time, corresponding directly to a specific workspace/<group> module (e.g., default_workspace/enterprise, default_workspace/partner).
  • The related workspace module is a prerequisite (prereq) for its corresponding default_workspace module.
  • default_workspace modules have the super-sticky tag.
  • To avoid error messages during module purging, I configured: module config sticky_purge silent.

Examples in pseudo-bash:

$ module load workspace/partner
$ module load workspace/enterprise
$ module switch default_workspace/partner default_workspace/enterprise
$ module list -t
1) workspace/partner
2) workspace/enterprise
3) default_workspace/enterprise (super-sticky)
$ module purge
$ module list
1) workspace/enterprise
2) default_workspace/enterprise (super-sticky)

Current behavior

When purging my modules (module purge), I receive an error for the workspace module corresponding to the loaded default_workspace module, since the workspace module itself isn't marked as super-sticky:

$ module load default_workspace/partner
$ module purge
Unloading workspace/partner
    ERROR: Dependent default_workspace/partner is loaded

Expected behavior

When purging my modules with the configuration module config sticky_purge silent, I expect no error messages, even if a non-super-sticky module (workspace) is a prerequisite for a super-sticky module (default_workspace).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions