dovecot-2.2: fts-sorl: Skip returned duplicate results.

dovecot at dovecot.org dovecot at dovecot.org
Sat Mar 29 20:45:52 UTC 2014


details:   http://hg.dovecot.org/dovecot-2.2/rev/d55ae5d268a2
changeset: 17182:d55ae5d268a2
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Mar 29 22:45:16 2014 +0200
description:
fts-sorl: Skip returned duplicate results.
Similar to bugfix d63b209737be in fts-lucene.

This caused assert-crash at least when searching from virtual mailbox
because the score array was larger than the actual number of results.

diffstat:

 src/plugins/fts-solr/solr-connection.c |  5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diffs (15 lines):

diff -r b0359910ec96 -r d55ae5d268a2 src/plugins/fts-solr/solr-connection.c
--- a/src/plugins/fts-solr/solr-connection.c	Fri Mar 28 15:59:48 2014 +0200
+++ b/src/plugins/fts-solr/solr-connection.c	Sat Mar 29 22:45:16 2014 +0200
@@ -260,8 +260,9 @@
 	}
 	result = solr_result_get(ctx, box_id);
 
-	seq_range_array_add(&result->uids, ctx->uid);
-	if (ctx->score != 0) {
+	if (seq_range_array_add(&result->uids, ctx->uid)) {
+		/* duplicate result */
+	} else if (ctx->score != 0) {
 		score = array_append_space(&result->scores);
 		score->uid = ctx->uid;
 		score->score = ctx->score;


More information about the dovecot-cvs mailing list