David,

Thanks for looking at this.

My umask is ok, and i have several database files and they are not at the default location. To reproduce the problem try this.

mkdir dtdir

    darktable --library dtdir/lib.db --cachedir dtdir/cache --configdir dtdir

I took a look at the change history and see the following changes. One of which changed the permissions on the empty backup file from S_IRUSR to S_IWUSR.

The unreadable file can not be backed up.

Greg


commit 40936ac868f25e60f1e99e680472516b16538c0f (tag: upstream/5.0.1, origin/upstream)
Author: Tino Mettler <[email protected]>
Date:   Sat Feb 15 20:32:09 2025 +0100

   New upstream version 5.0.1

diff --git a/src/common/database.c b/src/common/database.c
index b1a53d914..eda9d2e4c 100644
--- a/src/common/database.c
+++ b/src/common/database.c
@@ -4075,15 +4075,15 @@void dt_database_backup(const char *filename)
    if(g_file_test(filename, G_FILE_TEST_EXISTS))
    {
      copy_status = g_file_copy(src, dest, G_FILE_COPY_NONE, NULL, NULL, NULL, &gerror);
-      if(copy_status) copy_status = g_chmod(backup, S_IRUSR) == 0;
    }
    else
    {
      // there is nothing to backup, create an empty file to prevent further backup attempts
-      int fd = g_open(backup, O_CREAT, S_IRUSR);
+      const int fd = g_open(backup, O_CREAT, S_IWUSR);
      if(fd < 0 || !g_close(fd, &gerror)) copy_status = FALSE;
    }
-    if(!copy_status) dt_print(DT_DEBUG_ALWAYS, "[backup failed] %s -> %s", filename, backup);
+    if(!copy_status)



On 6/20/25 08:47, David Bremner wrote:
Control: tag -1 unreproducible

Greg Schmidt<[email protected]> writes:

greg@desk1:~Pictures$ find . -name *.db-pre* -ls
-snip-
   5902143      0 --w-------   1 greg     greg            0 Apr 26 03:44 
./new/2025/darktable.d/data.db-pre-5.0.1
   5902144      0 --w-------   1 greg     greg            0 Apr 26 03:44 
./new/2025/darktable.d/lib.db-pre-5.0.1
   5768426      0 -r--------   1 greg     greg            0 Oct 30  2024 
./new/darktable.d/lib.db-pre-4.8.1
   5768336      0 -r--------   1 greg     greg            0 Oct 30  2024 
./new/darktable.d/data.db-pre-4.8.1
-snip-
╭─ minkowski:~/.config/darktable
╰─% ls -l *.db-pre*
-r-------- 1 bremner bremner        0 Apr 11  2023 data.db-pre-4.2.1
-r-------- 1 bremner bremner   311296 Jul 17  2023 data.db-pre-4.4.2
-r-------- 1 bremner bremner   655360 Jan 14  2024 data.db-pre-4.6.1
-r-------- 1 bremner bremner   655360 May 23  2024 data.db-pre-4.8.0
-r-------- 1 bremner bremner   655360 Jul 30  2024 data.db-pre-4.8.1
-r-------- 1 bremner bremner   720896 Dec  7  2024 data.db-pre-5.0.0
-rw-r--r-- 1 bremner bremner  2588672 Mar 22 10:32 data.db-pre-5.0.1
-r-------- 1 bremner bremner        0 Apr 11  2023 library.db-pre-4.2.1
-r-------- 1 bremner bremner 12386304 Jul 17  2023 library.db-pre-4.4.2
-r-------- 1 bremner bremner 12124160 Jan 14  2024 library.db-pre-4.6.1
-r-------- 1 bremner bremner 17399808 May 26  2024 library.db-pre-4.8.0
-r-------- 1 bremner bremner 25329664 Jul 31  2024 library.db-pre-4.8.1
-r-------- 1 bremner bremner 27394048 Jan  1 20:35 library.db-pre-5.0.0
-rw-r--r-- 1 bremner bremner 31784960 Mar 23 06:35 library.db-pre-5.0.1

Maybe check your umask?  I noticed that your backups are somewhere
different than mine, and also named differently (lib vs library).

Reply via email to