# Agenda for Lmod Zoom Mtg 2022-05-03
- Print message when unloading a module that wasn't loaded (Issue #576)
- How TCL break and LmodBreak is handled in Lmod
- Q&A
## Attendees
- Robert McLay (TACC, US)
- Kenneth Hoste (HPC-UGent, Belgium)
- Kurt Lust (Univ. of Antwerp, Belgium - LUMI User Support Team)
- Matthew Cawood (TACC, US)
- Ward Poelmans (Vrije Universiteit Brussel, Belgium)
- Mikael Öhman (Chalmers University of Technology, Sweden)
- Bennet Fauber (Univ. of Michigan, US)
## Notes
### Print message when unloading module that wasn't loaded
- see https://github.com/TACC/Lmod/issues/576
- "warning" message will be printed, but exit code will remain zero
- was implemented on request by Spack developers
- not included in an Lmod release yet
- Kenneth will try to run EasyBuild test suite on top of Lmod that includes this change
- EasyBuild already sets $LMOD_QUIET, so won't be affected by this
- and it probably doesn't unload modules anyway (especially none that are not loaded)
### How Tcl break and LmodBreak is handled in Lmod
- slides available at https://github.com/TACC/Lmod/blob/master/my_docs/22/lmod_zoom_mtg_2022_05_03/presentation.pdf
- `break` statement outside of a loop in Tcl is an error (and we'll take advantage of that)
- when a break statement is hit, *none* of the changes specified by that module file get applied (and *only* that module will not be loaded)
- top of FrameStk is (in some sense) buffer of changes that are made by module file which is being loaded
- if break happens, all those changes are ignored by kicking out the top of the stack (see `M.LmodBreak` function)
## Q&A
- Robert has not found time yet to look into problem reported by Bennet via Lmod-users mailing list
- see https://sourceforge.net/p/lmod/mailman/message/37648391/
- Lmod is producing traceback 3/5 times?!
- traceback are even not consistent
- using Lmod 8.6.x on top of Lua 5.3 (RHEL8)
- looping over hash tables in Lua 5.3 happens in random order of keys (way more than Lua 5.1 did), which could be relevant here...
- problem is happening on bare `module avail` or `module spider`, also with `module spider foo`
- Bennet should try the `check_module_tree_syntax` tool (module file linter)
- traceback suggests towards loop being triggered
- could be related to having a module file that is changing `$MODULEPATH` with location of module file being loaded
- Mikael's issue (https://github.com/TACC/Lmod/issues/575)
- no answer yet on this...
- looks like Lmod will need to have AI capabilities?
- LmodError vs LmodWarning
- LmodError: totally cancels whole `module` command
- LmodWarning prints a warning and does non-zero exit
- LmodBreak: stops processing module being loaded, doesn't apply changes, cancels rest of module command
## Next meeting
- Tue June 7th 2022 at 09:30 US Central (14:30 UTC)
- topic: explaining how `module load` is processed by Lmod, stepping through the codebase
- future topics: how module name is converted into an internal object in Lmod codebase