[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Getting rid of circular dependencies, stage 3



On Thu, Jan 12, 2006 at 09:01:58AM +0100, Tollef Fog Heen wrote:
> | >These are all necessary, and debconf is an essential package which is
> | >not subject to the circular dependency postinst ordering problems afaik.
> |
> | Well, I'm not sure if that is an excuse for violating policy.
> 
> Essential: yes packages must work while unconfigured, so they won't be
> bitten by the bug in question here.

They could be bitten by this bug. Or speaking more accurately: they can make 
apt be bitten by this bug. The problem is not that they are not working; the
problem is that apt breaks lists of to-be-configured packages at arbitrary
points, which depend only on the list length; while dpkg can only handle
circular dependencies if all elements of the circular dependency are passed
to it at the same time.

To illustrate the scenario:
- Package A depends on package B, which in turn depends on A
  0) User calls 'apt-get install <long-list-of-packages1> A B
     <long-list-of-packages2>':
  1) apt splits the whole list into smaller parts after sorting by dependency
     where, in case this bug occurs:
       <part1>="<long-list-of-packages3> A"
       <part2>="B <long-list-of-packages4>"
  2) apt calls 'dpkg --unpack' for each element of <part1> and <part2>
     == so far no problem ==
  3) apt calls 'dpkg --configure <part1>' and 'dpkg --configure <part2>'
     where the first step already fails, because B is not in
     <part1>, but A depends on B
     == complete failure, user has to recover manually: 
        a) dpkg --configure -a
	b) goto 0

-- 
c u
henning

Attachment: signature.asc
Description: Digital signature


Reply to: