Deb-Paket-Triggerschleifen

Deb-Paket-Triggerschleifen

Ich habe ein wiederkehrendes Problem mit benutzerdefinierten .deb-Paketen und ihren Triggern. Wir haben einige „Metapakete“ für unsere Bereitstellungen erstellt, um einige Konfigurationen zu erzwingen und zu überprüfen. Die Idee besteht darin, viele Server mit der „gleichen“ Konfiguration zu halten, ohne sie bei jedem Update manuell überprüfen zu müssen. Nennen wir sie als Beispiel:grafana-confUndelasticsearch-conf.

Um die Neukonfigurationsskripte auszuführen, wenn das „untergeordnete Paket“ aktualisiert wird, verwenden wir die folgenden Auslöser.

  • grafana-conflöst aus:
interest /usr/share/grafana
interest grafana-reconfigure

  • elasticsearch-conflöst aus:
interest /usr/share/elasticsearch/bin
interest elastic-reconfigure

Von Zeit zu Zeit funktioniert es wie erwartet, aber in manchen Fällen meldet dpkg, dass eine Triggerschleife vorliegt. In diesem Fall erhalten wir die folgenden Meldungen, wenn elasticsearchund grafanabei derselben Transaktion aktualisiert werden:

[...]
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

Wir haben viele Variationen der Trigger getestet, aber wir verstehen nicht, was da schief läuft. Laut Debian/Deb-Dokumentation sollte alles funktionieren.

Kann mir/uns jemand helfen zu verstehen, welchen (wahrscheinlich grundlegenden) Fehler wir übersehen haben? Vielen Dank im Voraus!

P.S.: Der Named-Trigger grafana-reconfigurewird im unteren Postinst-Skript vongrafana-conf. Wir haben versucht, einen solchen Aufruf zu entfernen, aber die Schleifen tauchen immer wieder auf. Natürlich dpkg-triggerwird es nie innerhalb eines „Trigger“-Aufrufs aufgerufen. Benannte Trigger elastic-reconfigurewerden überhaupt nicht verwendet.

Ps2: In einigen anderen Szenarien habe ich eine Schleife wie:grafana-conf -> grafana-conf -> grafana-conf

verwandte Informationen