Re: [FTS Xapian] Status & Questions

2019-01-12 Thread Joan Moreau via dovecot

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

2019-01-12 Thread Joan Moreau via dovecot

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

2019-01-12 Thread Aki Tuomi


 
 
  
   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
   
 



[FTS Xapian] Status & Questions

2019-01-12 Thread Joan Moreau via dovecot
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

dovecot-xapian.tar.gz
Description: GNU Zip compressed data