Re: Bug#898627: man-db: dependency loop

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: Bug#898627: man-db: dependency loop

Colin Watson
On Mon, May 14, 2018 at 02:14:56PM +0200, Philipp Marek wrote:

> Due to a bad $TERM I got my "apt-get upgrade" break down, "too many errors"
> in man-db.
>
> When trying to fix that, I got (error messages manually translated -
>  fixed the problem first):
>
>     # apt-get -f install
>     dpkg: Cycle in triggers found:
>      Chain of packages, which triggers might be the culprit:
>       man-db -> man-db
>      required triggers of packages that can't be resolved:
>       man-db: /usr/share/man
>       libc-bin: ldconfig
>     dpkg: Error while configureing package man-db (--configure):
>      Triggers build a loop, aborted
>
>
> A manual "dpkg -i --force-all /var/cache/apt/archives/man-db-*" did fix the
> basic problem, of course, so that the "apt-get -f install" was able to
> recover.

I've never seen this myself.  I guess it's due to man-db having
"interest-noawait /usr/share/man" in its triggers and itself shipping
files in /usr/share/man; but shouldn't dpkg notice that this is
trivially resolved by configuring man-db and not consider it as a cycle?
In any case I don't see any way to exclude man-db itself from the file
trigger if that's not the case.

CCing the dpkg maintainers.

--
Colin Watson                                       [[hidden email]]

Reply | Threaded
Open this post in threaded view
|

Re: Bug#898627: man-db: dependency loop

Ian Jackson-2
Colin Watson writes ("Re: Bug#898627: man-db: dependency loop"):

> On Mon, May 14, 2018 at 02:14:56PM +0200, Philipp Marek wrote:
> >     # apt-get -f install
> >     dpkg: Cycle in triggers found:
> >      Chain of packages, which triggers might be the culprit:
> >       man-db -> man-db
> >      required triggers of packages that can't be resolved:
> >       man-db: /usr/share/man
> >       libc-bin: ldconfig
> >     dpkg: Error while configureing package man-db (--configure):
> >      Triggers build a loop, aborted
...
> I've never seen this myself.  I guess it's due to man-db having
> "interest-noawait /usr/share/man" in its triggers and itself shipping
> files in /usr/share/man; but shouldn't dpkg notice that this is
> trivially resolved by configuring man-db and not consider it as a cycle?
> In any case I don't see any way to exclude man-db itself from the file
> trigger if that's not the case.

This trigger loop can only occur due to postinsts, not due to static
files.  The basic thing is that since package A's postinst (run for
trigger resolution) can can trigger package B's postinst to run, and
vice versa, this might lead to a loop.

Does the man-db or libc-bin postinst explicitly trigger
/usr/share/man ?

Ian.

--
Ian Jackson <[hidden email]>   These opinions are my own.

If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.

Reply | Threaded
Open this post in threaded view
|

Re: Bug#898627: man-db: dependency loop

Colin Watson
On Mon, May 14, 2018 at 04:03:51PM +0100, Ian Jackson wrote:

> Colin Watson writes ("Re: Bug#898627: man-db: dependency loop"):
> > I've never seen this myself.  I guess it's due to man-db having
> > "interest-noawait /usr/share/man" in its triggers and itself shipping
> > files in /usr/share/man; but shouldn't dpkg notice that this is
> > trivially resolved by configuring man-db and not consider it as a cycle?
> > In any case I don't see any way to exclude man-db itself from the file
> > trigger if that's not the case.
>
> This trigger loop can only occur due to postinsts, not due to static
> files.  The basic thing is that since package A's postinst (run for
> trigger resolution) can can trigger package B's postinst to run, and
> vice versa, this might lead to a loop.
>
> Does the man-db or libc-bin postinst explicitly trigger
> /usr/share/man ?

Not as far as I can see.  That would have to be a dpkg-trigger(1) call,
right?

--
Colin Watson                                       [[hidden email]]

Reply | Threaded
Open this post in threaded view
|

Re: Bug#898627: man-db: dependency loop

Ian Jackson-2
Colin Watson writes ("Re: Bug#898627: man-db: dependency loop"):
> On Mon, May 14, 2018 at 04:03:51PM +0100, Ian Jackson wrote:
> > Does the man-db or libc-bin postinst explicitly trigger
> > /usr/share/man ?
>
> Not as far as I can see.  That would have to be a dpkg-trigger(1) call,
> right?

Yes.  (Directly or indirectly, of course.)

Ian.

--
Ian Jackson <[hidden email]>   These opinions are my own.

If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.