runbox / runbox7

Runbox 7 web app
Other
127 stars 26 forks source link

#Index: DatabaseCorruptError Db block overwritten #1360

Open gtandersen opened 1 year ago

gtandersen commented 1 year ago

Describe the bug The following error intermittently occurs during normal usage:

[Log] Error: DatabaseCorruptError Db block overwritten - are there multiple writers? DatabaseCorruptError: Db block overwritten - are there multiple writers? (main.7334cd57f77ef86d2e90.js, line 1)

To Reproduce Steps to reproduce the behavior:

  1. Go to https://runbox.com/app
  2. Use the app normally
  3. Observe intermittent errors in the console

Expected behavior The console error should not occur.

Screenshots If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

castaway commented 4 months ago

This is a Xapian error, see https://lists.tartarus.org/pipermail/xapian-discuss/2017-May/009526.html or https://lists.xapian.org/pipermail/xapian-discuss/2018-March/009610.html It can happen when a writer updates something the reader is in the middle of reading.. It shouldnt happen as fcntl is used to prevent that..

The message itself has since been replaced: https://github.com/xapian/xapian/commit/ebc973fa96b0f98c4d5e5083ff054e9cc6cf01eb

The instance we're likely seeing was fixed (as far as I can tell) by this patch: https://github.com/xapian/xapian/commit/40ebb71ef2ebe7581e7c508486cdf4e0b0a3e0f3

There have been various memory use improvements in recent releases too

castaway commented 2 months ago

Released runbox-searchindex 0.24 to npm with latest Xapian (v1.4.25), together with #1587 to use it

castaway commented 2 months ago

This is not guaranteed to fix this issue, it is a start. We should also look at ensuring we capture all Xapian errors and handle them so that the UI remains in a usable state. (For instance with the corrupt indexes, remove the index and restart