Fix crash by handling exception thrown by GlassTable::set_overwritten

Merged Ahmad Samir requested to merge work/ahmad/xapian-db-crash into master

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] [2]

BUG: 401865 CCBUG: 363928

Edited by Ahmad Samir

Merge request reports