[Debconf-devel] debconf cache cruft and questions owned by themselves

Jeremy S Bygott jsb_no_spm at jsbygott.fsnet.co.uk
Thu Mar 22 12:47:40 CET 2007


Hi,

My debconf cache contains a mass of stuff that it shouldn't.

1) is this a common problem?
2) what causes it?
3) is there a recommended solution? (delete the whole cache and start again?)

This system began as slink and got upgraded to each new stable release: slink
-> potato -> woody -> sarge.  Of course I also installed and purged packages
at other times.  Now, /var/cache/debconf/* contains lots of stuff that it
shouldn't.  For example, package 'slay' was purged long ago.  However:

# grep slay /var/cache/debconf/config.dat-old
Name: slay/butthead
Template: slay/butthead
Owners: slay/butthead
Name: slay/punish
Template: slay/punish
Owners: slay/punish

If I now install slay, it registers an additional owner 'slay' for each of
those questions.  If I purge again, only that additional owner goes away.

So perhaps the problem is that questions/templates wrongly got registered to
owner themselves, rather than owner their package?  Perhaps this was a bug in
an old version of (some component of) debconf? I can't find it in BTS, though.

I can list the purged packages that left stuff behind...

     # chmod 644 /var/cache/debconf/*
     $ debconf-show --listowners | sed 's#/.*##' | sort | uniq > 
owners_top_level
     $ dpkg -l `cat owners_top_level` | grep '^pn'
     pn  acct           <none>         (no description available)
     pn  apsfilter      <none>         (no description available)
     pn  atlas2         <none>         (no description available)
     pn  dotfile        <none>         (no description available)
     pn  dotfile-fvwm1  <none>         (no description available)
     pn  dotfile-fvwm2  <none>         (no description available)
     pn  groff          <none>         (no description available)
     pn  lprng          <none>         (no description available)
     pn  lynx           <none>         (no description available)
     pn  lynx-ssl       <none>         (no description available)
     pn  minicom        <none>         (no description available)
     pn  nn             <none>         (no description available)
     pn  powermgmt-base <none>         (no description available)
     pn  setserial      <none>         (no description available)
     pn  slay           <none>         (no description available)
     pn  tmpreaper      <none>         (no description available)
     pn  xcdroast       <none>         (no description available)


... but this is just the tip of the iceberg.  I see that a huge number of
installed packages also have templates registered to themselves, or registered
to both themselves and their package, e.g.

Name: ppp/maxfail
Template: ppp/maxfail
Owners: ppp, ppp/maxfail

So just wading through the purged packages by hand with commands like

      # debconf -o'slay/butthead' 'echo purge'

will only clean up the tip of the iceberg (and only on this one computer).

I don't like the status quo, because of this sort of scenario: Admin A purges
foo, but some questions (and answers) remain in the cache.  Some months later,
Admin A (or Admin B) installs foo but doesn't get shown the questions because
debconf thinks they've been seen.  This seems to defeat the design.

Maybe /usr/share/debconf/fix_db.pl would be a place to fix this? But globally
replacing 'Owners: foo/bar' with 'Owners: foo' would make a mess of shared
templates, I suppose.

Any suggestions?

Regards,

Jeremy
==================
(Dr) Jeremy Bygott
Oxford




More information about the Debconf-devel mailing list