Skip to main content.
home | support | download

Back to List Archive

Segfault while merging indexes: Failed to uncompress Property. zlib uncompress returned: -3

From: Axel Beckert - ecos gmbh <beckert(at)not-real.ecos.de>
Date: Mon Jun 06 2005 - 11:44:05 GMT
Hi!

I now use swish-e for about two years or so in several projects. In a
recent project suddenly a segfault occurs while merging indexes,
independent of the user doing it (means it happens while running under
the Apache's user as well as under root):

# TMP=/var/syscfg/swish/tmp /usr/local/bin/swish-e -v3 -e -c /usr/msrc/kb/etc/swish.kb.conf -M /var/syscfg/swish/swish-e.kb.index /var/syscfg/swish/swish-e.kb.index.new /var/syscfg/swish/swish-e.kb.index.tmp              
Input index '/var/syscfg/swish/swish-e.kb.index' has 1459 files and 18979 words
Input index '/var/syscfg/swish/swish-e.kb.index.new' has 1 files and 336 words
Replaced file '/var/syscfg/swish/tmp/9a1be3d51fe0d185634ecd62ad664d5d 2005-06-03 12:37:50 CEST' with '/var/syscfg/swish/tmp/9a1be3d51fe0d185634ecd62ad664d5d 2005-06-03 16:28:00 CEST'
Getting words in index '/var/syscfg/swish/swish-e.kb.index':  18979 words
Getting words in index '/var/syscfg/swish/swish-e.kb.index.new':    336 words
Processing words in index '/var/syscfg/swish/swish-e.kb.index.tmp':      0 words
Warning: Failed to uncompress Property. zlib uncompress returned: -3.  uncompressed size: 18 buf_len: -1073750304

Segmentation fault
# 

Here are the last lines of an strace of the appropriate command line:

---snip---
[...]
_llseek(5, 409600, [409600], SEEK_SET)  = 0
_llseek(5, 409600, [409600], SEEK_SET)  = 0
_llseek(5, 409600, [409600], SEEK_SET)  = 0
_llseek(5, 409600, [409600], SEEK_SET)  = 0
_llseek(5, 409600, [409600], SEEK_SET)  = 0
_llseek(5, 409600, [409600], SEEK_SET)  = 0
_llseek(5, 409600, [409600], SEEK_SET)  = 0
_llseek(9, 0, [0], SEEK_SET)            = 0
read(9, "\1\0\0\0`%\r\10\2\0\0\0`%\r\10\3\0\0\0`%\r\10\4\0\0\0`"..., 4096) = 4096
read(9, "\1\2\0\0`%\r\10\2\2\0\0`%\r\10\3\2\0\0`%\r\10\4\2\0\0`"..., 4096) = 4096
read(9, "\1\4\0\0`%\r\10\2\4\0\0`%\r\10\3\4\0\0`%\r\10\4\4\0\0`"..., 4096) = 3480
read(9, "", 4096)                       = 0
write(1, "Getting words in index \'/var/sys"..., 159Getting words in index '/var/syscfg/swish/swish-e.kb.index.new':    336 words
) = 159ing words in index '/var/syscfg/swish/swish-e.kb.index.tmp':      0 words
_llseek(3, 475136, [475136], SEEK_SET)  = 0
read(3, "05263b14e989a51d48fc16b026c8\0\0\0\0"..., 4096) = 4096
_llseek(3, 1519616, [1519616], SEEK_SET) = 0
read(3, "\27\201\'\321O\205,\321b\r\321\7\202{\321\20\16\321\31"..., 4096) = 4096
mmap2(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x407b7000
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
---snap---

And here's the backtrace:

---snip---
#0  write_word_pos (indexf=0x80f2350, sw_output=0x80ded58, file_num_map=0x80f2350, filenum=1887947165, e=0x406c43cc, metaID=48, posdata=2448) at merge.c:1001
#1  0x080590c7 in merge_indexes (sw_input=0x80c4548, sw_output=0x80ded58) at merge.c:235
#2  0x0804d30f in cmd_merge (sw_input=0x80c4548, params=0x80d24e0) at swish.c:1420
#3  0x0804bbd9 in main (argc=9, argv=0xbfffefb4) at swish.c:204
---snap---

Switching -e on and off didn't help.
 
The error seems to be independent of the config file, running it with
an empty config file made no change.

The system is running SWISH-E 2.4.2 on a SuSE 9.0 Linux with kernel
2.4.21. SWISH-E has been build with default configuration from source
on that machine.

There has been no changes on the days before and the day on which the
error occurred first. It seems to come from the data which has been
indexed, but I've no clue why or which data could cause it. For me it
looks as if some zipped data seems to be corrupt, but again, I've no
clue, where the corruption could have happend.

I've looked through the archives and found a lot of similar error
messages (mostly with return code -5 instead of -3), but none in
connection with merging indexes. So I thought I should subscribe and
post this message in the hope, someone has an idea.

            Kind regards, Axel Beckert
-- 
-------------------------------------------------------------
Axel Beckert      ecos electronic communication services gmbh
it security solutions * web applications with apache and perl

Mail:       Tulpenstrasse 5       D-55276 Dienheim near Mainz
E-Mail:     beckert@ecos.de       Voice:     +49 6133 939-220
WWW:        http://www.ecos.de/   Fax:       +49 6133 939-333
-------------------------------------------------------------
Received on Mon Jun 6 04:44:07 2005