<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><font face="monospace">David,</font></p>
    <p><font face="monospace">Thanks for looking at this. </font></p>
    <p><font face="monospace">My umask is ok, and i have several
        database files and they are not at the default location. To
        reproduce the problem try this.</font></p>
    <p><span style="font-family:monospace"><span
          style="color:#000000;background-color:#ffffff;">    </span>mkdir
        dtdir<br>
      </span></p>
    <p><font face="monospace">    darktable --library dtdir/lib.db
        --cachedir dtdir/cache --configdir dtdir
      </font><br>
      <span style="font-family:monospace"><br>
      </span></p>
    <p><font face="monospace">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.</font></p>
    <p><font face="monospace">The unreadable file can not be backed up.<br>
      </font></p>
    <p><font face="monospace">Greg</font></p>
    <p><span style="font-family:monospace"><br>
      </span><span style="font-family:monospace"><span
          style="color:#b26818;background-color:#ffffff;">commit
          40936ac868f25e60f1e99e680472516b16538c0f (</span><span
style="font-weight:bold;color:#ffff54;background-color:#ffffff;">tag:
          upstream/5.0.1</span><span
          style="color:#b26818;background-color:#ffffff;">, </span><span
style="font-weight:bold;color:#ff5454;background-color:#ffffff;">origin/upstream</span><span
          style="color:#b26818;background-color:#ffffff;">)</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#000000;background-color:#ffffff;">Author:
          Tino Mettler <a class="moz-txt-link-rfc2396E" href="mailto:tino+debian@tikei.de"><tino+debian@tikei.de></a></span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#000000;background-color:#ffffff;">Date:
            Sat Feb 15 20:32:09 2025 +0100</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <br>
        <span style="color:#000000;background-color:#ffffff;">    New
          upstream version 5.0.1</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <br>
        <span
style="font-weight:bold;color:#000000;background-color:#ffffff;">diff
          --git a/src/common/database.c b/src/common/database.c</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span
style="font-weight:bold;color:#000000;background-color:#ffffff;">index
          b1a53d914..eda9d2e4c 100644</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span
style="font-weight:bold;color:#000000;background-color:#ffffff;">---
          a/src/common/database.c</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span
style="font-weight:bold;color:#000000;background-color:#ffffff;">+++
          b/src/common/database.c</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#18b2b2;background-color:#ffffff;">@@
          -4075,15 +4075,15 @@</span><span
          style="color:#000000;background-color:#ffffff;"> void
          dt_database_backup(const char *filename)</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#000000;background-color:#ffffff;">
              if(g_file_test(filename, G_FILE_TEST_EXISTS))</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#000000;background-color:#ffffff;">     {</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#000000;background-color:#ffffff;">
                copy_status = g_file_copy(src, dest, G_FILE_COPY_NONE,
          NULL, NULL, NULL, &gerror);</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#b21818;background-color:#ffffff;">-
               if(copy_status) copy_status = g_chmod(backup, S_IRUSR) ==
          0;</span><span style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#000000;background-color:#ffffff;">     }</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#000000;background-color:#ffffff;">     else</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#000000;background-color:#ffffff;">     {</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#000000;background-color:#ffffff;">       //
          there is nothing to backup, create an empty file to prevent
          further backup attempts</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#b21818;background-color:#ffffff;">-      int
          fd = g_open(backup, O_CREAT, S_IRUSR);</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#18b218;background-color:#ffffff;">+
               const int fd = g_open(backup, O_CREAT, S_IWUSR);</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#000000;background-color:#ffffff;">
                if(fd < 0 || !g_close(fd, &gerror)) copy_status =
          FALSE;</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#000000;background-color:#ffffff;">     }</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#b21818;background-color:#ffffff;">-
             if(!copy_status) dt_print(DT_DEBUG_ALWAYS, "[backup failed]
          %s -> %s", filename, backup);</span><span
          style="color:#000000;background-color:#ffffff;">
        </span><br>
        <span style="color:#18b218;background-color:#ffffff;">+
             if(!copy_status)</span><br>
        <span style="color:#000000;background-color:#ffffff;">
        </span><br>
        <br>
      </span></p>
    <p><font face="monospace"><br>
      </font></p>
    <p></p>
    <div class="moz-cite-prefix">On 6/20/25 08:47, David Bremner wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:87h60ah968.fsf@tethera.net">
      <pre wrap="" class="moz-quote-pre">
Control: tag -1 unreproducible

Greg Schmidt <a class="moz-txt-link-rfc2396E" href="mailto:greg@gwschmidt.com"><greg@gwschmidt.com></a> writes:

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">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-
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
╭─ 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).

</pre>
    </blockquote>
  </body>
</html>