GNU bug report logs -
#28772
guix system reconfigure after kernel panic user or group not created
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Hi Oleg,
Oleg Pykhalov <go.wigust <at> gmail.com> skribis:
> apologies for not adding logs before. It's hard to do when I do guix
> commands from Xterm and not from Emacs. Emacs *shell* or *compilation*
> buffers will eat all memory if they get too much text.
I sympathize…
> The problem
> ===========
>
> The bigger problem from my view are files like /etc/group.lock and
> /etc/passwd.lock. For example:
>
> sudo touch /etc/group.lock
>
> /etc/config.scm
>
> (operating-system
> ;; …
> (groups (cons
> (user-group (name "test"))
> %base-groups)))
>
> reconfigure log
I think we can avoid the problem by forcefully removing these two lock
files at boot time:
[Message part 2 (text/x-patch, inline)]
diff --git a/gnu/services.scm b/gnu/services.scm
index 329b7b151..2ef1d8530 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -368,6 +368,8 @@ boot."
#t))))
;; Ignore I/O errors so the system can boot.
(fail-safe
+ (delete-file "/etc/group.lock")
+ (delete-file "/etc/passwd.lock")
(delete-file-recursively "/tmp")
(delete-file-recursively "/var/run")
(mkdir "/tmp")
[Message part 3 (text/plain, inline)]
> How to make a kernel panic
>
> The problem will be No defined variable IPTABLES-SSH after 'guix system
> reconfigure' and kernel crash after.
[...]
> Make a kernel panic
>
> sudo GUILE_LOAD_PATH=\"$HOME/src/iptables\
> :$GUILE_LOAD_PATH\" guix system reconfigure \
> $HOME/dotfiles/guix/system-magnolia.scm
>
> # Run above again and kernel will panic.
I tried to reproduce it with my user’s shepherd, but that didn’t work:
--8<---------------cut here---------------start------------->8---
ludo <at> ribbon ~/src/guix$ cat ,t.scm
(define s
(make <service>
#:provides '(nothing)
#:start (lambda _ unbound)))
(register-services s)
(start s)
ludo <at> ribbon ~/src/guix$ herd load root ,t.scm
Loading ,t.scm.
herd: exception caught while executing 'load' on service 'root':
ERROR: Unbound variable: foo
ludo <at> ribbon ~/src/guix$ herd load root ,t.scm
Loading ,t.scm.
herd: exception caught while executing 'start' on service 'nothing':
ERROR: Unbound variable: unbound
ludo <at> ribbon ~/src/guix$ herd load root ,t.scm
Loading ,t.scm.
Assertion (null? (lookup-services (canonical-name new))) failed.
herd: exception caught while executing 'load' on service 'root':
ERROR: Throw to key `assertion-failed' with args `()'.
ludo <at> ribbon ~/src/guix$ echo $?
1
ludo <at> ribbon ~/src/guix$ herd status
[...]
ludo <at> ribbon ~/src/guix$ echo $?
0
--8<---------------cut here---------------end--------------->8---
IOW, shepherd caught the exceptions and didn’t die.
What am I missing?
Ludo’.
This bug report was last modified 3 years and 199 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.