<!doctype html> <html> <head> <meta charset="UTF-8"> </head> <body> <div> Did you remember to load fts first? </div> <div> <br> </div> <div> mail_plugins =$mail_plugins fts fts_xapian </div> <div> <br> </div> <div> Aki </div> <blockquote type="cite"> <div> On 12 January 2019 at 10:37 Joan Moreau via dovecot < <a href="mailto:dovecot@dovecot.org">dovecot@dovecot.org</a>> wrote: </div> <div> <br> </div> <div> <br> </div> <div> STATUS </div> <div> <br> </div> <div> - Alpha code is written and compiling now. (attached) </div> <div> <br> </div> <div> - I would like to start testing. However, there is an error when </div> <div> starting dovecot (git) : </div> <div> <br> </div> <div> Error: Couldn't load required plugin </div> <div> /usr/lib/dovecot/lib21_fts_xapian_plugin.so: dlopen() failed: </div> <div> /usr/lib/dovecot/lib21_fts_xapian_plugin.so: undefined symbol: </div> <div> _Z30fts_backend_default_can_lookupP11fts_backendPK15mail_search_arg </div> <div> <br> </div> <div> ldd shows that fts lib is properly linked: </div> <div> # ldd /usr/lib/dovecot/lib21_fts_xapian_plugin.so </div> <div> (...) </div> <div> lib20_fts_plugin.so => /usr/lib/dovecot/lib20_fts_plugin.so </div> <div> (0x00007f25f75e0000) </div> <div> (...) </div> <div> libxapian.so.30 => /usr/lib/libxapian.so.30 (0x00007fe3a51e2000) </div> <div> <br> </div> <div> Your help very welcome </div> <div> <br> </div> <div> PENDING QUESTIONS </div> <div> <br> </div> <div> 1 - WHat does represent "subargs" in mail_search_args </div> <div> <br> </div> <div> 2 - for rescan : who is responsible for passing again the new email ? Is </div> <div> <br> </div> <div> the Dovecot core sending again all the emails to index ? or the fts </div> <div> shall somehow access the mailbox and read all emails ? Wouldn't just be </div> <div> saying "delete all index and get_last_uid is now 0" the easy way ? or </div> <div> the fts must process all emails (and block the current thread as a </div> <div> mailbx maybe quite large) </div> <div> <br> </div> <div> 3 - for get_last_uid : this uncertainity is very unclear. "If there is a </div> <div> <br> </div> <div> gap, then indexer first indexes all the missing" -> this mean at a </div> <div> certain point, indexer maybe rebuilding a previous email, so *last* uid </div> <div> is something different than max. And how indexer does know whther there </div> <div> is a gap wihtout callong the fts backend (whch it does not as there are </div> <div> no function for that) ? </div> <div> <br> </div> <div> Thank you </div> </blockquote> <div> <br> </div> <div class="io-ox-signature"> --- <br>Aki Tuomi </div> </body> </html>
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/05ea1aee/attachment.html>
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>