Bug#110738: mandb gets stuck!
Package: man-db
Version: 2.3.19-5
Severity: important
On Thu, Aug 30, 2001 at 07:13:22PM -0400, Eugene Tyurin wrote on
debian-user:
> Ok, man-db is version 2.3.19-5
>
> mandb -d -c >>/tmp/mandb.log 2>>/tmp/mandb.log seems to get stuck
> at this point:
>
> free_hashtab: 2090 entries, 1302 (62%) unique
> done.
> catpath: /var/cache/man, manpath: /usr/share/man
> Testing for existence: /usr/share/man/man1/strace.1
> Testing for existence: /usr/share/man/man8/mandb.8
> create_db(/usr/local/man): /var/cache/man/oldlocal/3684
> Testing /usr/local/man for new files
> catpath: /var/cache/man/oldlocal, manpath: /usr/local/man
>
> strace cycles endlessly through these lines:
>
> open("/usr/X11R6/man/man3", O_RDONLY|O_NONBLOCK|0x18000) = 4
> fstat64(0x4, 0xbffff50c) = 0
> shmat(4, 0xbffff7b4, 0x2ptrace: umoven: Input/output error
> ) = ?
> ipc_subcall(0x4, 0x805e928, 0x1000, 0) = 4072
> ipc_subcall(0x4, 0x805e928, 0x1000, 0) = 4072
That's normal (although it sucks a bit, mandb shouldn't have to keep
re-reading the directory all the time). If it never stops, though, I
suspect what's happened is that you've got a loop in your database. See
bug #95052 - mandb probably needs a similar fix. Also, mandb should not
purge old entries from a database it's just going to delete anyway,
which would have avoided the problem in your case.
Could you send me /var/cache/man/X11R6/index.bt by private mail, please?
I'd be interested to see just how broken it is and try to figure out how
it got that way.
This patch should act as a band-aid for now, if you feel like
recompiling man-db:
--- man-db-2.3.19/src/mandb.c.orig Fri Aug 31 02:23:32 2001
+++ man-db-2.3.19/src/mandb.c Fri Aug 31 02:33:04 2001
@@ -494,7 +494,7 @@
}
force_rescan = 0;
- if (purge) {
+ if (purge && !create) {
database = mkdbname (catpath);
purged += purge_missing (*mp);
}
Thanks,
--
Colin Watson [cjwatson@flatline.org.uk]
Reply to: