emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#52577: closed (‘guix lint’ throws an ugly backtrace if the GitHub up


From: GNU bug Tracking System
Subject: bug#52577: closed (‘guix lint’ throws an ugly backtrace if the GitHub updater receives “rate limit exceeded” error)
Date: Sat, 14 May 2022 14:19:02 +0000

Your message dated Sat, 14 May 2022 16:18:26 +0200
with message-id <87v8u8fb9p.fsf@gnu.org>
and subject line Re: bug#52577: ‘guix lint’ throws an ugly backtrace if the 
GitHub updater receives “rate limit exceeded” error
has caused the debbugs.gnu.org bug report #52577,
regarding ‘guix lint’ throws an ugly backtrace if the GitHub updater receives 
“rate limit exceeded” error
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
52577: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52577
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: ‘guix lint’ throws an ugly backtrace if the GitHub updater receives “rate limit exceeded” error Date: Fri, 17 Dec 2021 15:03:36 +0100
When running ‘guix lint -c refresh’ on a package hosted on GitHub, I get
an ugly backtrace when the GitHub rate limit has been reached.

--8<---------------cut here---------------start------------->8---
$ guix lint pipewire
fetching CVE database for 2021...
fetching CVE database for 2018...
Backtrace:ipewire@0.3.29 [refresh]...
          15 (primitive-load "/home/yoctocell/.config/guix/current/b…")
In guix/ui.scm:
   2206:7 14 (run-guix . _)
  2169:10 13 (run-guix-command _ . _)
In ice-9/boot-9.scm:
  1752:10 12 (with-exception-handler _ _ #:unwind? _ # _)
  1752:10 11 (with-exception-handler _ _ #:unwind? _ # _)
In guix/store.scm:
   658:37 10 (thunk)
In srfi/srfi-1.scm:
    634:9  9 (for-each #<procedure 7fb8f038ff40 at guix/scripts/lin…> …)
In guix/scripts/lint.scm:
     65:4  8 (run-checkers _ _ #:store _)
In srfi/srfi-1.scm:
    634:9  7 (for-each #<procedure 7fb8e15a8d20 at guix/scripts/lin…> …)
In guix/scripts/lint.scm:
    74:21  6 (_ _)
In guix/lint.scm:
   1428:5  5 (check-for-updates #<package pipewire@0.3.29 gnu/packag…>)
    771:2  4 (call-with-networking-fail-safe _ _ _)
In ice-9/boot-9.scm:
  1752:10  3 (with-exception-handler _ _ #:unwind? _ # _)
  1685:16  2 (raise-exception _ #:continuable? _)
  1683:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
ERROR:
  1. &http-get-error:
      uri: #<<uri> scheme: https userinfo: #f host: "api.github.com" port: #f 
path: "/repos/PipeWire/pipewire/releases" query: #f fragment: #f>
      code: 403
      reason: "rate limit exceeded"
  2. &message: "https://api.github.com/repos/PipeWire/pipewire/releases: HTTP 
download failed: 403 (\"rate limit exceeded\")"
--8<---------------cut here---------------end--------------->8---

When running ‘guix refresh’, a much friendlier error message is produced.

--8<---------------cut here---------------start------------->8---
$ guix refresh -t github
guix refresh: error: 
https://api.github.com/repos/OpenZWave/open-zwave/releases: HTTP download 
failed: 403 ("rate limit exceeded")
--8<---------------cut here---------------end--------------->8---

The problem seems to be that the ‘check-for-updates’ procedure in (guix
lint) doesn’t catch the ‘&http-get-error’.  I tried adding the following
form:

--8<---------------cut here---------------start------------->8---
(guard (c ((and (http-get-error? c)
                (string=? "rate limit exceeded"
                          (http-get-error-reason c)))
           (warning (G_ "GitHub rate limit exceeded"))
           #f))
  (with-networking-fail-safe ...))
--8<---------------cut here---------------end--------------->8---

but it doesn’t work.  C seems to be something a lot more complicated
than just a ‘&http-get-error’:

--8<---------------cut here---------------start------------->8---
#<&compound-exception components: (#<&error> #<&irritants irritants: 
(#<&compound-exception components: (#<&http-get-error uri: #<<uri> scheme: 
https userinfo: #f host: "api.github.com" port: #f path: 
"/repos/PipeWire/pipewire/releases" query: #f fragment: #f> code: 403 reason: 
"rate limit exceeded"> #<&message message: 
"https://api.github.com/repos/PipeWire/pipewire/releases: HTTP download failed: 
403 (\"rate limit exceeded\")">)>)> #<&exception-with-kind-and-args kind: 
%exception args: (#<&compound-exception components: (#<&http-get-error uri: 
#<<uri> scheme: https userinfo: #f host: "api.github.com" port: #f path: 
"/repos/PipeWire/pipewire/releases" query: #f fragment: #f> code: 403 reason: 
"rate limit exceeded"> #<&message message: 
"https://api.github.com/repos/PipeWire/pipewire/releases: HTTP download failed: 
403 (\"rate limit exceeded\")">)>)>)>
--8<---------------cut here---------------end--------------->8---

Any ideas on how to extract to the ‘&http-get-error’?

Attachment: signature.asc
Description: PGP signature


--- End Message ---
--- Begin Message --- Subject: Re: bug#52577: ‘guix lint’ throws an ugly backtrace if the GitHub updater receives “rate limit exceeded” error Date: Sat, 14 May 2022 16:18:26 +0200 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Hi,

Xinglu Chen <public@yoctocell.xyz> skribis:

> When running ‘guix lint -c refresh’ on a package hosted on GitHub, I get
> an ugly backtrace when the GitHub rate limit has been reached.
>
> $ guix lint pipewire

[...]

>    1428:5  5 (check-for-updates #<package pipewire@0.3.29 gnu/packag…>)
>     771:2  4 (call-with-networking-fail-safe _ _ _)
> In ice-9/boot-9.scm:
>   1752:10  3 (with-exception-handler _ _ #:unwind? _ # _)
>   1685:16  2 (raise-exception _ #:continuable? _)
>   1683:16  1 (raise-exception _ #:continuable? _)
>   1685:16  0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
> ERROR:
>   1. &http-get-error:
>       uri: #<<uri> scheme: https userinfo: #f host: "api.github.com" port: #f 
> path: "/repos/PipeWire/pipewire/releases" query: #f fragment: #f>
>       code: 403
>       reason: "rate limit exceeded"
>   2. &message: "https://api.github.com/repos/PipeWire/pipewire/releases: HTTP 
> download failed: 403 (\"rate limit exceeded\")"

This was fixed in March with commit
55e8e283ae398cc476e50e822383797c5f43db4c.

Closing!

Ludo’.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]