From 7f96355814a16994c8fa75578bdaa1043838416d Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Mon, 4 Apr 2011 12:34:19 -0400 Subject: [PATCH] Add a warning message if serv_fulltext is getting zero length messages --- citadel/modules/fulltext/serv_fulltext.c | 63 ++++++++++++------------ 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/citadel/modules/fulltext/serv_fulltext.c b/citadel/modules/fulltext/serv_fulltext.c index db0edbdd1..e2dfd1466 100644 --- a/citadel/modules/fulltext/serv_fulltext.c +++ b/citadel/modules/fulltext/serv_fulltext.c @@ -2,22 +2,21 @@ * This module handles fulltext indexing of the message base. * Copyright (c) 2005-2011 by the citadel.org team * - * This program is open source software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. + * This program is open source software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - #include "sysdep.h" #include #include @@ -91,7 +90,7 @@ void ft_flush_cache(void) { for (i=0; i<65536; ++i) { if ((time(NULL) - last_update) >= 10) { syslog(LOG_INFO, - "Flushing index cache to disk (%d%% complete)\n", + "Flushing index cache to disk (%d%% complete)", (i * 100 / 65536) ); last_update = time(NULL); @@ -104,7 +103,7 @@ void ft_flush_cache(void) { ftc_msgs[i] = NULL; } } - syslog(LOG_INFO, "Flushed index cache to disk (100%% complete)\n"); + syslog(LOG_INFO, "Flushed index cache to disk (100%% complete)"); } @@ -123,19 +122,17 @@ void ft_index_message(long msgnum, int op) { msg = CtdlFetchMessage(msgnum, 1); if (msg == NULL) { - syslog(LOG_ERR, "ft_index_message() could not load msg %ld\n", msgnum); + syslog(LOG_ERR, "ft_index_message() could not load msg %ld", msgnum); return; } if (msg->cm_fields['1'] != NULL) { - syslog(LOG_DEBUG, "ft_index_message() excluded msg %ld\n", msgnum); + syslog(LOG_DEBUG, "ft_index_message() excluded msg %ld", msgnum); CtdlFreeMessage(msg); return; } - syslog(LOG_DEBUG, "ft_index_message() %s msg %ld\n", - (op ? "adding" : "removing") , msgnum - ); + syslog(LOG_DEBUG, "ft_index_message() %s msg %ld", (op ? "adding" : "removing") , msgnum); /* Output the message as text before indexing it, so we don't end up * indexing a bunch of encoded base64, etc. @@ -145,12 +142,15 @@ void ft_index_message(long msgnum, int op) { CtdlFreeMessage(msg); msgtext = CC->redirect_buffer; CC->redirect_buffer = NULL; - syslog(LOG_DEBUG, "Wordbreaking message %ld...\n", msgnum); + syslog(LOG_DEBUG, "Wordbreaking message %ld...", msgnum); + if (StrLength(CC->redirect_buffer) == 0) { + syslog(LOG_ALERT, "This message has a zero length. Probable data corruption."); + } txt = SmashStrBuf(&msgtext); wordbreaker(txt, &num_tokens, &tokens); free(txt); - syslog(LOG_DEBUG, "Indexing message %ld [%d tokens]\n", msgnum, num_tokens); + syslog(LOG_DEBUG, "Indexing message %ld [%d tokens]", msgnum, num_tokens); if (num_tokens > 0) { for (i=0; i= FT_MAX_CACHE) { - syslog(LOG_DEBUG, "Time to flush.\n"); + syslog(LOG_DEBUG, "Time to flush."); ft_newhighest = ft_newmsgs[i]; break; } @@ -348,7 +349,7 @@ void do_fulltext_indexing(void) { return; } - syslog(LOG_DEBUG, "do_fulltext_indexing() duration (%ld)\n", end_time - run_time); + syslog(LOG_DEBUG, "do_fulltext_indexing() duration (%ld)", end_time - run_time); /* Save our place so we don't have to do this again */ ft_flush_cache(); @@ -359,7 +360,7 @@ void do_fulltext_indexing(void) { end_critical_section(S_CONTROL); last_index = time(NULL); - syslog(LOG_DEBUG, "do_fulltext_indexing() finished\n"); + syslog(LOG_DEBUG, "do_fulltext_indexing() finished"); is_running = 0; return; } -- 2.30.2