Skip to content
Commit ff6cdf57 authored by Ahmad Samir's avatar Ahmad Samir
Browse files

Fix crash by handling exceptions thrown by GlassTable::set_overwritten

Xapian::Enquire::get_mset ultimately calls GlassTable::block_to_cursor,
which could throw Xapian::DatabaseModifiedError if the database has been
modified/deviated too much since it was opened for searching; handle that
case by trying to call reopen on the database (as per the upstream error
message[1]), then query it again, if that fails just return.

Also handle one other exception, Xapian::DatabaseCorruptError; this has
been reported in [2].

Use QByteArray::toStdString when calling the Xapian::Database ctor.

[1] https://xapian.org/docs/sourcedoc/html/glass__table_8cc_source.html#l00288
[2] https://bugs.kde.org/show_bug.cgi?id=363928#c9

BUG: 401865
CCBUG: 363928
parent 1440ec18
Loading
Loading
Loading
Pipeline #31063 passed with stage
in 23 minutes and 8 seconds
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment