Your message dated Tue, 11 Dec 2012 06:02:47 +0000
with message-id <e1tiivx-000128...@franck.debian.org>
and subject line Bug#695542: fixed in xapian-core 1.2.12-2
has caused the Debian Bug report #695542,
regarding xapian-core: Concurrent threads can succeed in locking database
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.)


-- 
695542: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=695542
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Source: xapian-core
Severity: grave
Tags: upstream patch
Justification: causes non-serious data loss

[A note on the severity - whether the data loss is serious or non-serious
depends how Xapian is being used.  In my experience, it's more common to
use it to index data which is stored in another system (to provide a full
text search), rather than as the canonical storage for data.  If that's
the case, then you can reindex the data (though for a lot of data that can
take significant time, but if Xapian is the canonical data store, then the
data loss is serious.]

Xapian's uses fcntl() file locks to enforce a single-writer model, and the
locking code attempts to work around the semantics of fcntl() whereby
closing *any* fd on the lock file in the same process releases the lock.

It does this by using a child process to hold the lock, but there's a flaw
- it closes all unwanted fds in the child process (for the usual reasons
that daemons do), but this is done *after* obtaining the fcntl() lock and
so if the lock file is open as one of those fds, the child no longer holds
the lock.

Unfortunately this case is exactly what happens if multiple threads of the
same process try to open a database for writing concurrently, and a simple
test program shows that you can easily corrupt a database in this way.

The fix is to simply close the unwanted file handles before trying to
obtain the fcntl() lock.

This has been fixed in upstream SVN, and should be in 1.2.13 (the next
1.2.x release):

http://trac.xapian.org/changeset/16938/branches/1.2/xapian-core/backends/flint_lock.cc

Cheers,
    Olly

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Attachment: signature.asc
Description: Digital signature


--- End Message ---
--- Begin Message ---
Source: xapian-core
Source-Version: 1.2.12-2

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 695...@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...@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Tue, 11 Dec 2012 04:22:04 +0000
Source: xapian-core
Binary: libxapian22 libxapian22-dbg libxapian-dev xapian-tools xapian-doc 
xapian-examples
Architecture: source amd64 all
Version: 1.2.12-2
Distribution: unstable
Urgency: low
Maintainer: Olly Betts <o...@survex.com>
Changed-By: Olly Betts <o...@survex.com>
Description: 
 libxapian-dev - Development files for Xapian search engine library
 libxapian22 - Search engine library
 libxapian22-dbg - Debugging symbols for the Xapian Search engine library
 xapian-doc - Core Xapian documentation
 xapian-examples - Xapian simple example programs
 xapian-tools - Basic tools for Xapian search engine library
Closes: 695542 695643
Changes: 
 xapian-core (1.2.12-2) unstable; urgency=low
 .
   * New patch fix-db-write-lock.patch which fixes database write locking to
     work when the lock file is already open in the same process.
     (Closes: #695542)
   * New patch replication-above-32GB.patch which fixes database replication to
     handle files > 32GB.  (Closes: #695643)
Checksums-Sha1: 
 d808472ba28626eab20f5009d7eea47f755a1f63 2123 xapian-core_1.2.12-2.dsc
 c9fed6266af1aea043240b3e5e85ca8bb5bff012 32558 
xapian-core_1.2.12-2.debian.tar.gz
 79da11718ac6240ca2c045abc6a6704434619287 1186706 libxapian22_1.2.12-2_amd64.deb
 d61b61820b5be4dd4515380c4266dfa63616e8d0 7573108 
libxapian22-dbg_1.2.12-2_amd64.deb
 8577148166d6f661213475e6af7982785e6db2cd 1863192 
libxapian-dev_1.2.12-2_amd64.deb
 9c48ff46eb2357d6c48411c50586ff4c064c62c7 471724 xapian-tools_1.2.12-2_amd64.deb
 eb2cd26503d517648e3ed57ad26dff6eb3d7ee0d 390812 
xapian-examples_1.2.12-2_amd64.deb
 e5d4476520199aed5a2571d3ede0824ea8bc0a8d 2178492 xapian-doc_1.2.12-2_all.deb
Checksums-Sha256: 
 4f78c26a1dcd80b93fdee30e8bf047580beab350f192d253d2c8e937c11b3432 2123 
xapian-core_1.2.12-2.dsc
 c400bc123ffacbb5ce70a4fab12fd66454ef6bdcda2c58e8c458dec0e0f1be66 32558 
xapian-core_1.2.12-2.debian.tar.gz
 8f8357c9c261b275666ea22dc25bac1da0e546a510e1342b0c4c8aa5b946d3fe 1186706 
libxapian22_1.2.12-2_amd64.deb
 f0000752522d9d17e891b74f19aca4cdddf4d3038b8140fca46fd62d41c2fa0a 7573108 
libxapian22-dbg_1.2.12-2_amd64.deb
 b7c767f5d2a21565ab78445bb0211a0ca1d92f881b5dac125546ad0f68388770 1863192 
libxapian-dev_1.2.12-2_amd64.deb
 76ba09bb3ca272c0d478b67b6e2794dc88c81ae831fe533c53360bf90479f63c 471724 
xapian-tools_1.2.12-2_amd64.deb
 9745fcc7c45d4d10fbe9afb969511fad209bdb567f3226a36dd0990d15fcde21 390812 
xapian-examples_1.2.12-2_amd64.deb
 2edaf8b4e6c04a074ae85fadce7ecf9781a741ea8ddeb29547cdffb732648c2f 2178492 
xapian-doc_1.2.12-2_all.deb
Files: 
 73b59dde05bc8c9917e77515ea48670a 2123 libs optional xapian-core_1.2.12-2.dsc
 a1ec9e9decd5ae8ee5bd3e0408f83c6a 32558 libs optional 
xapian-core_1.2.12-2.debian.tar.gz
 49bb4162fd45af413b0d2c74c786b46b 1186706 libs important 
libxapian22_1.2.12-2_amd64.deb
 da87fcc6ed3451affeba32e5f27d0bd3 7573108 debug extra 
libxapian22-dbg_1.2.12-2_amd64.deb
 037bf7fc12de9051dbf2ca44bf22bd40 1863192 libdevel optional 
libxapian-dev_1.2.12-2_amd64.deb
 45a6b86dd5778b342c4d2892763a551f 471724 utils optional 
xapian-tools_1.2.12-2_amd64.deb
 803e30b1155630eb4696ee5e85c3b5bb 390812 doc optional 
xapian-examples_1.2.12-2_amd64.deb
 0a8032e651ff7faf514744570181f84e 2178492 doc optional 
xapian-doc_1.2.12-2_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBCAAGBQJQxsekAAoJEBgUewc7rSsH48QP/2KHP00m7f6YhP3d7FlnhFEf
w+tD00r1lOB4vG4IusFWBTnnjpcaYynuMqBCrlMAN00VQ+QxBJYbiktQ1ApHS/2i
AkG31xmp4jOEB4C+w9KrYwdgLPaOmJ7YLJ2lzDCZO0Y48t8q7WC9DvQZlCels73b
QpTeY5UAOv2r8pm2++JkTlxfPLTRFkfbBZeaA2Mbe+s1v1kw0ZA4f2YGswv6rIE7
XG023dTyL2Elj6UttKYjNRKlQJQ5StXrd6VTzvtyArpbzdPNpHj7hBnhtVIMNffj
e2HzLrxu/EDFRei4JMZNboMLrARWhuwiRj8VyulQcYlTD72vTL4H0Gbj1w0e1Rq0
na0epoKyyogzRwzFnLmp4mrTCCOo3vkAjOJl0+zGnCrvuSd5GrSZZdTfAaKXEUhS
yhtRURtacQs4IuwFtI4zDx5GiwqSzIteclMCRAtb/jSe0l1cvmzbo+d5jGfjh2Sp
gZeTa5KSxBwK484yO0ORln8lbKUW/8Bw2u5VL4ub5tifk5iaSoBDUr0uJAqSdWpf
+GBuBNwsooUcg3zjg28goskIq8OKBbwwKsfXz3Oue8KHlkhFKIJ8omYb/9a0Nu0V
lIXQijzoxe6kKtO00o4Qm7fye7XaWG1hbZUS1p5Bwb0sFSU6p7vMgLVvLN/vWm23
jj9kKtoZCOIYIne1+ksh
=JVQo
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to