another 2.5.1pre keywords-related coredump

Nix nix at
Fri Oct 9 21:12:22 UTC 2009

On 9 Oct 2009, julien at spake thusly:
> Well, I think the only thing that currently works is explicitly saying
> it is HDR__KEYWORDS...
> --- innd/art.c  (révision 8646)
> +++ innd/art.c  (copie de travail)
> @@ -1939,11 +1939,11 @@
>     /* Patch the old keywords back in. */
>     if (DO_KEYWORDS && innconf->keywords) {
>       if (key_old_value) {
> -        if (hc->Value)
> -          free(hc->Value);              /* malloc'd within */
> -        hc->Value  = key_old_value;
> -        hc->Length = key_old_length;
> -        key_old_value = NULL;
> +        if (hc[HDR__KEYWORDS].Value)
> +          free(hc[HDR__KEYWORDS].Value); /* malloc'd within. */
> +        hc[HDR__KEYWORDS].Value  = key_old_value;
> +        hc[HDR__KEYWORDS].Length = key_old_length;
> +        key_old_value = NULL;
>       }
>     }

The patch is tabdamaged, but I applied it by hand.

With that applied, the article flows in: no crash.

INND's crash-resilience really is much improved over 2.2.x, I must
say. Multiple coredumps in the middle of article reception and no
overview corruption, no active file corruption, no massive rebuilds of
history and overview and active file from the spool... this feels solid
(even if it has introduced itself to me with a bunch of crashes! :) )

Apply, apply!

> (By the way, *elim_regexp contains twice the "will" keyword.
> And keyword generation works better for English articles!)

Yeah, well, my mad idea for later this year is to add history, overview
and article storage plugins backing onto a PostgreSQL database :)
probably adding the configurable ability to populate headers in the
overview and article from arbitrary SQL queries later on (so the
newsadmin can really shoot his performance in the foot). Even without
that, you get fast full text searching, with multilanguage stemming and
even a degree of grammatical awareness. (All this comes at a
considerable cost in disk space, so I'll make sure you can turn it on
for only a subset of groups, or none.) I suspect this, if it works, will
make the keywords code look rather... obsolescent, at least for smaller
feeds :)

... but it's no more than a bunch of (fairly detailed) scribbles at the
moment, so I'll shut up (again) until I have some code to wave
around. (I mentioned it to eagle a few months back and he didn't quite
say I was nuts.)

More information about the inn-workers mailing list