Op 02/01/2019 om 23:05 schreef Stephan Bosch:
Op 02/01/2019 om 22:51 schreef Larry Rosenman:
https://www.lerctr.org/~ler/dovecot/doveadm-index-fts-debug.txt
https://www.lerctr.org/~ler/dovecot/doveadm-index-fts-bt.txt
I wish there was a way to set plugins {fts_solr = <blah>} from the command line :(
but I turned it on globally for that run.
Yeah, it is caused by the interaction between the solr and tika HTTP clients in this case. The bug itself will require some care and attention, but a quick fix should be provided by:
diff --git a/src/plugins/fts-solr/solr-connection.c b/src/plugins/fts-solr/solr-connection.c index 947ea76af..3389729d1 100644 --- a/src/plugins/fts-solr/solr-connection.c +++ b/src/plugins/fts-solr/solr-connection.c @@ -156,7 +156,7 @@ int solr_connection_init(const char *url, http_set.request_timeout_msecs = 60*1000; http_set.ssl = ssl_client_set; http_set.debug = debug; - solr_http_client = http_client_init(&http_set); + solr_http_client = http_client_init_private(&http_set); }
conn->xml_parser = XML_ParserCreate("UTF-8"); diff --git a/src/plugins/fts/fts-parser-tika.c b/src/plugins/fts/fts-parser-tika.c index a4b8b5c30..b8b57a350 100644 --- a/src/plugins/fts/fts-parser-tika.c +++ b/src/plugins/fts/fts-parser-tika.c @@ -77,7 +77,7 @@ tika_get_http_client_url(struct mail_user *user, struct http_url **http_url_r) http_set.request_timeout_msecs = 60*1000; http_set.ssl = &ssl_set; http_set.debug = user->mail_debug; - tika_http_client = http_client_init(&http_set); + tika_http_client = http_client_init_private(&http_set); } *http_url_r = tuser->http_url; return 0;
This will bluntly prevent sharing any state between Solr and Tika HTTP clients, also across users (if there is more than one per mail process).
Internally tracked as DOP-850 (and DOP-834 for the underlying problem). Regards, Stephan.