GNU bug report logs -
#52577
‘guix lint’ throws an ugly backtrace if the GitHub updater receives “rate limit exceeded” error
Previous Next
Reported by: Xinglu Chen <public <at> yoctocell.xyz>
Date: Fri, 17 Dec 2021 14:04:01 UTC
Severity: important
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sat, 14 May 2022 16:18:26 +0200
with message-id <87v8u8fb9p.fsf <at> 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 <at> gnu.org.)
--
52577: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=52577
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
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 <at> 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 <at> 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’?
[signature.asc (application/pgp-signature, inline)]
[Message part 5 (message/rfc822, inline)]
Hi,
Xinglu Chen <public <at> 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 <at> 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’.
This bug report was last modified 3 years and 67 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.