Catman segfault

Bug #27738 reported by Rkimber
8
Affects Status Importance Assigned to Milestone
man-db (Fedora)
Invalid
Undecided
Unassigned
man-db (Ubuntu)
Fix Released
Medium
Colin Watson

Bug Description

When running catman, as suggested by Tkman, it ends with:

Updating cat files for section 1 of man hierarchy /usr/local/man
bbconf(1), bf_compact(1), bf_copy(1), bf_resize(1), bf_tar(1), bin2obj(1),
bogofilter(1), bogolexer(1), bogotune(1), bogoupgrade(1), bogoutil(1),
data2inc(1), delp(1), fd2pascal(1), fpc(1), fpcmake(1), fpdoc(1), fprcp(1),
h2pas(1), h2paspp(1), makeskel(1), plex(1), postw32(1), ppc386(1), ppcarm(1),
ppcppc(1), ppcsparc(1), ppcx64(1), ppdep(1), ppudump(1), ppufiles(1),
ppumove(1), ptop(1), pyacc(1), rstconv(1), unitdiff(1).
Segmentation fault

Ubuntu 5.10
2.6.12-9-amd64-k8-smp
dual opteron, 2GB
man-db ver 2.4.3-3

Related branches

Revision history for this message
Colin Watson (cjwatson) wrote :

Could I see the output of 'catman --debug', please?

Revision history for this message
Rkimber (rkimber) wrote :
Download full text (40.3 KiB)

sections: 1
sections: n
sections: l
sections: 8
sections: 3
sections: 2
sections: 5
sections: 4
sections: 9
sections: 6
sections: 7
From the config file /etc/manpath.config:

Mandatory mandir `/usr/man'.
Mandatory mandir `/usr/share/man'.
Mandatory mandir `/usr/X11R6/man'.
Mandatory mandir `/usr/local/man'.
Path `/bin' mapped to mandir `/usr/share/man'.
Path `/usr/bin' mapped to mandir `/usr/share/man'.
Path `/sbin' mapped to mandir `/usr/share/man'.
Path `/usr/sbin' mapped to mandir `/usr/share/man'.
Path `/usr/local/bin' mapped to mandir `/usr/local/man'.
Path `/usr/local/bin' mapped to mandir `/usr/local/share/man'.
Path `/usr/local/sbin' mapped to mandir `/usr/local/man'.
Path `/usr/local/sbin' mapped to mandir `/usr/local/share/man'.
Path `/usr/X11R6/bin' mapped to mandir `/usr/X11R6/man'.
Path `/usr/bin/X11' mapped to mandir `/usr/X11R6/man'.
Path `/usr/games' mapped to mandir `/usr/share/man'.
Path `/opt/bin' mapped to mandir `/opt/man'.
Path `/opt/sbin' mapped to mandir `/opt/man'.
Global mandir `/usr/man', catdir `/var/cache/man/fsstnd'.
Global mandir `/usr/share/man', catdir `/var/cache/man'.
Global mandir `/usr/local/man', catdir `/var/cache/man/oldlocal'.
Global mandir `/usr/local/share/man', catdir `/var/cache/man/local'.
Global mandir `/usr/X11R6/man', catdir `/var/cache/man/X11R6'.
Global mandir `/opt/man', catdir `/var/cache/man/opt'.
Added section `1'.
Added section `n'.
Added section `l'.
Added section `8'.
Added section `3'.
Added section `2'.
Added section `3posix'.
Added section `3pm'.
Added section `3perl'.
Added section `5'.
Added section `4'.
Added section `9'.
Added section `6'.
Added section `7'.
`/usr/man' `' `1'
`/usr/share/man' `' `1'
`/usr/X11R6/man' `' `1'
`/usr/local/man' `' `1'
`/bin' `/usr/share/man' `0'
`/usr/bin' `/usr/share/man' `0'
`/sbin' `/usr/share/man' `0'
`/usr/sbin' `/usr/share/man' `0'
`/usr/local/bin' `/usr/local/man' `0'
`/usr/local/bin' `/usr/local/share/man' `0'
`/usr/local/sbin' `/usr/local/man' `0'
`/usr/local/sbin' `/usr/local/share/man' `0'
`/usr/X11R6/bin' `/usr/X11R6/man' `0'
`/usr/bin/X11' `/usr/X11R6/man' `0'
`/usr/games' `/usr/share/man' `0'
`/opt/bin' `/opt/man' `0'
`/opt/sbin' `/opt/man' `0'
`/usr/man' `/var/cache/man/fsstnd' `-1'
`/usr/share/man' `/var/cache/man' `-1'
`/usr/local/man' `/var/cache/man/oldlocal' `-1'
`/usr/local/share/man' `/var/cache/man/local' `-1'
`/usr/X11R6/man' `/var/cache/man/X11R6' `-1'
`/opt/man' `/var/cache/man/opt' `-1'
`1' `' `-5'
`n' `' `-5'
`l' `' `-5'
`8' `' `-5'
`3' `' `-5'
`2' `' `-5'
`3posix' `' `-5'
`3pm' `' `-5'
`3perl' `' `-5'
`5' `' `-5'
`4' `' `-5'
`9' `' `-5'
`6' `' `-5'
`7' `' `-5'

path directory /sbin is in the config file
adding /usr/share/man to manpath

path directory /bin is in the config file
/usr/share/man is already in the manpath

path directory /usr/sbin is in the config file
/usr/share/man is already in the manpath

path directory /usr/bin is in the config file
/usr/share/man is already in the manpath

path directory /usr/bin/X11 is in the config file
adding /usr/X11R6/man to manpath

path directory /usr/local/sbin is in the config file
adding /usr/local/man to manpath
adding /usr/local/share/man to manpath

path directory /usr/loc...

Revision history for this message
Rkimber (rkimber) wrote :

log says:-

kernel: [174655.236075] catman[16643] general protection rip:406ca4
rsp:7fffffffc670 error:0

Revision history for this message
ville palo (vi64pa) wrote :

Is this still problem on edgy?

Revision history for this message
Rkimber (rkimber) wrote :

I can't say, I'm afraid

I tried upgrading to edgy but it screwed up the wireless connection on my laptop so I'm not going to edgy on my main machine until this is fixed.

Colin Watson (cjwatson)
Changed in man-db:
assignee: kamion → nobody
status: Needs Info → Confirmed
Revision history for this message
Colin Watson (cjwatson) wrote :

Oops, sorry, I linked this to a Fedora bug by mistake.

Changed in man-db (Fedora):
importance: Unknown → Undecided
status: Unknown → New
status: New → Invalid
Revision history for this message
Colin Watson (cjwatson) wrote :

Thanks for your report, and sorry for the long delay. I recently rewrote all this code upstream in terms of libpipeline and I believe it no longer suffers from the memory handling bugs that led to this segfault; the rewrite will be in man-db 2.6.0.

Changed in man-db (Ubuntu):
assignee: nobody → Colin Watson (cjwatson)
status: Confirmed → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package man-db - 2.6.0.2-1

---------------
man-db (2.6.0.2-1) unstable; urgency=low

  * New upstream release:
    - Fix a segfault when scanning links to empty pages (closes: #622104).
    - Once we've seen at least one record in a page's NAME section, ignore
      any further records that don't include a whatis description, as they
      tend to be noise.
  * Remove unnecessary .la files (closes: #622443).

man-db (2.6.0.1-1) unstable; urgency=low

  * New upstream release, fixing test failures in 2.6.0 (closes: #621867):
    - Ensure that the target of a symlink or .so chain is always recorded as
      a real page.
    - Read a user-specified configuration file even if HOME is unset.

man-db (2.6.0-1) unstable; urgency=low

  * New upstream release:
    - Search the full manpath when expanding .so directives in manual pages.
      As part of this, '.so name.1' should now work as well as '.so
      man1/name.1' (closes: #503472, LP: #411534).
    - Handle roff named glyphs and perldoc strings in NAME sections (closes:
      #601025).
    - Don't start a pager if stdout is not a tty.
    - Allow passing multiple sections to whatis and apropos (closes:
      #571285).
    - Provide byte positions in manconv errors (closes: #562789).
    - Make mandb error output neater when stderr is not a tty.
    - Fix failure to display manual pages in some encodings when installed
      setuid.
    - Don't ignore SIGPIPE while forking iconv (closes: #597756).
    - Remove obsolete subdirectories of cat directories (closes: #558804).
    - If mandb sees that A is a symlink to B, it should never store a whatis
      reference for B (closes: #204249).
    - Print commas in roman rather than bold (thanks, David Prévot; closes:
      #600002).
    - Consider .PD requests as paragraph breaks (closes: #611012).
    - Reset SIGPIPE to SIG_DFL on startup, to avoid noisy output in the
      event that mandb was started from a context where SIGPIPE was ignored.
    - SECTION entries in a user configuration file now override those in the
      system configuration file, rather than appending to them.
    - If the user asked for an explicit section, sort exact matches first.
    - Rewrite all remaining subprocess handling in terms of libpipeline,
      especially some crash-prone code in catman (LP: #27738).
    - The default less prompt now includes "(press h for help or q to quit)"
      to help novices find their way around
      (http://brainstorm.ubuntu.com/idea/25975).
    - Fix a segfault when 'man -K' tries to display certain pages.
    - Fix a segfault in some situations when processes are killed by SIGHUP,
      SIGINT, or SIGTERM (LP: #218336).
  * Avoid unnecessary metadata writes to /var/cache/man when doing recursive
    chown (thanks, Iustin Pop; closes: #619726).
 -- Ubuntu Archive Auto-Sync <email address hidden> Sat, 30 Apr 2011 13:16:26 +0000

Changed in man-db (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.