From 13f68221c68a9d7d6e091c5934321ab007259989 Mon Sep 17 00:00:00 2001 From: Christopher Obbard Date: Mon, 1 Jul 2024 11:48:22 +0100 Subject: [PATCH] debos: Warn if parsed memory/scratchsize may be too small Since the --memory and --scratchsize arguments are parsed with human-readable suffixes into bytes (e.g 2048MB or 2GB), if a user does not put a suffix the arguments are parsed as bytes which can cause issues later when a user sets the memory to be 2048 assuming it will be parsed as MB. Change the documentation to match reality and also add a warning if the user has set either parameter less than the recommended default. Closes: #509 Signed-off-by: Christopher Obbard --- cmd/debos/debos.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/cmd/debos/debos.go b/cmd/debos/debos.go index be3bc85d..e59889a1 100644 --- a/cmd/debos/debos.go +++ b/cmd/debos/debos.go @@ -66,9 +66,9 @@ func main() { TemplateVars map[string]string `short:"t" long:"template-var" description:"Template variables (use -t VARIABLE:VALUE syntax)"` DebugShell bool `long:"debug-shell" description:"Fall into interactive shell on error"` Shell string `short:"s" long:"shell" description:"Redefine interactive shell binary (default: bash)" optionsl:"" default:"/bin/bash"` - ScratchSize string `long:"scratchsize" description:"Size of disk backed scratch space"` + ScratchSize string `long:"scratchsize" description:"Size of disk-backed scratch space (parsed with human-readable suffix; assumed bytes if no suffix)"` CPUs int `short:"c" long:"cpus" description:"Number of CPUs to use for build VM (default: 2)"` - Memory string `short:"m" long:"memory" description:"Amount of memory for build VM (default: 2048MB)"` + Memory string `short:"m" long:"memory" description:"Amount of memory for build VM (parsed with human-readable suffix; assumed bytes if no suffix. default: 2048MB)"` ShowBoot bool `long:"show-boot" description:"Show boot/console messages from the fake machine"` EnvironVars map[string]string `short:"e" long:"environ-var" description:"Environment variables (use -e VARIABLE:VALUE syntax)"` Verbose bool `short:"v" long:"verbose" description:"Verbose output"` @@ -257,7 +257,12 @@ func main() { exitcode = 1 return } - m.SetMemory(int(memsize / 1024 / 1024)) + + memsizeMB := int(memsize / 1024 / 1024) + if memsizeMB < 2048 { + log.Printf("WARNING: Memory size of %dMB is less than recommended 2048MB\n", memsizeMB) + } + m.SetMemory(memsizeMB) if options.CPUs == 0 { // Set default CPU count for fakemachine @@ -272,6 +277,11 @@ func main() { exitcode = 1 return } + + scratchsizeMB := int(size / 1024 / 1024) + if scratchsizeMB < 2048 { + log.Printf("WARNING: Scratch size of %dMB is less than recommended 2048MB\n", scratchsizeMB) + } m.SetScratch(size, "") }