Your message dated Fri, 17 Mar 2023 17:47:22 +0000
with message-id <e1pdeak-00hqdn...@fasolo.debian.org>
and subject line Bug#1032398: fixed in xapian-core 1.4.18-3+deb11u1
has caused the Debian Bug report #1032398,
regarding xapian-core: Risk of database corruption on disk full
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)
--
1032398: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1032398
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Source: xapian-core
Version: 1.4.18-3
Severity: critical
Tags: patch upstream
Justification: causes serious data loss
Control: fixed -1 1.4.22-1
Xapian database corruption on disk full is possible. It doesn't happen
in every case as ENOSPC needs to happen on a particular operation during
the commit but then not happen on a repeat attempt at that operation.
Filing systems with more complex freespace handling may be more
susceptible to this (it was reported on btrfs).
Only glass databases are affected - the commit code for the older chert
format is significantly different.
I've filed this with severity based on the worst case where the data in
the Xapian database is not simply an index of data from elsewhere. This
is the situation for user-applied tags in notmuch, for example. In many
cases the Xapian database is an index of data stored elsewhere so can be
recreated from scratch (albeit this may take some time).
This was fixed upstream in 1.4.22, which is the version now in unstable
and testing. It looks like all previous 1.4.x releases are affected.
I'm intending to submit a stable update for this, and will see if the
LTS team are interested too. The upstream patch is a single line
change:
https://git.xapian.org/?p=xapian;a=commitdiff;h=9f9aad17893bde4acb3a98e60dde397c346fcd9a
Details from upstream commit message:
If renaming to switch the new version file live fails (e.g. due to
ENOSPC) we discard the changes, try to write and switch to a different
new version file with an increased revision (on failure of this too we
close the database), and throw DatabaseError.
Unfortunately the roll-back of state is not complete, and if switching
to the different new version file succeeds that bad state persists on
disk.
Thanks to Uwe Kleine-König for reporting upstream and coming up with the
idea to reproduce using strace to inject a rename() failure - this is a
simple reproducer:
rm -rf enospc.db
strace -e inject=rename:error=ENOSPC:when=2 examples/simpleindex enospc.db <
INSTALL
xapian-check enospc.db
Cheers,
Olly
--- End Message ---
--- Begin Message ---
Source: xapian-core
Source-Version: 1.4.18-3+deb11u1
Done: Olly Betts <o...@survex.com>
We believe that the bug you reported is fixed in the latest version of
xapian-core, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 1032...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Olly Betts <o...@survex.com> (supplier of updated xapian-core package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Fri, 17 Mar 2023 11:20:07 +1300
Source: xapian-core
Architecture: source
Version: 1.4.18-3+deb11u1
Distribution: bullseye
Urgency: medium
Maintainer: Olly Betts <o...@survex.com>
Changed-By: Olly Betts <o...@survex.com>
Closes: 1032398
Changes:
xapian-core (1.4.18-3+deb11u1) bullseye; urgency=medium
.
* debian/patches/fix-db-corruption-on-ENOSPC.patch: New patch to
fix potential database corruption if switching the new revision
live fails with ENOSPC but the recovery process does NOT get ENOSPC.
The fix here is taken from upstream's 1.4.22 release and is the simplest
way to address the problem: simply reread the current version file
from disk which means the in memory state will match the previously
committed state. Closes: #1032398
Checksums-Sha1:
d988fdf0612d43b3933e25ce84354eaeeca94c86 2429 xapian-core_1.4.18-3+deb11u1.dsc
d170ee662987c05f86fb94f24e48a7c21641c717 20168
xapian-core_1.4.18-3+deb11u1.debian.tar.xz
45a1d3ebdad8527760ccc3fddd2bca34901e6a48 8318
xapian-core_1.4.18-3+deb11u1_amd64.buildinfo
Checksums-Sha256:
39687a52b79a70d4d1a6dbcdfe2917838ddb4fc3c9de58faf939918fe3c10352 2429
xapian-core_1.4.18-3+deb11u1.dsc
5097d856a2c42fd8e19cfd6cf0a15f8200b15a2b5f1e6f3df98fbaa8a7f5c37b 20168
xapian-core_1.4.18-3+deb11u1.debian.tar.xz
08c1972571632d0ec123db629e03e87969092b83653aa1cc409434e66aa4514a 8318
xapian-core_1.4.18-3+deb11u1_amd64.buildinfo
Files:
4ea0f6ca2f0c99413760903e37d45116 2429 libs optional
xapian-core_1.4.18-3+deb11u1.dsc
6a5aa75fa38c1e16023858e659f2b71c 20168 libs optional
xapian-core_1.4.18-3+deb11u1.debian.tar.xz
24e0da5ff9cb99eb6697b7eb58ac0b74 8318 libs optional
xapian-core_1.4.18-3+deb11u1_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEECOJAD/f+j+3jrLUoGBR7BzutKwcFAmQToIoACgkQGBR7Bzut
KwfXiRAAtmKPpgR+oNAJnOQwfnCFNnnXoV7oLV+4w2YDtjas7ImwBg365SdlZ/aD
r2ZAZHniYDkJNfAyxK0VkxtpMIpFS6VnvbxRPVYSngLi7D4jNTn1qDQvIF2o+8PY
bWAiwKA+nJKfunlMV7UtwTtGbnLZBdivIB+Bd47zjLYt87BzZX8GxD860PI3HwcI
Zi6rSfQy582P9ppNn+JlsTlr6WliZozNtv954ZtqTPN8aKZlpxoQyJvh0NHPx1ZC
naQAhHsgZFMxc0KcfGvPQ0ttmbzXkGdp8tTcZui2HebQDksJeb9P3rvO2csnbLqz
OjOfzUAY3RrETv8jMm4p0U/0vYeubfqtGY8zIjx4r4NV6W3tiwAJjho/Udowm3/+
52rip9Hy3MmvdEpxCLRCyDiVv9Y67QPP15nIF5zym6yj4myJLwEfD6t7Q8LbgGwd
BlcOO7OHF7NotZ8VulyEfT7QNaOiPn3SznmbQ8HcazkvyA/LkPaKBT4SSxbTEqvd
yokMV8S83/sxDb5gJ5A/m2jZb9LtsBqx083G2f0NQ89Ae/yavneTf3EidiluStg/
rALrxCEsgbqzkk1CAGpUe5z9NwDr+zSIdLwjkM8VfIbwLIFqXZLzHk2yvKuYZW0c
7dTMp52p7mpzcJLlqy/iierEqvUAVDTWZAfB/Fssjet8zMTHHMs=
=ImYi
-----END PGP SIGNATURE-----
--- End Message ---