Package: gitweb
Version: 1:2.1.4-2
Severity: serious
Control: block 774794 by -1

Hi,

The gitweb package has a trigger cycle via apache2.

Steps to reproduce the cycle (in a Jessie/sid chroot):
"""
# apt-get install apache2 gitweb
# dpkg --version | grep ' version 1.17' && \
  dpkg --unpack /var/cache/apt/archives/apache2_*.deb && \
  dpkg --configure --pending
Debian `dpkg' package management program version 1.17.23 (amd64).
(Reading database ... 13131 files and directories currently installed.)
Preparing to unpack .../apache2_2.4.10-9_amd64.deb ...
Unpacking apache2 (2.4.10-9) over (2.4.10-9) ...
Setting up apache2 (2.4.10-9) ...
invoke-rc.d: policy-rc.d denied execution of restart.
dpkg: cycle found while processing triggers:
 chain of packages whose triggers are or may be responsible:
  gitweb -> gitweb
 packages' pending triggers which are or may be unresolvable:
  gitweb: /usr/share/apache2/apache2-maintscript-helper
dpkg: error processing package gitweb (--configure):
 triggers looping, abandoned
Errors were encountered while processing:
 gitweb
"""

This simulates an upgrade scenario, where apache2 might be
temporarily deconfigured while gitweb remains configured.  If this
happens, dpkg is unable to recover as the cycle due to "await" trigger
AND the dependency requires both packages to be configured.

Known solutions:

 * Use no-await triggers.  *CAVEAT*: not always applicable.  Known suitable
   use cases includes "cache" handling, where the cache is allowed to be
   out of date tempoarily.
 * Reduce the dependency to Recommends.  *CAVEAT*: Rarely applicable.
 * Rewrite the solution to avoid triggers entirely. *CAVEAT*: May be
   non-trivial and likely to involve updates to all packages relying on
   the trigger.

The trigger on apache2 (via the
"/usr/share/apache2/apache2-maintscript-helper" file) is defined at
[1].

~Niels

[1] 
http://repo.or.cz/w/git/debian.git/blob/a1b6464b17d4672d0ea56b0815a1da7d82693404:/debian/gitweb.triggers


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to