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: yelninei <at> tutamail.com
Subject: bug#76141: closed (Re: none)
Date: Tue, 15 Apr 2025 15:03:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#76141: guix locate --clear tries to write to readonly database

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 76141 <at> debbugs.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: 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’.

[Message part 3 (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.



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.