unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#68968: system reconfigure ignores incorrect --on-error flag value
@ 2024-02-07 11:48 Michal Atlas
  0 siblings, 0 replies; only message in thread
From: Michal Atlas @ 2024-02-07 11:48 UTC (permalink / raw)
  To: 68968

In the guix/scripts/system.scm file we do not check the value while parsing the flag:

--8<---------------cut here---------------start------------->8---
(option '("on-error") #t #f
         (lambda (opt name arg result)
           (alist-cons 'on-error (string->symbol arg)
                       result)))
--8<---------------cut here---------------end--------------->8---

and then blindly pass it to load*:

--8<---------------cut here---------------start------------->8---
(load* file %user-module
        #:on-error (assoc-ref opts 'on-error))
--8<---------------cut here---------------end--------------->8---

and load* uses it in a case that only gets called when an actual error occurs and treats the correct symbols but has a default clause that silently ignores values other than debug and backtrace:

--8<---------------cut here---------------start------------->8---
(case on-error
   ((debug)
    ...)
   ((backtrace)
    ...)
   (else
    #t))
--8<---------------cut here---------------end--------------->8---

meaning that for example a typo such as `--on-error=stacktrace`, gets treated as if the flag was not passed at all.

Minimum replication:
--8<---------------cut here---------------start------------->8---
guix system build <(echo x) --on-error=stacktrace
guix system build <(echo x) --on-error=backtrace
--8<---------------cut here---------------end--------------->8---

I'm not sure where the check should be done, nor what would be an acceptable way to not duplicate the list of valid values between guix/ui.scm and guix/scripts/system.scm





^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-02-07 11:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-07 11:48 bug#68968: system reconfigure ignores incorrect --on-error flag value Michal Atlas

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).