[Bug 1001189] Re: 'man' command fails with lseek error

Nathan Stratton Treadway ubuntu.lp at nathanst.com
Sun May 20 18:57:40 UTC 2012


On Sun, May 20, 2012 at 18:27:11 -0000, Paul Crawford wrote:
> The $PATH variables are different, with the 12.04 (32-bit) system having
> /packages/local/bin included in the list. If I remove that from the
> 12.04 system it then avoids the /packages/local/share/man/index.db file
> and it works.

Cool.  (See below.)

> However, if I add /packages/local/bin to the 10.04 system (64-bit, in
> case it matters) it takes noticeably longer to present the page, and it
> reads the /packages/local/share/man/index.db file (according to strace),
> but it still works!

Out of curiousity: does the strace show that after opening at the
/packages/.../index.db file man proceeds to open the
/var/cache/.../index.db file before showing you the man page?

(Also, does the strace show the same "lseek" after the
/packages/.../index.db open() call as the one you reported earlier on
Precise?)


Finally, are you able to open any of the man pages found under
/packages/.../man/ ? (Just wondering if that index.db file is actually
usable by e.g. the Lucid machine, or if it also treats it as corrupt but
just fails more gracefully somehow.)


Anyway, here's a quote from the
/usr/share/doc/man-db/man-db-manual.txt.gz file that describes the $PATH-
to-manpath mapping (and I think explains the behavior that you found):

  Assuming  that a $PATH exists, each path element it contains is
  scanned for in the config file.  If found, the corresponding manpath
  element is appended to the internal manpath.  However, if the element
  is not mentioned in the config file, a man directory relative to it
  will be sought.  The subdirectories ../man, man, ../share/man, or
  share/man relative to the path component are appended to the internal
  manpath if they exist.

Running the "manpath" command (or "man --path" in the Precise version of
man-db) will print out the auto-generated manpath search list.


						Nathan

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to man-db in Ubuntu.
https://bugs.launchpad.net/bugs/1001189

Title:
  'man' command fails with lseek error

Status in “man-db” package in Ubuntu:
  New

Bug description:
  When trying to look up the on-line documentation using the 'man'
  command it fails on 12.04 with lseek error. For example:

  $ man resolvconf
  gdbm fatal: lseek error

  This lseek error applies to other requests as well (e.g. ls, fdisk,
  etc). System information is:

  $ lsb_release -rd
  Description:	Ubuntu 12.04 LTS
  Release:	12.04

  apt-cache policy man
  man:
    Installed: (none)
    Candidate: (none)
    Version table:

  However, it is installed since it runs as a command, and I find:

  $ which man
  /usr/bin/man

  $ man --version
  man 2.6.1

  What I expect is to read the manual page appropriate to the
  command/program, and not get a software error.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/man-db/+bug/1001189/+subscriptions




More information about the foundations-bugs mailing list