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@grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Warning: fts_backend_xapian_alloc
Jan 12 10:33:27 indexer-worker(jom@grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Warning: fts_backend_xapian_init
Jan 12 10:33:27 indexer-worker(jom@grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Warning: fts_xapian init (3,25)
Jan 12 10:33:27 indexer-worker(jom@grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Warning: fts_backend_xapian_get_last_uid
Jan 12 10:33:27 indexer-worker(jom@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@grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Warning: fts_backend_xapian_deinit
Jan 12 10:33:27 indexer-worker(jom@grosjo.net)<30970><ms9zEnfCOVyHegAA0thIag:8IhwIHfCOVz6eAAA0thIag>: Warning: fts_backend_xapian_unset_box
Jan 12 10:33:27 lda(jom@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 ?
Did you remember to load fts first?mail_plugins =$mail_plugins fts fts_xapianAkiOn 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 whenstarting 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_argldd 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 welcomePENDING QUESTIONS1 - WHat does represent "subargs" in mail_search_args2 - for rescan : who is responsible for passing again the new email ? Isthe Dovecot core sending again all the emails to index ? or the ftsshall somehow access the mailbox and read all emails ? Wouldn't just besaying "delete all index and get_last_uid is now 0" the easy way ? orthe fts must process all emails (and block the current thread as amailbx maybe quite large)3 - for get_last_uid : this uncertainity is very unclear. "If there is agap, then indexer first indexes all the missing" -> this mean at acertain point, indexer maybe rebuilding a previous email, so *last* uidis something different than max. And how indexer does know whther thereis a gap wihtout callong the fts backend (whch it does not as there areno function for that) ?Thank you---
Aki Tuomi