GNU bug report logs - #54952
(guix git) crashes with backtrace upon EDQUOT

Previous Next

Package: guix;

Reported by: Ludovic Courtès <ludovic.courtes <at> inria.fr>

Date: Fri, 15 Apr 2022 12:36:01 UTC

Severity: normal

To reply to this bug, email your comments to 54952 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#54952; Package guix. (Fri, 15 Apr 2022 12:36:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ludovic Courtès <ludovic.courtes <at> inria.fr>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Fri, 15 Apr 2022 12:36:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: bug-guix <at> gnu.org
Subject: (guix git) crashes with backtrace upon EDQUOT
Date: Fri, 15 Apr 2022 14:35:24 +0200
Hello!

The (guix git) code fails badly upon EDQUOT (“Disk quota exceeded”), and
perhaps upon ENOSPC as well:

--8<---------------cut here---------------start------------->8---
$ guix pull
[…]
Backtrace:
           5 (primitive-load "/home/lcirrott/.config/guix/current/bi…")
In guix/ui.scm:
   2206:7  4 (run-guix . _)
  2169:10  3 (run-guix-command _ . _)
In ice-9/boot-9.scm:
  1752:10  2 (with-exception-handler _ _ #:unwind? _ # _)
In guix/git.scm:
    297:2  1 (report-git-error _)
In ice-9/boot-9.scm:
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Throw to key `match-error' with args `("match" "no matching pattern" #f)'.
--8<---------------cut here---------------end--------------->8---

Here ‘report-git-error’ gets #f instead of a <git-error>.

Looking at Guile-Git, this happens when ‘giterr_last’ returns NULL:

--8<---------------cut here---------------start------------->8---
(define last-git-error
  (let ((proc (libgit2->procedure '* "giterr_last" '())))
    (lambda (code)
      "Return a <git-error> structure representing the last error, or #f."
      (pointer->git-error (proc) code))))

(define (raise-git-error code)
  "Raise a 'git-error' exception for the given code."
  (throw 'git-error (last-git-error code)))
--8<---------------cut here---------------end--------------->8---

Ludo’.




This bug report was last modified 2 years and 5 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.