Skip to content

Not able to switch a sticky virtual module #506

@adrien-cotte

Description

@adrien-cotte

Describe the bug

Switching two versions of a virtual module tagged sticky results in an error:

  ERROR: Unload of sticky module skipped

To Reproduce

Steps to reproduce the behavior:

$ module switch virt-mod/1.0 virt-mod/2.0
Switching from virt-mod/1.0 to virt-mod/2.0
  ERROR: Unload of sticky module skipped

Location and content of any modulerc or modulefile involved:

$ cat path/to/modulepath/virt-mod/.common
#%Module

$ cat path/to/modulepath/virt-mod/.modulerc
#%Module
module-tag sticky virt-mod
module-virtual virt-mod/1.0 .common
module-virtual virt-mod/2.0 .common

Expected behavior

When switching two versions of a sticky "usual" module, I get no error.
I expect having the same behavior while doing the same with virtual modules.

Error and debugging information

$ module switch -D virt-mod/1.0 virt-mod/2.0

DEBUG setState: cmdline set to '/home/acotte/workspace/module-5.4.0-dev/install/libexec/modulecmd.tcl bash switch -D virt-mod/1.0 virt-mod/2.0'
DEBUG setConf: tcl_ext_lib set to '/home/acotte/workspace/module-5.4.0-dev/install/lib/libtclenvmodules.so'
DEBUG Load Tcl extension library (/home/acotte/workspace/module-5.4.0-dev/install/lib/libtclenvmodules.so)
DEBUG setState: tcl_ext_lib_loaded set to '1'
DEBUG setConf: siteconfig set to '/home/acotte/workspace/module-5.4.0-dev/install/etc/siteconfig.tcl'
DEBUG sourceSiteConfig: Source site configuration (/home/acotte/workspace/module-5.4.0-dev/install/etc/siteconfig.tcl)
DEBUG setState: siteconfig_loaded set to '1'
DEBUG setConf: locked_configs set to ''
DEBUG setState: supported_shells set to 'sh bash ksh zsh csh tcsh fish cmd tcl perl python ruby lisp cmake r'
DEBUG setState: shell set to 'bash'
DEBUG setState: subcmd set to 'switch'
DEBUG setState: subcmd_args set to 'virt-mod/1.0 virt-mod/2.0'
DEBUG setState: init_error_report set to '1'
DEBUG setConf: verbosity set to 'debug'
DEBUG setState: is_stderr_tty set to '0'
DEBUG setConf: term_background set to 'dark'
DEBUG setConf: colors set to 'hi=1:db=2:tr=2:se=2:er=91:wa=93:me=95:in=94:mp=1;94:di=94:al=96:va=93:sy=95:de=4:cm=92:aL=100:L=90;47:H=2:F=41:nF=43:S=46:sS=44:kL=30;48;5;109'
DEBUG setConf: color set to '0'
DEBUG setConf: pager set to '/usr/bin/less -eFKRX'
DEBUG setState: paginate set to '0'
DEBUG setState: report_format set to 'regular'
DEBUG setState: reportfd set to 'stderr'
DEBUG setState: timer set to '0'
DEBUG lappendState: modulefile appended with '{}'
DEBUG parseModuleCommandName: (command=switch, cmdvalid=1, cmdempty=0)
DEBUG lappendState: always_read_full_file appended with '1'
DEBUG lappendState: commandname appended with 'switch'
DEBUG setConf: avail_indepth set to '1'
DEBUG setConf: search_match set to 'starts_with'
DEBUG parseModuleCommandArgs: (show_oneperline=0, show_mtime=0, show_filter=, search_filter=, search_match=starts_with, dump_state=0, addpath_pos=prepend, not_req=0, tag_list=, otherargs=virt-mod/1.0 virt-mod/2.0)
DEBUG setConf: advanced_version_spec set to '1'
DEBUG setConf: variant_shortcut set to ''
DEBUG setModuleVersSpec: Set module 'virt-mod/1.0' (escglob 'virt-mod/1.0'),  module name 'virt-mod' (re ''), module root 'virt-mod', version cmp 'eq', version(s) '', variant(s) '' and module name version spec 'virt-mod/1.0' for argument 'virt-mod/1.0' (raw 'virt-mod/1.0'), extra specifier(s) '' and matching available module(s) ''
DEBUG setModuleVersSpec: Set module 'virt-mod/2.0' (escglob 'virt-mod/2.0'),  module name 'virt-mod' (re ''), module root 'virt-mod', version cmp 'eq', version(s) '', variant(s) '' and module name version spec 'virt-mod/2.0' for argument 'virt-mod/2.0' (raw 'virt-mod/2.0'), extra specifier(s) '' and matching available module(s) ''
DEBUG setState: rc_running set to '1'
DEBUG setConf: ignore_user_rc set to '0'
DEBUG runModulerc: Executing /home/acotte/.modulerc
DEBUG setState: cwd set to '/home/acotte/workspace/module-5.4.0-dev'
DEBUG lappendState: mode appended with 'load'
DEBUG lappendState: modulefile appended with '/home/acotte/.modulerc'
DEBUG lappendState: modulename appended with '/home/acotte/.modulerc'
DEBUG lappendState: modulenamevr appended with '/home/acotte/.modulerc'
DEBUG lappendState: specifiedname appended with '/home/acotte/.modulerc'
DEBUG lappendState: modulepath appended with '{}'
DEBUG [#1:load:/home/acotte/.modulerc] lappendState: debug_msg_prefix appended with '{[#1:load:/home/acotte/.modulerc] }'
DEBUG [#1:load:/home/acotte/.modulerc] setState: inhibit_interp set to '0'
DEBUG [#1:load:/home/acotte/.modulerc] setState: inhibit_errreport set to '0'
Evaluate modulefile: '/home/acotte/.modulerc' as '/home/acotte/.modulerc'
DEBUG [#1:load:/home/acotte/.modulerc] setConf: auto_handling set to '1'
DEBUG [#1:load:/home/acotte/.modulerc] execute-modulefile: creating interp __modfile_load_1_1
DEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var tcl_version
DEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var tcl_interactive
DEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var ModuleToolVersion
DEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var ModuleTool
DEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var auto_path
DEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var tcl_pkgPath
DEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var tcl_patchLevel
DEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var tcl_platform
DEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var tcl_library
DEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile proc list auto_load unknown tclLog auto_qualify auto_execok auto_import auto_load_index
DEBUG [#1:load:/home/acotte/.modulerc] resetInterpState: saving for __modfile_load_1_1 command list modulepath-label module-version tell socket subst conflict open eof add-property pwd glob list module-hide pid exec auto_load_index time unknown eval module-forbid lassign lrange module-user module-virtual reportWarning is-loaded append-path fblocked lsearch auto_import gets report case lappend proc throw setenv break reportTraceExecEnter variable llength module-info set-function prereq auto_execok extensions return linsert is-used error catch unique-name-conflict clock info split variant readModuleContent array if fconfigure coroutine concat join lreplace source fcopy global switch isVerbosityLevel auto_qualify update prereq-any module-log reportError unset-alias close reportCmdTrace cd for auto_load file append lreverse source-sh getenv format lmap unload read package set namespace binary scan always-load versioncmp apply module-tag raiseErrorCount trace remove-property unsetenv seek complete zlib while isWin chan flush after vwait is-saved dict getvariant system uplevel continue is-avail require-fullname try remove-path foreach lset rename pushenv chdir fileevent yieldto module-whatis regexp uncomplete module-alias x-resource lrepeat upvar tailcall formatErrStackTrace reportInternalBug encoding expr unset prepend-path load regsub module-verbosity unset-function exit module-trace family interp set-alias _puts puts incr lindex lsort prereq-all depends-on tclLog uname module string yield
DEBUG [#1:load:/home/acotte/.modulerc] execute-modulefile: readModuleContent /home/acotte/.modulerc 1
DEBUG [#1:load:/home/acotte/.modulerc] execute-modulefile: unique-name-conflict
DEBUG [#1:load:/home/acotte/.modulerc] setConf: unique_name_loaded set to '0'
DEBUG [#1:load:/home/acotte/.modulerc] execute-modulefile: module-info mode
DEBUG [#1:load:/home/acotte/.modulerc] execute-modulefile: exiting /home/acotte/.modulerc
DEBUG setState: debug_msg_prefix set to ''
DEBUG setState: modulepath set to ''
DEBUG setState: specifiedname set to ''
DEBUG setState: modulename set to ''
DEBUG setState: modulenamevr set to ''
DEBUG setState: modulefile set to '{}'
DEBUG setState: mode set to ''
DEBUG lappendState: rc_loaded appended with '/home/acotte/.modulerc'
DEBUG unsetState: rc_running unset
DEBUG cmdModuleSwitch: old='virt-mod/1.0' new='virt-mod/2.0' (uasked=1)
DEBUG lappendState: evalid appended with 'switch-virt-mod/1.0-virt-mod/2.0-0'
DEBUG lappendState: msgrecordid appended with 'switch-virt-mod/1.0-virt-mod/2.0-0'
DEBUG lappendState: inhibit_req_record appended with 'switch-virt-mod/1.0-virt-mod/2.0-0'
DEBUG getPathToModule: finding 'virt-mod/1.0' in '' (report_issue=0, look_loaded=match, excdir='')
DEBUG setConf: unload_match_order set to 'returnlast'
DEBUG setState: is_win set to '0'
DEBUG setState: path_separator set to ':'
DEBUG setConf: icase set to 'search'
DEBUG setConf: extended_default set to '1'
DEBUG setState: lm_info_cached set to '1'
DEBUG setState: sub1_separator set to '&'
DEBUG setState: sub2_separator set to '|'
DEBUG getTagList: 'virt-mod/1.0' has tag list 'sticky'
DEBUG doesModuleConflict: 'virt-mod/1.0' conflicts with '' (declared as '')
DEBUG setModuleDependency: set requirements of 'virt-mod/1.0' to ''
DEBUG setModuleDependency: set NPO requirements of 'virt-mod/1.0' to ''
DEBUG cacheCurrentModules: 1 loaded
DEBUG getLoadedMatchingName: 'virt-mod/1.0' matches 'virt-mod/1.0'
DEBUG getTagList: 'virt-mod/1.0' has tag list 'loaded sticky'
DEBUG getModules: get 'virt-mod/1.0' in /home/acotte/workspace/module-5.4.0-dev/install/modulefiles/vir (fetch_mtime=0, search=rc_defs_included, filter=)
DEBUG setConf: implicit_default set to '1'
DEBUG findModules: finding 'virt-mod' in /home/acotte/workspace/module-5.4.0-dev/install/modulefiles/vir (depthlvl=0, fetch_mtime=0)
DEBUG setConf: ignore_cache set to '0'
DEBUG findModulesInCacheFile: cache file '/home/acotte/workspace/module-5.4.0-dev/install/modulefiles/vir/.modulecache' cannot be found or read
DEBUG getModules: create cache entry '/home/acotte/workspace/module-5.4.0-dev/install/modulefiles/vir:virt-mod/1.0:0:rc_defs_included:'
DEBUG isStickinessReloading: stickiness (sticky) applies to '', is reloading=0
DEBUG getTagList: 'virt-mod/1.0' has tag list 'loaded sticky'
DEBUG cmdModuleUnload: unloading virt-mod/1.0 (context=swunload, match=match, auto=1, force=0, onlyureq=0, onlyndep=0)
DEBUG lappendState: mode appended with 'unload'
DEBUG getPathToModule: finding 'virt-mod/1.0' in '' (report_issue=1, look_loaded=match, excdir='')
DEBUG getLoadedMatchingName: 'virt-mod/1.0' matches 'virt-mod/1.0'
DEBUG lappendState: evalid appended with 'unload-virt-mod/1.0-0'
DEBUG lappendState: msgrecordid appended with 'unload-virt-mod/1.0-0'
DEBUG getTagList: 'virt-mod/1.0' has tag list 'sticky loaded'
DEBUG pushSettings: settings saved (#1)
DEBUG getDependentLoadedModuleList: get loaded mod dependent of 'virt-mod/1.0' (strong=1, direct=1, nporeq=0, loading=1, sat_constraint=0, being_unload=0)
DEBUG getDependentLoadedModuleList: got ''
DEBUG getDependentLoadedModuleList: get loaded mod dependent of 'virt-mod/1.0' (strong=1, direct=0, nporeq=1, loading=0, sat_constraint=0, being_unload=0)
DEBUG getDependentLoadedModuleList: got ''
DEBUG getDependentLoadedModuleList: get loaded mod dependent of 'virt-mod/1.0' (strong=1, direct=0, nporeq=0, loading=0, sat_constraint=0, being_unload=0)
DEBUG getDependentLoadedModuleList: got ''
DEBUG cmdModuleUnload: depun mod list is ''
DEBUG getUnloadableLoadedModuleList: got ''
DEBUG cmdModuleUnload: urequn mod list is ''
DEBUG getDependentLoadedModuleList: get loaded mod dependent of 'virt-mod/1.0' (strong=0, direct=0, nporeq=1, loading=0, sat_constraint=1, being_unload=1)
DEBUG doesModuleConflict: 'virt-mod/1.0' conflicts with '' (declared as '')
DEBUG getDependentLoadedModuleList: got ''
DEBUG cmdModuleUnload: depre mod list is ''
DEBUG lappendState: modulefile appended with '/home/acotte/workspace/module-5.4.0-dev/install/modulefiles/virt-mod/.common'
DEBUG lappendState: modulename appended with 'virt-mod/1.0'
DEBUG lappendState: modulenamevr appended with 'virt-mod/1.0'
DEBUG lappendState: specifiedname appended with 'virt-mod/1.0'
DEBUG lappendState: modulepath appended with '{}'
DEBUG [#1:unload:virt-mod/1.0] lappendState: debug_msg_prefix appended with '{[#1:unload:virt-mod/1.0] }'
DEBUG [#1:unload:virt-mod/1.0] getTagList: 'virt-mod/1.0' has tag list 'loaded sticky'
DEBUG [#1:unload:virt-mod/1.0] getTagList: 'virt-mod/1.0' has tag list 'loaded sticky'
DEBUG [#1:unload:virt-mod/1.0] setState: force set to '0'
DEBUG setState: debug_msg_prefix set to ''
DEBUG setState: modulepath set to ''
DEBUG setState: specifiedname set to ''
DEBUG setState: modulename set to ''
DEBUG setState: modulenamevr set to ''
DEBUG setState: modulefile set to '{}'
DEBUG setState: error_count set to '0'
DEBUG setState: error_count set to '1'
DEBUG interp-sync-env: set var='::env(LS_COLORS)', val='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(HOME)', val='/home/acotte' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(LANG)', val='fr_FR.UTF-8' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(LOGNAME)', val='acotte' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(__MODULES_LMTAG)', val='virt-mod/1.0&sticky' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(IM_CONFIG_PHASE)', val='2' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(XDG_VTNR)', val='2' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(XDG_SEAT)', val='seat0' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(GTK_IM_MODULE)', val='ibus' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(SHELL)', val='/bin/bash' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(XDG_SESSION_ID)', val='3' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(BASH_FUNC_ml%%)', val='() {  module ml "$@"
}' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(__MODULES_LMINIT)', val='module use --append /home/acotte/workspace/module-5.4.0-dev/install/modulefiles' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(QT4_IM_MODULE)', val='xim' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(XDG_MENU_PREFIX)', val='gnome-' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(TEXTDOMAINDIR)', val='/usr/share/locale/' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(GNOME_DESKTOP_SESSION_ID)', val='this-is-deprecated' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(USER)', val='acotte' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(GPG_AGENT_INFO)', val='/run/user/1002/gnupg/S.gpg-agent:0:1' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(GNOME_TERMINAL_SCREEN)', val='/org/gnome/Terminal/screen/78884ccb_e721_4d66_ac56_dfe8ea2c0b4c' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(XDG_CONFIG_DIRS)', val='/etc/xdg/xdg-ubuntu:/etc/xdg' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(MANPATH)', val='/home/acotte/workspace/module-5.4.0-dev/install/share/man:' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(GJS_DEBUG_OUTPUT)', val='stderr' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(GDMSESSION)', val='ubuntu' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(MODULES_CMD)', val='/home/acotte/workspace/module-5.4.0-dev/install/libexec/modulecmd.tcl' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(LESSCLOSE)', val='/usr/bin/lesspipe %s %s' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(DESKTOP_SESSION)', val='ubuntu' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(SESSION_MANAGER)', val='local/UN00306315:@/tmp/.ICE-unix/3802,unix/UN00306315:/tmp/.ICE-unix/3802' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(DBUS_SESSION_BUS_ADDRESS)', val='unix:path=/run/user/1002/bus' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(COLORTERM)', val='truecolor' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(BASH_FUNC_module%%)', val='() {  local _mlredir=1;
 if [ -n "${MODULES_REDIRECT_OUTPUT+x}" ]; then
 if [ "$MODULES_REDIRECT_OUTPUT" = '0' ]; then
 _mlredir=0;
 else
 if [ "$MODULES_REDIRECT_OUTPUT" = '1' ]; then
 _mlredir=1;
 fi;
 fi;
 fi;
 case " $@ " in 
 *' --no-redirect '*)
 _mlredir=0
 ;;
 *' --redirect '*)
 _mlredir=1
 ;;
 esac;
 if [ $_mlredir -eq 0 ]; then
 _module_raw "$@";
 else
 _module_raw "$@" 2>&1;
 fi
}' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(USERNAME)', val='acotte' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(SHLVL)', val='1' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(GJS_DEBUG_TOPICS)', val='JS ERROR;JS LOG' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(MODULEPATH)', val='/home/acotte/workspace/module-5.4.0-dev/install/modulefiles' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(MANDATORY_PATH)', val='/usr/share/gconf/ubuntu.mandatory.path' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(GNOME_SHELL_SESSION_MODE)', val='ubuntu' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(PATH)', val='/home/acotte/workspace/module-5.4.0-dev/install/bin:/home/acotte/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(CLUTTER_IM_MODULE)', val='xim' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(GTK_MODULES)', val='gail:atk-bridge' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(_)', val='/usr/bin/tclsh' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(BASH_FUNC__module_raw%%)', val='() {  eval "$(/usr/bin/tclsh '/home/acotte/workspace/module-5.4.0-dev/install/libexec/modulecmd.tcl' bash "$@")";
 _mlstatus=$?;
 return $_mlstatus
}' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(LESSOPEN)', val='| /usr/bin/lesspipe %s' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(MODULESHOME)', val='/home/acotte/workspace/module-5.4.0-dev/install' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(LOADEDMODULES)', val='virt-mod/1.0' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(XMODIFIERS)', val='@im=ibus' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(PWD)', val='/home/acotte/workspace/module-5.4.0-dev' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(LANGUAGE)', val='fr_FR.UTF-8:' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(DISPLAY)', val=':0' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(DEFAULTS_PATH)', val='/usr/share/gconf/ubuntu.default.path' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(TEXTDOMAIN)', val='im-config' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(QT_IM_MODULE)', val='ibus' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(SSH_AGENT_PID)', val='3900' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(GNOME_TERMINAL_SERVICE)', val=':1.81' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(_LMFILES_)', val='/home/acotte/workspace/module-5.4.0-dev/install/modulefiles/virt-mod/.common' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(QT_ACCESSIBILITY)', val='1' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(VTE_VERSION)', val='5202' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(XDG_DATA_DIRS)', val='/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(WINDOWPATH)', val='2' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(SSH_AUTH_SOCK)', val='/run/user/1002/keyring/ssh' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(XDG_SESSION_TYPE)', val='x11' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(TERM)', val='xterm-256color' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(XAUTHORITY)', val='/run/user/1002/gdm/Xauthority' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(__MODULES_SHARE_MANPATH)', val=':1' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(OLDPWD)', val='/home/acotte/workspace' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(XDG_RUNTIME_DIR)', val='/run/user/1002' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(XDG_CURRENT_DESKTOP)', val='ubuntu:GNOME' on interp(s) __modfile_load_1_1
DEBUG interp-sync-env: set var='::env(XDG_SESSION_DESKTOP)', val='ubuntu' on interp(s) __modfile_load_1_1
DEBUG restoreSettings: previously saved settings restored (#1)
DEBUG popSettings: previously saved settings flushed (#1)
DEBUG setConf: tag_abbrev set to 'auto-loaded=aL:loaded=L:hidden=H:hidden-loaded=H:forbidden=F:nearly-forbidden=nF:sticky=S:super-sticky=sS:keep-loaded=kL'
DEBUG setConf: tag_color_name set to ''
DEBUG setConf: term_width set to '0'
DEBUG setState: term_columns set to '142'
DEBUG unsetState: report_sep_next unset

DEBUG setState: report_sep_next set to '1'
Unloading virt-mod/1.0 <S>
  Evaluate modulefile: '/home/acotte/workspace/module-5.4.0-dev/install/modulefiles/virt-mod/.common' as 'virt-mod/1.0'
DEBUG unsetState: report_sep_next unset

DEBUG setState: report_sep_next set to '1'
DEBUG setState: evalid set to 'switch-virt-mod/1.0-virt-mod/2.0-0'
DEBUG setState: msgrecordid set to 'switch-virt-mod/1.0-virt-mod/2.0-0'
DEBUG setState: mode set to ''
DEBUG unsetState: report_sep_next unset

DEBUG setState: report_sep_next set to '1'
Switching from virt-mod/1.0 <S> to virt-mod/2.0
  Select module: 'virt-mod/1.0' (/home/acotte/workspace/module-5.4.0-dev/install/modulefiles/virt-mod/.common) matching 'virt-mod/1.0'
  Get modules: {} matching 'virt-mod/1.0' in '/home/acotte/workspace/module-5.4.0-dev/install/modulefiles/vir'
  Select module: 'virt-mod/1.0' (/home/acotte/workspace/module-5.4.0-dev/install/modulefiles/virt-mod/.common) matching 'virt-mod/1.0'
  ERROR: Unload of sticky module skipped
DEBUG unsetState: report_sep_next unset

DEBUG setState: report_sep_next set to '1'
DEBUG setState: evalid set to ''
DEBUG setState: msgrecordid set to ''
DEBUG setState: inhibit_req_record set to ''
DEBUG setState: commandname set to ''
DEBUG setState: always_read_full_file set to ''
DEBUG setState: autoinit set to '0'
DEBUG renderSettings: 1 error(s) detected.
DEBUG setState: false_rendered set to '1'
DEBUG setState: shelltype set to 'sh'

...

Modules version and configuration

$ module --version
Modules Release 5.3.1+74-gb78fcd48 (2023-07-19)

$ module config --dump-state
Modules Release 5.3.1+74-gb78fcd48 (2023-07-19)

- Config. name ---------.- Value (set by if default overridden) ---------------
advanced_version_spec     1
auto_handling             1
avail_indepth             1
avail_output              modulepath:alias:dirwsym:sym:tag:variantifspec:key
avail_terse_output        modulepath:alias:dirwsym:sym:tag:variantifspec
cache_buffer_bytes        32768
cache_expiry_secs         0
collection_pin_tag        0
collection_pin_version    0
collection_target         <undef>
color                     never
colors                    hi=1:db=2:tr=2:se=2:er=91:wa=93:me=95:in=94:mp=1;94:di=94:al=96:va=93:sy=95:de=4:cm=92:aL=100:L=90;47:H=2:F=41:nF=43:S=46:sS=44:kL=30;48;5;109
contact                   root@localhost
csh_limit                 4000
editor                    vi
extended_default          1
extra_siteconfig          <undef>
home                      /home/acotte/workspace/module-5.4.0-dev/install (env-var)
icase                     search
ignore_cache              0
ignore_user_rc            0
ignored_dirs              CVS RCS SCCS .svn .git .SYNC .sos
implicit_default          1
implicit_requirement      1
list_output               header:idx:variant:sym:tag:key
list_terse_output         header
locked_configs            
mcookie_check             always
mcookie_version_check     1
ml                        1
nearly_forbidden_days     14
pager                     /usr/bin/less -eFKRX
protected_envvars         <undef>
quarantine_support        0
rcfile                    <undef>
redirect_output           1
reset_target_state        __init__
run_quarantine            <undef>
search_match              starts_with
set_shell_startup         0
shells_with_ksh_fpath     
silent_shell_debug        0
siteconfig                /home/acotte/workspace/module-5.4.0-dev/install/etc/siteconfig.tcl
sticky_purge              error
tag_abbrev                auto-loaded=aL:loaded=L:hidden=H:hidden-loaded=H:forbidden=F:nearly-forbidden=nF:sticky=S:super-sticky=sS:keep-loaded=kL
tag_color_name            
tcl_ext_lib               /home/acotte/workspace/module-5.4.0-dev/install/lib/libtclenvmodules.so
tcl_linter                nagelfar.tcl
term_background           dark
term_width                0
unique_name_loaded        0
unload_match_order        returnlast
variant_shortcut          
verbosity                 normal
wa_277                    0

- State name -----------.- Value ----------------------------------------------
always_read_full_file     1
autoinit                  0
clock_seconds             1692698895
cmdline                   /home/acotte/workspace/module-5.4.0-dev/install/libexec/modulecmd.tcl bash config --dump-state
commandname               config
cwd                       /home/acotte/workspace/module-5.4.0-dev
debug_msg_prefix          
domainname                (none)
error_count               0
extra_siteconfig_loaded   0
false_rendered            0
force                     0
hiding_threshold          0
inhibit_errreport         0
inhibit_interp            0
init_error_report         1
is_stderr_tty             0
is_win                    0
kernelversion             #140~18.04.1-Ubuntu SMP Fri Aug 5 11:43:34 UTC 2022
lm_info_cached            0
machine                   x86_64
mode                      
modulefile                {}
modulename                
modulenamevr              
modulepath                
nodename                  UN00306315
os                        Linux
osversion                 5.4.0-124-generic
paginate                  0
path_separator            :
rc_loaded                 /home/acotte/.modulerc
report_format             regular
reportfd                  stderr
return_false              0
shell                     bash
shelltype                 sh
siteconfig_loaded         1
specifiedname             
sub1_separator            &
sub2_separator            |
subcmd                    config
subcmd_args               --dump-state
supported_shells          sh bash ksh zsh csh tcsh fish cmd tcl perl python ruby lisp cmake r
tcl_ext_lib_loaded        1
tcl_version               8.6.8
term_columns              142
timer                     0
usergroups                sudo acotte
username                  acotte

- Env. variable --------.- Value ----------------------------------------------
BASH_FUNC__module_raw%%   () {  eval "$(/usr/bin/tclsh '/home/acotte/workspace/module-5.4.0-dev/install/libexec/modulecmd.tcl' bash "$@")";
 _mlstatus=$?;
 return $_mlstatus
}
BASH_FUNC_module%%        () {  local _mlredir=1;
 if [ -n "${MODULES_REDIRECT_OUTPUT+x}" ]; then
 if [ "$MODULES_REDIRECT_OUTPUT" = '0' ]; then
 _mlredir=0;
 else
 if [ "$MODULES_REDIRECT_OUTPUT" = '1' ]; then
 _mlredir=1;
 fi;
 fi;
 fi;
 case " $@ " in 
 *' --no-redirect '*)
 _mlredir=0
 ;;
 *' --redirect '*)
 _mlredir=1
 ;;
 esac;
 if [ $_mlredir -eq 0 ]; then
 _module_raw "$@";
 else
 _module_raw "$@" 2>&1;
 fi
}
LOADEDMODULES             virt-mod/1.0
MODULEPATH                /home/acotte/workspace/module-5.4.0-dev/install/modulefiles
MODULESHOME               /home/acotte/workspace/module-5.4.0-dev/install
MODULES_CMD               /home/acotte/workspace/module-5.4.0-dev/install/libexec/modulecmd.tcl
_LMFILES_                 /home/acotte/workspace/module-5.4.0-dev/install/modulefiles/virt-mod/.common
__MODULES_LMINIT          module use --append /home/acotte/workspace/module-5.4.0-dev/install/modulefiles
__MODULES_LMTAG           virt-mod/1.0&sticky
__MODULES_SHARE_MANPATH   :1

Additional context

I tried to put the tag in ~/.modulerc or in /home/acotte/workspace/module-5.4.0-dev/install/modulefiles/ but it changes nothing.

I can switch a "file version" of a module by a "virtual version" but the revert is not possible.

This issue was written after a Module mailling-list discussion with a similar subject.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions