On 3/13/07, Han Boetes <[EMAIL PROTECTED]> wrote:
...
As the errormessage suggests there is a character in a filename
somewhere on my filesystem which updatedb doesn't dig.

The cited error message,
   "locate database header corrupt, bigram char outside 0, 32-127: 14"
*only* indicates that the locate database does not match the format
expected by locate.  Given that the locate database format involves
'front compression' (the code and published reference can be found in
/usr/src/usr.bin/locate/code/locate.code.c), I don't see any
particular reason to believe that the problem stems from a filename on
your system that contains an unusual character.

If I was trying to track this down, I would probably walk 'locate'
under gdb to find the problem spot in the database and then study the
hexdump of the area against locate.code's source to determine how it
might have been generated, with an eye out for obvious stuff like
whether the error is on a block boundary or the bad data looks like
the output of any programs I know, etc.

Or easier, since your said this problem has been around for more than
a week, it would appears to be presist past the normal weekly rebuild
of the database.  If so, simply walking local.code through its passes
and checking the output as it goes is probably a faster attack on the
issue.


Philip Guenther

Reply via email to