<!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>