installer: Add core dump support.
Fixes: <https://issues.guix.gnu.org/58733> * gnu/installer.scm (installer-program): Enable core dump generation. * gnu/installer/dump.scm (%core-dump): New variable. (prepare-dump): Copy the core dump file. * gnu/installer/newt/welcome.scm (run-welcome-page): Propose to report an installation that previously generated a core dump.
This commit is contained in:
parent
868a1e7f32
commit
80387bc7c3
@ -389,6 +389,12 @@ selected keymap."
|
||||
(ice-9 match)
|
||||
(ice-9 textual-ports))
|
||||
|
||||
;; Enable core dump generation.
|
||||
(setrlimit 'core #f #f)
|
||||
(call-with-output-file "/proc/sys/kernel/core_pattern"
|
||||
(lambda (port)
|
||||
(format port %core-dump)))
|
||||
|
||||
;; Initialize gettext support so that installers can use
|
||||
;; (guix i18n) module.
|
||||
#$init-gettext
|
||||
|
@ -28,13 +28,17 @@
|
||||
#:use-module (web http)
|
||||
#:use-module (web response)
|
||||
#:use-module (webutils multipart)
|
||||
#:export (prepare-dump
|
||||
#:export (%core-dump
|
||||
prepare-dump
|
||||
make-dump
|
||||
send-dump-report))
|
||||
|
||||
;; The installer crash dump type.
|
||||
(define %dump-type "installer-dump")
|
||||
|
||||
;; The core dump file.
|
||||
(define %core-dump "/tmp/installer-core-dump")
|
||||
|
||||
(define (result->list result)
|
||||
"Return the alist for the given RESULT."
|
||||
(hash-map->list (lambda (k v)
|
||||
@ -66,6 +70,10 @@ RESULT is the installer result hash table. Returns the created directory path."
|
||||
;; syslog
|
||||
(copy-file "/var/log/messages" "syslog")
|
||||
|
||||
;; core dump
|
||||
(when (file-exists? %core-dump)
|
||||
(copy-file %core-dump "core-dump"))
|
||||
|
||||
;; dmesg
|
||||
(let ((pipe (open-pipe* OPEN_READ "dmesg")))
|
||||
(call-with-output-file "dmesg"
|
||||
|
@ -20,6 +20,7 @@
|
||||
(define-module (gnu installer newt welcome)
|
||||
#:use-module ((gnu build linux-modules)
|
||||
#:select (modules-loaded))
|
||||
#:use-module (gnu installer dump)
|
||||
#:use-module (gnu installer steps)
|
||||
#:use-module (gnu installer utils)
|
||||
#:use-module (gnu installer newt page)
|
||||
@ -132,6 +133,20 @@ work well with only free software. Expect trouble. If after installation,
|
||||
the system does not boot, perhaps you will need to add nomodeset to the
|
||||
kernel arguments and need to configure the uvesafb kernel module.")
|
||||
(G_ "Pre-install warning")))
|
||||
(when (file-exists? %core-dump)
|
||||
(match
|
||||
(choice-window
|
||||
(G_ "Previous installation failed")
|
||||
(G_ "Continue")
|
||||
(G_ "Report the failure")
|
||||
(G_ "It seems that the previous installation exited unexpectedly \
|
||||
and generated a core dump. Do you want to continue or to report the failure \
|
||||
first?"))
|
||||
(1 #t)
|
||||
(2 (raise
|
||||
(condition
|
||||
(&message
|
||||
(message "User abort.")))))))
|
||||
(run-menu-page
|
||||
(G_ "GNU Guix install")
|
||||
(G_ "Welcome to GNU Guix system installer!
|
||||
|
Loading…
Reference in New Issue
Block a user