Re: [FTS Xapian] Status & Questions
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(j...@grosjo.net)<30970>: Warning: fts_backend_xapian_alloc Jan 12 10:33:27 indexer-worker(j...@grosjo.net)<30970>: Warning: fts_backend_xapian_init Jan 12 10:33:27 indexer-worker(j...@grosjo.net)<30970>: Warning: fts_xapian init (3,25) Jan 12 10:33:27 indexer-worker(j...@grosjo.net)<30970>: Warning: fts_backend_xapian_get_last_uid Jan 12 10:33:27 indexer-worker(j...@grosjo.net)<30970>: 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(j...@grosjo.net)<30970>: Warning: fts_backend_xapian_deinit Jan 12 10:33:27 indexer-worker(j...@grosjo.net)<30970>: Warning: fts_backend_xapian_unset_box Jan 12 10:33:27 lda(j...@grosjo.net)<31367>: 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@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 (0x7f25f75e) (...) libxapian.so.30 => /usr/lib/libxapian.so.30 (0x7fe3a51e2000) 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
Re: [FTS Xapian] Status & Questions
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(j...@grosjo.net)<30970>: Warning: fts_backend_xapian_alloc Jan 12 10:33:27 indexer-worker(j...@grosjo.net)<30970>: Warning: fts_backend_xapian_init Jan 12 10:33:27 indexer-worker(j...@grosjo.net)<30970>: Warning: fts_xapian init (3,25) Jan 12 10:33:27 indexer-worker(j...@grosjo.net)<30970>: Warning: fts_backend_xapian_get_last_uid Jan 12 10:33:27 indexer-worker(j...@grosjo.net)<30970>: 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(j...@grosjo.net)<30970>: Warning: fts_backend_xapian_deinit Jan 12 10:33:27 indexer-worker(j...@grosjo.net)<30970>: Warning: fts_backend_xapian_unset_box Jan 12 10:33:27 lda(j...@grosjo.net)<31367>: 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@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 (0x7f25f75e) (...) libxapian.so.30 => /usr/lib/libxapian.so.30 (0x7fe3a51e2000) 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
Re: [FTS Xapian] Status & Questions
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@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 (0x7f25f75e) (...) libxapian.so.30 => /usr/lib/libxapian.so.30 (0x7fe3a51e2000) 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