1

I'm having a recurrent issue with custom .deb packages and their triggers. We have made some "meta packets" for our deploys to force & check some configurations. The idea is to keep many servers with the "same" config without needing to check manually on each update. Let's call them as an example: grafana-conf and elasticsearch-conf.

In order to execute the reconfiguration scripts when the "child package" get updated we use the following triggers.

  • grafana-conf triggers:
interest /usr/share/grafana
interest grafana-reconfigure

  • elasticsearch-conf triggers:
interest /usr/share/elasticsearch/bin
interest elastic-reconfigure

From time to time, it just works as expected, but, in some scenarios dpkg says there is a trigger loop. In this case, if elasticsearch and grafana gets updated on the same transaction we get the following messages:

[...]
Processing triggers for ureadahead (0.100.0-21) ...  
Processing triggers for dbus (1.12.16-2ubuntu2.3) ...
Setting up unrelated-package (1.2.1) ...           
dpkg: cycle found while processing triggers:                    
 chain of packages whose triggers are or may be responsible:    
  elasticsearch-conf -> grafana-conf
 packages' pending triggers which are or may be unresolvable:
  grafana-conf: /usr/share/grafana
  elasticsearch-conf: /usr/share/elasticsearch/bin
  initramfs-tools: update-initramfs
dpkg: error processing package grafana-conf (--configure):
 triggers looping, abandoned
dpkg: cycle found while processing triggers:
 chain of packages whose triggers are or may be responsible:
  elasticsearch-conf -> elasticsearch-conf -> elasticsearch-conf
 packages' pending triggers which are or may be unresolvable:
  elasticsearch-conf: /usr/share/elasticsearch/bin
  initramfs-tools: update-initramfs
dpkg: error processing package elasticsearch-conf (--configure):
 triggers looping, abandoned
Processing triggers for initramfs-tools (0.136ubuntu6.7) ...
[...]
Errors were encountered while processing:
 grafana-conf
 elasticsearch-conf

We've tested many variations of the triggers but we don't understand what is going wrong there. Reading debian/deb docs says everything should work.

Can somebody help me/us to understand what (probably basic) mistake are we missing? Thanks you in advance!

Ps: The named-trigger grafana-reconfigure is being called on bottom postinst script of grafana-conf. We've tried to remove such call but the loops keep appearing. Of course dpkg-trigger is never called inside "trigger" call. Named-trigger elastic-reconfigure is not being used at all.

Ps2: In some other scenarios I've got a loop such as: grafana-conf -> grafana-conf -> grafana-conf

Ralequi
  • 140
  • 3

0 Answers0