GNU bug report logs - #76141
guix locate --clear tries to write to readonly database

Previous Next

Package: guix;

Reported by: yelninei <at> tutamail.com

Date: Sat, 8 Feb 2025 08:24:02 UTC

Severity: normal

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

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#76141: closed (guix locate --clear tries to write to readonly
 database)
Date: Tue, 15 Apr 2025 15:03:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 15 Apr 2025 15:10:15 +0200
with message-id <87mschfu4o.fsf <at> gnu.org>
and subject line Re: none
has caused the debbugs.gnu.org bug report #76141,
regarding guix locate --clear tries to write to readonly database
to be marked as done.

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


-- 
76141: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76141
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: yelninei <at> tutamail.com
To: bug-guix <at> gnu.org
Subject: guix locate --clear tries to write to readonly database
Date: Sat, 8 Feb 2025 09:19:32 +0100 (CET)
When a system wide database exists (at /var/cache/guix/locate/db.sqlite) 'guix locate --clear' invoked as an unprivileged user tries to write to it and fail.
Steps to reproduce:
- sudo mkdir -p /var/cache/guix/locate
- sudo touch /var/cache/guix/locate/db.sqlite
- guix locate --clear
Observe the exception:
ice-9/boot-9.scm:1685:16: In procedure raise-exception:
Throw to key `sqlite-error' with args `(sqlite-exec 8 "attempt to write a readonly database")'.

I think the issue is that the 'suitable-database' procedure does not get passed the CREATE? 
parameter (indicating that we want a writable db)  when '--clear'  is given.

I discovered this because this caused the guix-locate.sh test to fail in an normal checkout. 
The db in /var/cache/guix/locate/db.sqlite is created and updated via the package-database-service-type.

Thanks.


[Message part 3 (message/rfc822, inline)]
From: Ludovic Courtès <ludo <at> gnu.org>
To: yelninei <at> tutamail.com
Cc: Josselin Poiret <dev <at> jpoiret.xyz>,
 Simon Tournier <zimon.toutoune <at> gmail.com>, Mathieu Othacehe <othacehe <at> gnu.org>,
 Tobias Geerinckx-Rice <me <at> tobias.gr>, 76141 <76141-done <at> debbugs.gnu.org>,
 Christopher Baines <guix <at> cbaines.net>
Subject: Re: none
Date: Tue, 15 Apr 2025 15:10:15 +0200
yelninei <at> tutamail.com writes:

> From c6333e210b6fd38b710800d9fc9b898f9b4409e2 Mon Sep 17 00:00:00 2001
> Message-ID: <c6333e210b6fd38b710800d9fc9b898f9b4409e2.1744535776.git.yelninei <at> tutamail.com>
> From: Yelninei <yelninei <at> tutamail.com>
> Date: Sun, 13 Apr 2025 09:08:39 +0000
> Subject: [PATCH] locate: Request writable db for --clear.
> 
> Fixes https://issues.guix.gnu.org/76141.
> 
> * guix/scripts/locate.scm (guix-locate): Use writable db when --clear is given.
> 
> Change-Id: I2e4e945cef022b08dd6af4c252e67c2a4d5bf38c

Applied, thanks!

Ludo’.


This bug report was last modified 37 days ago.

Previous Next


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