You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.0DEBUG 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/.modulercDEBUG 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_1DEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var tcl_versionDEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var tcl_interactiveDEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var ModuleToolVersionDEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var ModuleToolDEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var auto_pathDEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var tcl_pkgPathDEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var tcl_patchLevelDEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var tcl_platformDEBUG [#1:load:/home/acotte/.modulerc] dumpInterpState: saving for __modfile var tcl_libraryDEBUG [#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 1DEBUG [#1:load:/home/acotte/.modulerc] execute-modulefile: unique-name-conflictDEBUG [#1:load:/home/acotte/.modulerc] setConf: unique_name_loaded set to '0'DEBUG [#1:load:/home/acotte/.modulerc] execute-modulefile: module-info modeDEBUG [#1:load:/home/acotte/.modulerc] execute-modulefile: exiting /home/acotte/.modulercDEBUG 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 unsetDEBUG 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 loadedDEBUG 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 readDEBUG 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=0DEBUG 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_1DEBUG interp-sync-env: set var='::env(LANG)', val='fr_FR.UTF-8' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(LOGNAME)', val='acotte' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(__MODULES_LMTAG)', val='virt-mod/1.0&sticky' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(IM_CONFIG_PHASE)', val='2' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(XDG_VTNR)', val='2' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(XDG_SEAT)', val='seat0' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(GTK_IM_MODULE)', val='ibus' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(SHELL)', val='/bin/bash' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(XDG_SESSION_ID)', val='3' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(BASH_FUNC_ml%%)', val='() { module ml "$@"}' on interp(s) __modfile_load_1_1DEBUG 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_1DEBUG interp-sync-env: set var='::env(QT4_IM_MODULE)', val='xim' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(XDG_MENU_PREFIX)', val='gnome-' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(TEXTDOMAINDIR)', val='/usr/share/locale/' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(GNOME_DESKTOP_SESSION_ID)', val='this-is-deprecated' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(USER)', val='acotte' on interp(s) __modfile_load_1_1DEBUG 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_1DEBUG 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_1DEBUG interp-sync-env: set var='::env(XDG_CONFIG_DIRS)', val='/etc/xdg/xdg-ubuntu:/etc/xdg' on interp(s) __modfile_load_1_1DEBUG 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_1DEBUG interp-sync-env: set var='::env(GJS_DEBUG_OUTPUT)', val='stderr' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(GDMSESSION)', val='ubuntu' on interp(s) __modfile_load_1_1DEBUG 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_1DEBUG interp-sync-env: set var='::env(LESSCLOSE)', val='/usr/bin/lesspipe %s %s' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(DESKTOP_SESSION)', val='ubuntu' on interp(s) __modfile_load_1_1DEBUG 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_1DEBUG interp-sync-env: set var='::env(DBUS_SESSION_BUS_ADDRESS)', val='unix:path=/run/user/1002/bus' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(COLORTERM)', val='truecolor' on interp(s) __modfile_load_1_1DEBUG 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_1DEBUG interp-sync-env: set var='::env(USERNAME)', val='acotte' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(SHLVL)', val='1' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(GJS_DEBUG_TOPICS)', val='JS ERROR;JS LOG' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(MODULEPATH)', val='/home/acotte/workspace/module-5.4.0-dev/install/modulefiles' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(MANDATORY_PATH)', val='/usr/share/gconf/ubuntu.mandatory.path' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(GNOME_SHELL_SESSION_MODE)', val='ubuntu' on interp(s) __modfile_load_1_1DEBUG 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_1DEBUG interp-sync-env: set var='::env(CLUTTER_IM_MODULE)', val='xim' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(GTK_MODULES)', val='gail:atk-bridge' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(_)', val='/usr/bin/tclsh' on interp(s) __modfile_load_1_1DEBUG 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_1DEBUG interp-sync-env: set var='::env(LESSOPEN)', val='| /usr/bin/lesspipe %s' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(MODULESHOME)', val='/home/acotte/workspace/module-5.4.0-dev/install' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(LOADEDMODULES)', val='virt-mod/1.0' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(XMODIFIERS)', val='@im=ibus' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(PWD)', val='/home/acotte/workspace/module-5.4.0-dev' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(LANGUAGE)', val='fr_FR.UTF-8:' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(DISPLAY)', val=':0' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(DEFAULTS_PATH)', val='/usr/share/gconf/ubuntu.default.path' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(TEXTDOMAIN)', val='im-config' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(QT_IM_MODULE)', val='ibus' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(SSH_AGENT_PID)', val='3900' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(GNOME_TERMINAL_SERVICE)', val=':1.81' on interp(s) __modfile_load_1_1DEBUG 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_1DEBUG interp-sync-env: set var='::env(QT_ACCESSIBILITY)', val='1' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(VTE_VERSION)', val='5202' on interp(s) __modfile_load_1_1DEBUG 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_1DEBUG interp-sync-env: set var='::env(WINDOWPATH)', val='2' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(SSH_AUTH_SOCK)', val='/run/user/1002/keyring/ssh' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(XDG_SESSION_TYPE)', val='x11' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(TERM)', val='xterm-256color' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(XAUTHORITY)', val='/run/user/1002/gdm/Xauthority' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(__MODULES_SHARE_MANPATH)', val=':1' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(OLDPWD)', val='/home/acotte/workspace' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(XDG_RUNTIME_DIR)', val='/run/user/1002' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(XDG_CURRENT_DESKTOP)', val='ubuntu:GNOME' on interp(s) __modfile_load_1_1DEBUG interp-sync-env: set var='::env(XDG_SESSION_DESKTOP)', val='ubuntu' on interp(s) __modfile_load_1_1DEBUG 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 unsetDEBUG 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 unsetDEBUG 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 unsetDEBUG 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 skippedDEBUG unsetState: report_sep_next unsetDEBUG 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'...
I am able to reproduce on my side. This issue is there since the introduction of the sticky feature (v4.7.0).
It is due to the logic of guessing the modulepath of a module based on its modulefile. It is used by isStickinessReloading procedure, but it cannot work with a virtual module.
Stickiness of loaded modules are already stored in environment (through __MODULES_LMTAG variable).
isStickinessReloading searches for all the modulerc in the path toward the loaded module to get the module-tag definition. Then it is able to check if this sticky definition also matches the switched-on module to allow the operation.
What need to be done is to find the correct path toward modulercs in case of a virtual module.
In the end I added a new environment variable __MODULES_LMSTICKYRULE to track sticky definition when they are generic and permit to switch between module versions.
Describe the bug
Switching two versions of a virtual module tagged
sticky
results in an error:To Reproduce
Steps to reproduce the behavior:
Location and content of any modulerc or modulefile involved:
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
Modules version and configuration
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.
The text was updated successfully, but these errors were encountered: