Skip to content

Grommunio-admin-api-mod-vts lacks Replaces/Breaks, aborting dpkg upgrade with a file conflict #82

Description

@toolonghere

Type: bug

Description

The new package grommunio-admin-api-mod-vts ships two files that were previously part of
grommunio-admin-web:

/usr/share/grommunio-admin-common/traffic-dfl.conf
/usr/share/grommunio-admin-common/traffic-sm.conf

It declares no Replaces: (nor Breaks:) against the older grommunio-admin-web, so dpkg refuses
to unpack it while the old version still owns those paths. The upgrade aborts:

Preparing to unpack .../08-grommunio-admin-api-mod-vts_1.20.37.mcb44ef4-1+57.1_all.deb ...
Unpacking grommunio-admin-api-mod-vts (1.20.37.mcb44ef4-1+57.1) ...
dpkg: error processing archive .../grommunio-admin-api-mod-vts_1.20.37.mcb44ef4-1+57.1_all.deb (--unpack):
 trying to overwrite '/usr/share/grommunio-admin-common/traffic-dfl.conf', which is also in package grommunio-admin-web 5.0.0.53.422db45-1+191.1
...
Errors were encountered while processing:
 /tmp/apt-dpkg-install-0lqhNZ/08-grommunio-admin-api-mod-vts_1.20.37.mcb44ef4-1+57.1_all.deb
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)

Why this is worse than it looks

apt orders the unpack alphabetically, so grommunio-admin-api-mod-vts (position 08) is unpacked
before grommunio-admin-web (position 09) — that is, before the package that would have given
up ownership of the file. Had the order been reversed the conflict would not have occurred, which
makes the failure look intermittent across sites.

When dpkg aborts, everything already unpacked is left unconfigured:

iU  gromox                3.9.294.md91535b-1+56.1
iU  grommunio-web         3.19.29.gad86b8d5d-1+551.1
iU  grommunio-admin-api   1.20.37.mcb44ef4-1+57.1
iU  mapi-header-php       2.2.6.762bf33-1+19.1
...

New binaries are on disk while the running services still hold the old ones mapped. The system keeps
working, but a reboot in that window would start new binaries whose postinst — including gromox
schema migration — never ran. On a mail server that is a bad state to leave unattended, and the
operator gets no indication of urgency beyond the apt error.

Workaround

Re-running apt succeeds, because the file has meanwhile been removed by the newer
grommunio-admin-web unpack that followed the failure:

apt --fix-broken install

If it is hit before that point:

dpkg -i --force-overwrite /var/cache/apt/archives/grommunio-admin-api-mod-vts_*.deb
apt --fix-broken install

Suggested fix

Add to grommunio-admin-api-mod-vts:

Replaces: grommunio-admin-web (<< 5.0.0.57)
Breaks:   grommunio-admin-web (<< 5.0.0.57)

Breaks in addition to Replaces makes apt order the upgrade so the two packages are never
momentarily inconsistent.

Steps to reproduce

  1. Ubuntu 24.04 with grommunio-admin-web 5.0.0.53.422db45-1+191.1 installed.
  2. apt upgrade with community/Ubuntu_24.04 offering 1.20.37.mcb44ef4-1+57.1.

Expected: the upgrade completes.
Actual: dpkg aborts on the file conflict; several packages are left in iU.

Environment

grommunio-admin-api      1.20.23 → 1.20.37.mcb44ef4-1+57.1
grommunio-admin-web      5.0.0.53 → 5.0.0.57.5f7154c-1+197.1
gromox                   3.9.195 → 3.9.294.md91535b-1+56.1
OS                       Ubuntu 24.04.4 LTS
Repo                     community/Ubuntu_24.04

Note

grommunio-admin-api-mod-vts is a Recommends of grommunio-admin-api, not a Depends, so a site
that skips it stays consistent — but apt will retry it on every subsequent run until it succeeds.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions