[FTS Xapian] Status & Questions

Joan Moreau jom at grosjo.net
Sat Jan 12 12:57:55 EET 2019


Sorted this out. sorry for noise

On 2019-01-12 11:39, Joan Moreau wrote:

> The change of "Extern C" suggested by Timo actually solved the situation 
> 
> Now, further question : 
> 
> I put a "i_warning" at each of my functions, and I see in the log : 
> 
> Jan 12 10:33:27 indexer-worker(jom at grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Warning: fts_backend_xapian_alloc
> Jan 12 10:33:27 indexer-worker(jom at grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Warning: fts_backend_xapian_init
> Jan 12 10:33:27 indexer-worker(jom at grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Warning: fts_xapian init (3,25)
> Jan 12 10:33:27 indexer-worker(jom at grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Warning: fts_backend_xapian_get_last_uid
> Jan 12 10:33:27 indexer-worker(jom at grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Error: Mailbox XXX: Status lookup failed: Internal error occurred. Refer to server log for more information. [2019-01-12 10:33:27]
> Jan 12 10:33:27 indexer-worker(jom at grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Warning: fts_backend_xapian_deinit
> Jan 12 10:33:27 indexer-worker(jom at grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Warning: fts_backend_xapian_unset_box
> Jan 12 10:33:27 lda(jom at grosjo.net)<31367><ms9zEnfCOVyHegAA0thIag>: Warning: fts_backend_xapian_deinit 
> 
> The error comes from the fact taht the "get_last_uid" is called without selecting a mailbox first, and therefore there is of course no uid. 
> 
> How come ? 
> 
> On 2019-01-12 10:50, Aki Tuomi wrote: 
> Did you remember to load fts first? 
> 
> mail_plugins =$mail_plugins fts fts_xapian 
> 
> Aki 
> On 12 January 2019 at 10:37 Joan Moreau via dovecot < dovecot at dovecot.org> wrote: 
> 
> STATUS 
> 
> - Alpha code is written and compiling now. (attached) 
> 
> - I would like to start testing. However, there is an error when 
> starting dovecot (git) : 
> 
> Error: Couldn't load required plugin 
> /usr/lib/dovecot/lib21_fts_xapian_plugin.so: dlopen() failed: 
> /usr/lib/dovecot/lib21_fts_xapian_plugin.so: undefined symbol: 
> _Z30fts_backend_default_can_lookupP11fts_backendPK15mail_search_arg 
> 
> ldd shows that fts lib is properly linked: 
> # ldd /usr/lib/dovecot/lib21_fts_xapian_plugin.so 
> (...) 
> lib20_fts_plugin.so => /usr/lib/dovecot/lib20_fts_plugin.so 
> (0x00007f25f75e0000) 
> (...) 
> libxapian.so.30 => /usr/lib/libxapian.so.30 (0x00007fe3a51e2000) 
> 
> Your help very welcome 
> 
> PENDING QUESTIONS 
> 
> 1 - WHat does represent "subargs" in mail_search_args 
> 
> 2 - for rescan : who is responsible for passing again the new email ? Is 
> 
> the Dovecot core sending again all the emails to index ? or the fts 
> shall somehow access the mailbox and read all emails ? Wouldn't just be 
> saying "delete all index and get_last_uid is now 0" the easy way ? or 
> the fts must process all emails (and block the current thread as a 
> mailbx maybe quite large) 
> 
> 3 - for get_last_uid : this uncertainity is very unclear. "If there is a 
> 
> gap, then indexer first indexes all the missing" -> this mean at a 
> certain point, indexer maybe rebuilding a previous email, so *last* uid 
> is something different than max. And how indexer does know whther there 
> is a gap wihtout callong the fts backend (whch it does not as there are 
> no function for that) ? 
> 
> Thank you 
> 
> --- 
> Aki Tuomi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20190112/7f7c1cd9/attachment.html>


More information about the dovecot mailing list