From unknown Fri Sep 05 08:43:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#58733: installer: coredump generation Resent-From: Mathieu Othacehe Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Sun, 23 Oct 2022 09:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 58733 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 58733@debbugs.gnu.org X-Debbugs-Original-To: bug-guix@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.16665173887939 (code B ref -1); Sun, 23 Oct 2022 09:30:02 +0000 Received: (at submit) by debbugs.gnu.org; 23 Oct 2022 09:29:48 +0000 Received: from localhost ([127.0.0.1]:42856 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1omXIi-00023x-EY for submit@debbugs.gnu.org; Sun, 23 Oct 2022 05:29:48 -0400 Received: from lists.gnu.org ([209.51.188.17]:35510) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1omXIc-00023j-FG for submit@debbugs.gnu.org; Sun, 23 Oct 2022 05:29:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1omXIb-0000Ps-SL for bug-guix@gnu.org; Sun, 23 Oct 2022 05:29:41 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1omXIb-0006C8-KF for bug-guix@gnu.org; Sun, 23 Oct 2022 05:29:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=kwxeQXrYVri6KgOdit3xM0x5Ph7HsAfh1bs/ig6vV4c=; b=C/pbZtsYmB61KT ApQo8ORih1E5iAaZ7bhInTDs+N1xuyrXpYUda1dCXabIyLG4iVIAHGTuTtGOu/upk6ElnNCDHWo2n tu6izrOFBDyNTBbR+u5bzvyBF1vgPzes/Xg+bkdKsq8IQYpJqnrvZlIKQSOuxxtVGBnr+/8mq8C/C qN4KbMOoJ4rimD7bKuSC8fV7jGYpZhWNH8AT2/7oZn/YayNb3LWFmMlctEbbSg8sC7rS6C7YelDdw fA1NtRJrX05jiTRxpLkh60ooA9oR6AV5gxbsqxIBl5LhsG5woG0zsuGKhQJ+ycaVrsqp3supbdMOI 7qDb1to2nCIeUnTI3H2w==; Received: from 2a02-8429-81d2-3d01-94c9-8097-ea5c-2775.rev.sfr.net ([2a02:8429:81d2:3d01:94c9:8097:ea5c:2775] helo=meije) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1omXIa-0003ux-1r for bug-guix@gnu.org; Sun, 23 Oct 2022 05:29:41 -0400 From: Mathieu Othacehe Date: Sun, 23 Oct 2022 11:29:37 +0200 Message-ID: <87o7u228hq.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.8 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.8 (--) Hello, This installer sometimes sadly segfaults, most of the time in libparted. To be able to catch this coredump[1], I ran those commands: --8<---------------cut here---------------start------------->8--- echo /tmp/core > /proc/sys/kernel/core_pattern prlimit --core=unlimited --pid=1234 --8<---------------cut here---------------end--------------->8--- The coredump I obtained did not seem to be exploitable, despite the fact that it weights 155MB: --8<---------------cut here---------------start------------->8--- mathieu@meije ~/guix [env]$ gdb /gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/bin/guile core ... BFD: warning: /home/mathieu/guix/core has a segment extending past end of file warning: core file may not match specified executable file. ... Failed to read a valid object file image from memory. Core was generated by `/gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/bin/guile --no-auto-com'. --8<---------------cut here---------------end--------------->8--- So I decided to adopt a new strategy and ran: --8<---------------cut here---------------start------------->8--- $ gdb $ attach 1234 ... $ gcore --8<---------------cut here---------------end--------------->8--- to get a viable core dump, and those commands to exploit it (thanks Josselin!): --8<---------------cut here---------------start------------->8--- (gdb) info sharedlibrary >From To Syms Read Shared Object Library ... 0x00007f892c59c850 0x00007f892c5d3d0b Yes (*) /gnu/store/qz7qqrhgcs3ixv8f1k30gwiqr1prm7qs-parted-3.5/lib/libparted.so (gdb) add-symbol-file /gnu/store/b0ymz7vjfkcvhbci49q5yk1fi0l9lq49-parted-3.5/lib/libparted.so 0x00007f892c59c850 add symbol table from file "/gnu/store/b0ymz7vjfkcvhbci49q5yk1fi0l9lq49-parted-3.5/lib/libparted.so" at .text_addr = 0x7f892c59c850 (y or n) y Reading symbols from /gnu/store/b0ymz7vjfkcvhbci49q5yk1fi0l9lq49-parted-3.5/lib/libparted.so... (gdb) bt #0 linux_destroy (dev=0x1dc89e0) at arch/linux.c:1615 #1 0x00007f8941aecd37 in ?? () from /gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/lib/libguile-3.0.so.1 ... --8<---------------cut here---------------end--------------->8--- I think that it would be great if we could enable coredump generation from the installer. This way, when a crash occurs and the installer restarts, it would notice that there is an existing coredump in say /tmp/coredump_xxx and propose to upload it using the existing dump mechanism. Thanks, Mathieu [1]: https://issues.guix.gnu.org/58732 From unknown Fri Sep 05 08:43:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#58733: installer: coredump generation Resent-From: Mathieu Othacehe Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Mon, 31 Oct 2022 13:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58733 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 58733@debbugs.gnu.org Received: via spool by 58733-submit@debbugs.gnu.org id=B58733.166722329831869 (code B ref 58733); Mon, 31 Oct 2022 13:35:02 +0000 Received: (at 58733) by debbugs.gnu.org; 31 Oct 2022 13:34:58 +0000 Received: from localhost ([127.0.0.1]:39803 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1opUwL-0008Hx-NK for submit@debbugs.gnu.org; Mon, 31 Oct 2022 09:34:58 -0400 Received: from eggs.gnu.org ([209.51.188.92]:47200) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1opUwK-0008Hl-43 for 58733@debbugs.gnu.org; Mon, 31 Oct 2022 09:34:56 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1opUwE-0002bl-Tn for 58733@debbugs.gnu.org; Mon, 31 Oct 2022 09:34:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=WGbeW3L8o7+WXTc//oQLCQd4UYEQTEroAwHCyGXJFeg=; b=Ben/rFuHEwSfQWL3EaCq 2OgbBLeO1x2S/G2rWMZBia9nWzVLYO8Etyg8TrUIDtQS2z1zxBPLVgjigildSf20uTSl6rR4LP6TL Woeo5W0HZT0jeZD3VHy2vnkDneXtQsreAr1FxDKK/nZhECI8glXBNdwJg2Ct8rYOCgOpG48sWP6C5 /RT14yhG+kkJ+5FAsAEUF5KRHvUH0HWmQuqqtu9P5yxKPGgZYXJC4P8CKsxvmKiGzr1YI3JyOsYHc /SoSGJ/PXR0TI1PlF7Luu2keB2Lv7Elysc907r8tJL0GHcD2eZ6/4XQh7LeD/LbUSZ0fLhYjt95AH eEu5Ij9UKhmhRg==; Received: from 2a02-8429-81d2-3d01-94c9-8097-ea5c-2775.rev.sfr.net ([2a02:8429:81d2:3d01:94c9:8097:ea5c:2775] helo=meije) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1opUwE-0001JB-Eo for 58733@debbugs.gnu.org; Mon, 31 Oct 2022 09:34:50 -0400 From: Mathieu Othacehe References: <87o7u228hq.fsf@gnu.org> Date: Mon, 31 Oct 2022 14:34:46 +0100 In-Reply-To: <87o7u228hq.fsf@gnu.org> (Mathieu Othacehe's message of "Sun, 23 Oct 2022 11:29:37 +0200") Message-ID: <87v8o0m809.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -1.8 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.8 (--) --=-=-= Content-Type: text/plain Hello, > Failed to read a valid object file image from memory. > Core was generated by `/gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/bin/guile --no-auto-com'. This is reported as: https://issues.guix.gnu.org/58923 > I think that it would be great if we could enable coredump generation > from the installer. This way, when a crash occurs and the installer > restarts, it would notice that there is an existing coredump in say > /tmp/coredump_xxx and propose to upload it using the existing dump > mechanism. Here is an attached patch implementing the proposed mechanism. Mathieu --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-installer-Add-core-dump-support.patch >From f4d2a1bb4df2f65b650be704bffb7ea469ae0232 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 31 Oct 2022 13:03:46 +0100 Subject: [PATCH 1/1] installer: Add core dump support. Fixes: * 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. --- gnu/installer.scm | 6 ++++++ gnu/installer/dump.scm | 10 +++++++++- gnu/installer/newt/welcome.scm | 15 +++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/gnu/installer.scm b/gnu/installer.scm index 8a6e604fa5..52c595b5b7 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -389,6 +389,12 @@ (define installer-builder (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 diff --git a/gnu/installer/dump.scm b/gnu/installer/dump.scm index daa02f205a..f91cbae021 100644 --- a/gnu/installer/dump.scm +++ b/gnu/installer/dump.scm @@ -28,13 +28,17 @@ (define-module (gnu installer dump) #: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 @@ (define dump-dir ;; 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" diff --git a/gnu/installer/newt/welcome.scm b/gnu/installer/newt/welcome.scm index 0bca44d1b2..5d47591d67 100644 --- a/gnu/installer/newt/welcome.scm +++ b/gnu/installer/newt/welcome.scm @@ -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 @@ (define (run-welcome-page logo) 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! -- 2.38.0 --=-=-=-- From unknown Fri Sep 05 08:43:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#58733: installer: coredump generation Resent-From: Mathieu Othacehe Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Mon, 31 Oct 2022 15:52:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58733 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 58733@debbugs.gnu.org Received: via spool by 58733-submit@debbugs.gnu.org id=B58733.166723147830972 (code B ref 58733); Mon, 31 Oct 2022 15:52:02 +0000 Received: (at 58733) by debbugs.gnu.org; 31 Oct 2022 15:51:18 +0000 Received: from localhost ([127.0.0.1]:41592 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1opX4H-00083U-My for submit@debbugs.gnu.org; Mon, 31 Oct 2022 11:51:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:33274) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1opX4F-00083F-Qb for 58733@debbugs.gnu.org; Mon, 31 Oct 2022 11:51:17 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1opX46-0007YC-RO for 58733@debbugs.gnu.org; Mon, 31 Oct 2022 11:51:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=FnQvfetsx9wpUF76abYUSz/R18dzA5N/I9ao7IjX3k0=; b=g0p1tHZoKZSaHbxlSTcJ Je/V/bQoyg2iPHUbe4Me4KnW9EhNSy9K2M/+ClV3C0gwDg5uTx2rnZXKScOfMJ+UGTm1Q+KRnFssS 7bUi/eoZOQVvYBRmVTIZ7wJUoim+iGfH7Aw8vHKuBjggw+kB2/9/31v5Z3JlIE3CfTsc1sYQWPgKI sTrA/N4mXvXah16+HCm4xirC7OJPe4ytO425QaJ0KGOGu6o76rKKWW2GmS4dhI8AenHvCi30XfhDG +6zfwt+aqqeSftGQNxhU02fY8sBgefa9fbFdVwsBddpQFuvOm2QBc4fcSWn6WxNbjmEvhuDbm8UoN nnqGtg1Ns6YSbA==; Received: from 2a02-8429-81d2-3d01-94c9-8097-ea5c-2775.rev.sfr.net ([2a02:8429:81d2:3d01:94c9:8097:ea5c:2775] helo=meije) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1opX42-0007yd-KO for 58733@debbugs.gnu.org; Mon, 31 Oct 2022 11:51:06 -0400 From: Mathieu Othacehe References: <87o7u228hq.fsf@gnu.org> <87v8o0m809.fsf@gnu.org> Date: Mon, 31 Oct 2022 16:51:00 +0100 In-Reply-To: <87v8o0m809.fsf@gnu.org> (Mathieu Othacehe's message of "Mon, 31 Oct 2022 14:34:46 +0100") Message-ID: <87o7tsm1p7.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) --=-=-= Content-Type: text/plain > Here is an attached patch implementing the proposed mechanism. I also prepared the attached patch as a follow-up. The idea is to hide the backtrace page when the user chooses to "Report the failure". Thanks, Mathieu --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-installer-Skip-the-backtrace-page-on-user-abort.patch >From d3f2ce83152a8ea453b407652dbee7b86a64816b Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 31 Oct 2022 16:43:09 +0100 Subject: [PATCH 1/1] installer: Skip the backtrace page on user abort. When the user aborts the installation because a core dump is discovered or the installation command failed, displaying the abort backtrace doesn't make much sense. Hide it when the abort condition is &user-abort-error and skip directly to the dump page. * gnu/installer/steps.scm (&user-abort-error): New variable. (user-abort-error?): New procedure. * gnu/installer/newt/final.scm (run-install-failed-page): Raise a user-abort-error. * gnu/installer/newt/welcome.scm (run-welcome-page): Ditto. * gnu/installer.scm (installer-program): Hide the backtrace page and directly propose to dump the report when the a &user-abort-error is raised. --- gnu/installer.scm | 18 ++++++++++++++---- gnu/installer/newt/final.scm | 5 ++--- gnu/installer/newt/welcome.scm | 3 +-- gnu/installer/steps.scm | 8 +++++++- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/gnu/installer.scm b/gnu/installer.scm index 52c595b5b7..5cd1af8edf 100644 --- a/gnu/installer.scm +++ b/gnu/installer.scm @@ -453,11 +453,21 @@ (define results key args) (define dump-dir (prepare-dump key args #:result %current-result)) + + (define user-abort? + (match args + (((? user-abort-error? obj)) #t) + (_ #f))) + (define action - ((installer-exit-error current-installer) - (get-string-all - (open-input-file - (string-append dump-dir "/installer-backtrace"))))) + (if user-abort? + 'dump + ((installer-exit-error current-installer) + (get-string-all + (open-input-file + (string-append dump-dir + "/installer-backtrace")))))) + (match action ('dump (let* ((dump-files diff --git a/gnu/installer/newt/final.scm b/gnu/installer/newt/final.scm index 6e55be5067..9f950a0551 100644 --- a/gnu/installer/newt/final.scm +++ b/gnu/installer/newt/final.scm @@ -92,9 +92,8 @@ (define (run-install-failed-page) ;; Keep going, the installer will be restarted later on. #t) (3 (raise - (condition - (&message - (message "User abort."))))))) + (condition + (&user-abort-error)))))) (_ (send-to-clients '(installation-failure)) #t))) diff --git a/gnu/installer/newt/welcome.scm b/gnu/installer/newt/welcome.scm index 5d47591d67..326996b005 100644 --- a/gnu/installer/newt/welcome.scm +++ b/gnu/installer/newt/welcome.scm @@ -145,8 +145,7 @@ (define (run-welcome-page logo) (1 #t) (2 (raise (condition - (&message - (message "User abort."))))))) + (&user-abort-error)))))) (run-menu-page (G_ "GNU Guix install") (G_ "Welcome to GNU Guix system installer! diff --git a/gnu/installer/steps.scm b/gnu/installer/steps.scm index 8b25ae97c8..0c505e40e4 100644 --- a/gnu/installer/steps.scm +++ b/gnu/installer/steps.scm @@ -28,7 +28,10 @@ (define-module (gnu installer steps) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:use-module (rnrs io ports) - #:export ( + #:export (&user-abort-error + user-abort-error? + + installer-step make-installer-step installer-step? @@ -50,6 +53,9 @@ (define-module (gnu installer steps) %current-result)) +(define-condition-type &user-abort-error &error + user-abort-error?) + ;; Hash table storing the step results. Use it only for logging and debug ;; purposes. (define %current-result (make-hash-table)) -- 2.38.0 --=-=-=-- From unknown Fri Sep 05 08:43:08 2025 X-Loop: help-debbugs@gnu.org Subject: bug#58733: installer: coredump generation Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 02 Nov 2022 10:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58733 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Mathieu Othacehe Cc: 58733@debbugs.gnu.org Received: via spool by 58733-submit@debbugs.gnu.org id=B58733.166738527423098 (code B ref 58733); Wed, 02 Nov 2022 10:35:02 +0000 Received: (at 58733) by debbugs.gnu.org; 2 Nov 2022 10:34:34 +0000 Received: from localhost ([127.0.0.1]:44984 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oqB4r-00060T-Lu for submit@debbugs.gnu.org; Wed, 02 Nov 2022 06:34:34 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39338) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oqB4q-00060F-Aq for 58733@debbugs.gnu.org; Wed, 02 Nov 2022 06:34:33 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oqB4k-0005jK-VS for 58733@debbugs.gnu.org; Wed, 02 Nov 2022 06:34:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=d6OmjLlbEm3tZ3vkv+xcCGP0Li5+BvXg6nqBcEhxLxA=; b=l0ZmtrHHEHLWdh81KDbs BR/5jYDaOoYyeCwBsSUyHeVcF10Vq4KdrO/FcAwwiH95+YeSNKT2nU6xOcZUgnbisoQmDuHVtT07U vA76sx82F/FXQiASdWrgXqFv8LI9zF09HGCm2tECQ/NzCCWhiYhdcrVgVqpKvspjFZXQaIlys9I17 u8xjD74FLpY7tNo9GRxITICbt8BWtUjQMuDyxjCfXsTZArQemIopSCkXKDhxwVSUM6VK/Q9SFIcWf ez2uIxmJV/FTUQqQ60McrmbdUHb5p+7AcwYH9ebJ0fk2OLkxr6n1ZtYcYK6ENuGBDKErZVFRsbdbO DTQvyOfSOxXBQQ==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201] helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oqB4Z-0004hu-IQ; Wed, 02 Nov 2022 06:34:23 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <87o7u228hq.fsf@gnu.org> <87v8o0m809.fsf@gnu.org> Date: Wed, 02 Nov 2022 11:34:13 +0100 In-Reply-To: <87v8o0m809.fsf@gnu.org> (Mathieu Othacehe's message of "Mon, 31 Oct 2022 14:34:46 +0100") Message-ID: <87edulwspm.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, Mathieu Othacehe skribis: >>>From f4d2a1bb4df2f65b650be704bffb7ea469ae0232 Mon Sep 17 00:00:00 2001 > From: Mathieu Othacehe > Date: Mon, 31 Oct 2022 13:03:46 +0100 > Subject: [PATCH 1/1] installer: Add core dump support. > > Fixes: > > * 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. [...] >>>From d3f2ce83152a8ea453b407652dbee7b86a64816b Mon Sep 17 00:00:00 2001 > From: Mathieu Othacehe > Date: Mon, 31 Oct 2022 16:43:09 +0100 > Subject: [PATCH 1/1] installer: Skip the backtrace page on user abort. > > When the user aborts the installation because a core dump is discovered o= r the > installation command failed, displaying the abort backtrace doesn't make = much > sense. Hide it when the abort condition is &user-abort-error and skip dir= ectly > to the dump page. > > * gnu/installer/steps.scm (&user-abort-error): New variable. > (user-abort-error?): New procedure. > * gnu/installer/newt/final.scm (run-install-failed-page): Raise a > user-abort-error. > * gnu/installer/newt/welcome.scm (run-welcome-page): Ditto. > * gnu/installer.scm (installer-program): Hide the backtrace page and dire= ctly > propose to dump the report when the a &user-abort-error is raised. Both look reasonable to me, thanks! Now, we should probably focus on Guile-Parted=E2=80=A6 Thanks, Ludo=E2=80=99. From unknown Fri Sep 05 08:43:08 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Mathieu Othacehe Subject: bug#58733: closed (Re: bug#58733: installer: coredump generation) Message-ID: References: <87wn8dl2e8.fsf@gnu.org> <87o7u228hq.fsf@gnu.org> X-Gnu-PR-Message: they-closed 58733 X-Gnu-PR-Package: guix Reply-To: 58733@debbugs.gnu.org Date: Wed, 02 Nov 2022 16:59:01 +0000 Content-Type: multipart/mixed; boundary="----------=_1667408341-15130-1" This is a multi-part message in MIME format... ------------=_1667408341-15130-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #58733: installer: coredump generation which was filed against the guix package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 58733@debbugs.gnu.org. --=20 58733: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D58733 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1667408341-15130-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 58733-done) by debbugs.gnu.org; 2 Nov 2022 16:58:20 +0000 Received: from localhost ([127.0.0.1]:47086 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oqH4G-0003v9-7R for submit@debbugs.gnu.org; Wed, 02 Nov 2022 12:58:20 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40772) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oqH4D-0003uu-9y for 58733-done@debbugs.gnu.org; Wed, 02 Nov 2022 12:58:18 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oqH47-0001dT-KH; Wed, 02 Nov 2022 12:58:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=tVPwE8U15dHOTYdyjV6t8E0Q2m+Tf7FZN8t6MCqPV/c=; b=YKv+usXUJDfjLWCQiVK+ kZ4JOWhNocZUXdeKV/Sl444U9Aq2ATiFA/lsmZspWv4NCv6syW77rhX2IzFW/g0JYr2GFrDNN4rCM g36bL08M0uLFx9Fnix1O/mibJXOPPsxBk8t62/zFanWk/Dvhp1h8by5+UZe6/yJ6uROVfWE4pT2dK pMUFvinmIZceJW9Cafr89+hYketK0Aj/B5YyI3+IQUjpJslFilnCiPAPp6RoF9LqK+y0v3xNvo2Vi 9gYQsm7lhMruXGzwjhxF/qIWgzvFQ1k0xlNhmyE+SGk9orvGqY0RRwbr5LSwSm0gVO02MqLTXUmjo JveV5hvObACNFg==; Received: from 2a02-8429-81d2-3d01-94c9-8097-ea5c-2775.rev.sfr.net ([2a02:8429:81d2:3d01:94c9:8097:ea5c:2775] helo=meije) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oqH47-00074Z-5V; Wed, 02 Nov 2022 12:58:11 -0400 From: Mathieu Othacehe To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: bug#58733: installer: coredump generation References: <87o7u228hq.fsf@gnu.org> <87v8o0m809.fsf@gnu.org> <87edulwspm.fsf@gnu.org> Date: Wed, 02 Nov 2022 17:58:07 +0100 In-Reply-To: <87edulwspm.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Wed, 02 Nov 2022 11:34:13 +0100") Message-ID: <87wn8dl2e8.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 58733-done Cc: 58733-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hey, > Both look reasonable to me, thanks! Thanks for reviewing :) > Now, we should probably focus on Guile-Parted=E2=80=A6 Yes, I saw you sent a few pointers, that will be my next focus! Mathieu ------------=_1667408341-15130-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 23 Oct 2022 09:29:48 +0000 Received: from localhost ([127.0.0.1]:42856 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1omXIi-00023x-EY for submit@debbugs.gnu.org; Sun, 23 Oct 2022 05:29:48 -0400 Received: from lists.gnu.org ([209.51.188.17]:35510) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1omXIc-00023j-FG for submit@debbugs.gnu.org; Sun, 23 Oct 2022 05:29:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1omXIb-0000Ps-SL for bug-guix@gnu.org; Sun, 23 Oct 2022 05:29:41 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1omXIb-0006C8-KF for bug-guix@gnu.org; Sun, 23 Oct 2022 05:29:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=kwxeQXrYVri6KgOdit3xM0x5Ph7HsAfh1bs/ig6vV4c=; b=C/pbZtsYmB61KT ApQo8ORih1E5iAaZ7bhInTDs+N1xuyrXpYUda1dCXabIyLG4iVIAHGTuTtGOu/upk6ElnNCDHWo2n tu6izrOFBDyNTBbR+u5bzvyBF1vgPzes/Xg+bkdKsq8IQYpJqnrvZlIKQSOuxxtVGBnr+/8mq8C/C qN4KbMOoJ4rimD7bKuSC8fV7jGYpZhWNH8AT2/7oZn/YayNb3LWFmMlctEbbSg8sC7rS6C7YelDdw fA1NtRJrX05jiTRxpLkh60ooA9oR6AV5gxbsqxIBl5LhsG5woG0zsuGKhQJ+ycaVrsqp3supbdMOI 7qDb1to2nCIeUnTI3H2w==; Received: from 2a02-8429-81d2-3d01-94c9-8097-ea5c-2775.rev.sfr.net ([2a02:8429:81d2:3d01:94c9:8097:ea5c:2775] helo=meije) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1omXIa-0003ux-1r for bug-guix@gnu.org; Sun, 23 Oct 2022 05:29:41 -0400 From: Mathieu Othacehe To: bug-guix@gnu.org Subject: installer: coredump generation Date: Sun, 23 Oct 2022 11:29:37 +0200 Message-ID: <87o7u228hq.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.8 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.8 (--) Hello, This installer sometimes sadly segfaults, most of the time in libparted. To be able to catch this coredump[1], I ran those commands: --8<---------------cut here---------------start------------->8--- echo /tmp/core > /proc/sys/kernel/core_pattern prlimit --core=unlimited --pid=1234 --8<---------------cut here---------------end--------------->8--- The coredump I obtained did not seem to be exploitable, despite the fact that it weights 155MB: --8<---------------cut here---------------start------------->8--- mathieu@meije ~/guix [env]$ gdb /gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/bin/guile core ... BFD: warning: /home/mathieu/guix/core has a segment extending past end of file warning: core file may not match specified executable file. ... Failed to read a valid object file image from memory. Core was generated by `/gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/bin/guile --no-auto-com'. --8<---------------cut here---------------end--------------->8--- So I decided to adopt a new strategy and ran: --8<---------------cut here---------------start------------->8--- $ gdb $ attach 1234 ... $ gcore --8<---------------cut here---------------end--------------->8--- to get a viable core dump, and those commands to exploit it (thanks Josselin!): --8<---------------cut here---------------start------------->8--- (gdb) info sharedlibrary >From To Syms Read Shared Object Library ... 0x00007f892c59c850 0x00007f892c5d3d0b Yes (*) /gnu/store/qz7qqrhgcs3ixv8f1k30gwiqr1prm7qs-parted-3.5/lib/libparted.so (gdb) add-symbol-file /gnu/store/b0ymz7vjfkcvhbci49q5yk1fi0l9lq49-parted-3.5/lib/libparted.so 0x00007f892c59c850 add symbol table from file "/gnu/store/b0ymz7vjfkcvhbci49q5yk1fi0l9lq49-parted-3.5/lib/libparted.so" at .text_addr = 0x7f892c59c850 (y or n) y Reading symbols from /gnu/store/b0ymz7vjfkcvhbci49q5yk1fi0l9lq49-parted-3.5/lib/libparted.so... (gdb) bt #0 linux_destroy (dev=0x1dc89e0) at arch/linux.c:1615 #1 0x00007f8941aecd37 in ?? () from /gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/lib/libguile-3.0.so.1 ... --8<---------------cut here---------------end--------------->8--- I think that it would be great if we could enable coredump generation from the installer. This way, when a crash occurs and the installer restarts, it would notice that there is an existing coredump in say /tmp/coredump_xxx and propose to upload it using the existing dump mechanism. Thanks, Mathieu [1]: https://issues.guix.gnu.org/58732 ------------=_1667408341-15130-1--