Gentoo Archives: gentoo-user

From: Andreas Fink <finkandreas@×××.de>
To: gentoo-user@l.g.o
Subject: [gentoo-user] emerge stuck after dovecot upgrade
Date: Thu, 21 May 2020 04:44:57
Message-Id: 1MN6FV-1jJGju46on-00Iyw8@smtp.web.de
Hello,
recently emerge started to get stuck after an upgrade of dovecot, and it is somehow
related to my /etc/portage/bashrc, which has the following content:
function post_pkg_postinst() {
    if test "$CATEGORY/$PN" = "dev-db/mariadb"; then
        /etc/init.d/mysql status && /etc/init.d/mysql restart
    elif test "$CATEGORY/$PN" = "www-servers/apache"; then
        /etc/init.d/apache2 status && /etc/init.d/apache2 restart
    elif test "$CATEGORY/$PN" = "net-mail/dovecot"; then
        /etc/init.d/dovecot status && /etc/init.d/dovecot restart
        echo 'going to sleep'
        sleep 5
        echo 'finished sleeping'
    elif test "$CATEGORY/$PN" = "mail-mta/postfix"; then
        /etc/init.d/postfix status && /etc/init.d/postfix restart
    elif test "$CATEGORY/$PN" = "net-misc/openssh"; then
        /etc/init.d/sshd status && /etc/init.d/sshd restart
    fi
}


I restart dovecot after an upgrade, in the same way as I restart e.g. postfix. However
for dovecot emerge gets stuck and does not continue and is sitting there quietly
(killable only via `pkill -9 emerge`). These are the last lines in my /var/log/emerge.log:
1590023821:  === (17 of 26) Post-Build Cleaning (net-dns/bind-tools-9.16.3::/usr/portage/net-dns/bind-tools/bind-tools-9.16.3.ebuild)
1590023821:  ::: completed emerge (17 of 26) net-dns/bind-tools-9.16.3 to /
1590023821:  >>> emerge (18 of 26) net-mail/dovecot-2.3.10.1 to /
1590023821:  === (18 of 26) Cleaning (net-mail/dovecot-2.3.10.1::/usr/portage/net-mail/dovecot/dovecot-2.3.10.1.ebuild)
1590023821:  === (18 of 26) Compiling/Packaging (net-mail/dovecot-2.3.10.1::/usr/portage/net-mail/dovecot/dovecot-2.3.10.1.ebuild)
1590024325:  === (18 of 26) Merging (net-mail/dovecot-2.3.10.1::/usr/portage/net-mail/dovecot/dovecot-2.3.10.1.ebuild)
1590024331:  >>> AUTOCLEAN: net-mail/dovecot:0
1590024331:  === Unmerging... (net-mail/dovecot-2.3.10)
1590024334:  >>> unmerge success: net-mail/dovecot-2.3.10

So it is missing the "Post-Build Cleaning" and the "completed emerge" line for dovecot.
Lokking into the temporary build directory of portage I can see see only a single file
being left (PORTAGE_TMPDIR="/home/portage/tmp):
/home/portage/tmp/portage/net-mail/.dovecot-2.3.10.1.portage_lockfile
There are no build artifacts left, it's clean and empty, only the lockfile is still there.

Restarting the upgrade process with `emerge -auvDN @world` wouldn't retry to upgrade
dovecot, so I guess it actually got merged and registered as being successfully merged.

I'm kind of lost, why upgrading dovecot gets emerge stuck, but upgrading e.g. openssh or
postfix works correctly and the services are being restarted the same way as dovecot in
/etc/portage/bashrc.

One last note, doing the merge manually with the commands
ebuild /path/to/dovecot.ebuild compile
ebuild /path/to/dovecot.ebuild install
ebuild /path/to/dovecot.ebuild qmerge
will get stuck in the qmerge step, but it is killable with a regular SIGINT/SIGTERM.

Any ideas how I can debug this any further? I assume that emerge is waiting for some
children and the forking in dovecot is different than in openssh, but I'm unsure how I
can debug this. I even tried to background everything like this:
    /etc/init.d/dovecot status && ( ( bash -c '/etc/init.d/dovecot restart &' ) & )

The last successful full upgrade of dovecot was
2020-03-21T14:06:21 >>> net-mail/dovecot-2.3.10: 7 minutes, 15 seconds
The first failed full merge was on April 30th and last night again.

After that portage has been updated to these versions:
2020-03-21T11:15:55 >>> sys-apps/portage-2.3.94: 48 seconds
2020-03-23T18:30:34 >>> sys-apps/portage-2.3.95: 56 seconds
2020-03-26T05:37:17 >>> sys-apps/portage-2.3.96-r1: 47 seconds
2020-03-28T04:23:23 >>> sys-apps/portage-2.3.96-r1: 43 seconds
2020-04-09T10:00:41 >>> sys-apps/portage-2.3.97: 48 seconds
2020-04-11T09:39:30 >>> sys-apps/portage-2.3.98-r1: 43 seconds
2020-04-13T07:05:40 >>> sys-apps/portage-2.3.99-r1: 48 seconds
2020-04-22T03:15:44 >>> sys-apps/portage-2.3.99-r2: 44 seconds
2020-05-01T03:50:56 >>> sys-apps/portage-2.3.99-r2: 57 seconds
2020-05-07T13:44:14 >>> sys-apps/portage-2.3.99-r2: 42 seconds

Any help is appreciated :)
Cheers
Andreas

Replies

Subject Author
Re: [gentoo-user] emerge stuck after dovecot upgrade Neil Bothwick <neil@××××××××××.uk>