Skip to content

Commit

Permalink
debos: Warn if parsed memory/scratchsize may be too small
Browse files Browse the repository at this point in the history
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 <chris.obbard@collabora.com>
  • Loading branch information
obbardc committed Jul 1, 2024
1 parent fb02f98 commit 13f6822
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions cmd/debos/debos.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"`
Expand Down Expand Up @@ -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
Expand All @@ -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, "")
}

Expand Down

0 comments on commit 13f6822

Please sign in to comment.