configure fails because postinst tries to get nonexistent db entries

Bug #1833310 reported by Johannes Rohr
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
postfixadmin (Ubuntu)
New
Undecided
Unassigned

Bug Description

This happens when I try to reinstall / reconfigure postfixadmin 3.0.2

postfixadmin (3.0.2-2) wird eingerichtet ...
dbconfig-common: writing config to /etc/dbconfig-common/postfixadmin.conf
dbconfig-common: flushing administrative password
dpkg: Fehler beim Bearbeiten des Paketes postfixadmin (--configure):
 installed postfixadmin package post-installation script subprocess returned error exit status 10
Fehler traten auf beim Bearbeiten von:
 postfixadmin
E: Sub-process /usr/bin/dpkg returned an error code (1)

When I set -x in the postinst script I get the following picture:

Setting up postfixadmin (3.0.2-2) ...
+ set -e
+ '[' configure = configure ']'
+ dbc_generate_include=php:/etc/postfixadmin/dbconfig.inc.php
+ dbc_generate_include_args='-O root:www-data -m 640 -U'
+ . /usr/share/debconf/confmodule
++ '[' '!' '' ']'
++ PERL_DL_NONLAZY=1
++ export PERL_DL_NONLAZY
++ '[' '' ']'
++ exec /usr/share/debconf/frontend /var/lib/dpkg/info/postfixadmin.postinst configure 3.0.2-2
+ set -e
+ '[' configure = configure ']'
+ dbc_generate_include=php:/etc/postfixadmin/dbconfig.inc.php
+ dbc_generate_include_args='-O root:www-data -m 640 -U'
+ . /usr/share/debconf/confmodule
++ '[' '!' 1 ']'
++ '[' -z '' ']'
++ exec
++ '[' '' ']'
++ exec
++ DEBCONF_REDIR=1
++ export DEBCONF_REDIR
+ . /usr/share/dbconfig-common/dpkg/postinst
+ dbc_go postfixadmin configure 3.0.2-2
+ local importing_from_non_dbc upgrading reconfiguring f tsubstfile upgrades_pending dbc_dumpfile _dbc_asuser reinstall nowtime need_adminpw _tmp_result
+ . /usr/share/dbconfig-common/dpkg/common
++ . /usr/share/dbconfig-common/internal/common
+++ '[' '' ']'
+++ _dbc_logfile=/var/log/dbconfig-common/dbc.log
+ _dbc_debug '(postinst) dbc_go() postfixadmin' configure 3.0.2-2
+ '[' '' ']'
+ dbc_no_thanks
+ local no_thanks_status
++ dpkg-query -W '-f=${db:Status-Want}' dbconfig-no-thanks
+ no_thanks_status=unknown
+ '[' unknown = install ']'
+ '[' unknown = hold ']'
+ return 1
+ dbc_config postfixadmin configure 3.0.2-2
+ _dbc_debug 'dbc_config() postfixadmin' configure 3.0.2-2
+ '[' '' ']'
+ dbc_share=/usr/share/dbconfig-common
+ dbc_package=postfixadmin
++ echo postfixadmin
++ cut -d_ -f1
+ dbc_basepackage=postfixadmin
+ dbc_command=configure
+ dbc_oldversion=3.0.2-2
+ _dbc_sanity_check package command
+ '[' 2 -ne 0 ']'
+ case "$1" in
+ '[' -z postfixadmin ']'
+ shift
+ '[' 1 -ne 0 ']'
+ case "$1" in
+ '[' -z configure ']'
+ shift
+ '[' 0 -ne 0 ']'
+ dbc_confdir=/etc/dbconfig-common
+ dbc_globalconfig=/etc/dbconfig-common/config
+ dbc_packageconfig=/etc/dbconfig-common/postfixadmin.conf
+ dbc_standard_templates='database-type dbconfig-install dbconfig-upgrade dbconfig-remove dbconfig-reinstall password-confirm app-password-confirm purge upgrade-backup passwords-do-not-match install-error upgrade-error remove-error internal/reconfiguring internal/skip-preseed missing-db-package-error'
+ dbc_mysql_templates='mysql/method remote/host remote/newhost mysql/app-pass mysql/admin-user mysql/admin-pass remote/port db/dbname db/app-user'
+ dbc_pgsql_templates='pgsql/method remote/host remote/newhost pgsql/app-pass pgsql/admin-user pgsql/admin-pass remote/port pgsql/authmethod-admin pgsql/authmethod-user pgsql/changeconf pgsql/manualconf db/dbname db/app-user pgsql/no-empty-passwords'
+ dbc_sqlite_templates='db/dbname db/basepath'
+ dbc_authenticated_dbtypes='mysql pgsql'
+ dbc_remote_dbtypes='mysql pgsql'
+ dbc_fs_dbtypes='sqlite sqlite3'
+ '[' -f /etc/dbconfig-common/config ']'
+ . /etc/dbconfig-common/config
++ dbc_remember_admin_pass=false
++ dbc_remote_questions_default=false
+ '[' '!' '' ']'
+ dbc_prio_low=low
+ '[' '!' '' ']'
+ dbc_prio_medium=medium
+ '[' '!' '' ']'
+ dbc_prio_high=high
+ '[' '!' '' ']'
+ dbc_prio_critical=critical
+ '[' false = true ']'
+ dbc_remote_questions_priority=low
+ dbc_default_pgsql_authmethod_admin=ident
+ dbc_set_dbtype_defaults
+ local happy supported_dbtypes comma
+ _dbc_debug 'dbc_set_dbtype_defaults() '
+ '[' '' ']'
+ '[' '' ']'
+ '[' '' ']'
+ dbc_default_basepath=
+ dbc_db_installed_cmd=dbc__db_installed
+ case $dbc_dbtype in
+ dbc_register_templates='database-type dbconfig-install dbconfig-upgrade dbconfig-remove dbconfig-reinstall password-confirm app-password-confirm purge upgrade-backup passwords-do-not-match install-error upgrade-error remove-error internal/reconfiguring internal/skip-preseed missing-db-package-error mysql/method remote/host remote/newhost mysql/app-pass mysql/admin-user mysql/admin-pass remote/port db/dbname db/app-user pgsql/method remote/host remote/newhost pgsql/app-pass pgsql/admin-user pgsql/admin-pass remote/port pgsql/authmethod-admin pgsql/authmethod-user pgsql/changeconf pgsql/manualconf db/dbname db/app-user pgsql/no-empty-passwords db/dbname db/basepath'
+ '[' '' ']'
+ dbc_dgi_on_manual=true
+ '[' configure = configure ']'
+ dbc_read_package_debconf
+ local tmp_dballow
+ _dbc_debug 'dbc_read_package_debconf() '
+ '[' '' ']'
+ _dbc_sanity_check package
+ '[' 1 -ne 0 ']'
+ case "$1" in
+ '[' -z postfixadmin ']'
+ shift
+ '[' 0 -ne 0 ']'
+ '[' '' ']'
+ '[' '!' '' ']'
+ db_get postfixadmin/database-type
+ _db_cmd 'GET postfixadmin/database-type'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'GET postfixadmin/database-type'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/database-type doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ dbc_set_dbtype_defaults
+ local happy supported_dbtypes comma
+ _dbc_debug 'dbc_set_dbtype_defaults() '
+ '[' '' ']'
+ '[' '' ']'
+ '[' '' ']'
+ dbc_default_basepath=
+ dbc_db_installed_cmd=dbc__db_installed
+ case $dbc_dbtype in
+ dbc_register_templates='database-type dbconfig-install dbconfig-upgrade dbconfig-remove dbconfig-reinstall password-confirm app-password-confirm purge upgrade-backup passwords-do-not-match install-error upgrade-error remove-error internal/reconfiguring internal/skip-preseed missing-db-package-error mysql/method remote/host remote/newhost mysql/app-pass mysql/admin-user mysql/admin-pass remote/port db/dbname db/app-user pgsql/method remote/host remote/newhost pgsql/app-pass pgsql/admin-user pgsql/admin-pass remote/port pgsql/authmethod-admin pgsql/authmethod-user pgsql/changeconf pgsql/manualconf db/dbname db/app-user pgsql/no-empty-passwords db/dbname db/basepath'
+ '[' '' ']'
+ db_get postfixadmin/dbconfig-install
+ _db_cmd 'GET postfixadmin/dbconfig-install'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'GET postfixadmin/dbconfig-install'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/dbconfig-install doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ db_get postfixadmin/dbconfig-upgrade
+ _db_cmd 'GET postfixadmin/dbconfig-upgrade'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'GET postfixadmin/dbconfig-upgrade'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/dbconfig-upgrade doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ db_get postfixadmin/dbconfig-remove
+ _db_cmd 'GET postfixadmin/dbconfig-remove'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'GET postfixadmin/dbconfig-remove'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/dbconfig-remove doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ echo 'mysql pgsql'
+ grep -q ''
+ db_get postfixadmin/db/app-user
+ _db_cmd 'GET postfixadmin/db/app-user'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'GET postfixadmin/db/app-user'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/db/app-user doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
++ echo '10 postfixadmin/db/app-user doesn'\''t exist'
++ sed 's/\(.*\)@\([^@]*\)/\1/'
+ dbc_dbuser='10 postfixadmin/db/app-user doesn'\''t exist'
++ echo '10 postfixadmin/db/app-user doesn'\''t exist'
++ sed -e 's/^[^@]*$//' -e 's/.*@\([^@]*\)/\1/'
+ tmp_dballow=
+ '[' ']'
+ '[' '' ']'
+ echo 'mysql pgsql'
+ grep -q ''
+ db_get postfixadmin/remote/host
+ _db_cmd 'GET postfixadmin/remote/host'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'GET postfixadmin/remote/host'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/remote/host doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ db_get postfixadmin/remote/port
+ _db_cmd 'GET postfixadmin/remote/port'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'GET postfixadmin/remote/port'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/remote/port doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ '[' '!' '' ']'
+ dbc_dbport=
+ echo 'sqlite sqlite3'
+ grep -qa ''
+ db_get postfixadmin/db/basepath
+ _db_cmd 'GET postfixadmin/db/basepath'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'GET postfixadmin/db/basepath'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/db/basepath doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ db_get postfixadmin/db/dbname
+ _db_cmd 'GET postfixadmin/db/dbname'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'GET postfixadmin/db/dbname'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/db/dbname doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ '[' -z '' ']'
+ '[' -z '' ']'
++ echo postfixadmin
++ tr -d +-.
+ dbc_dbname=postfixadmin
+ case $dbc_dbtype in
+ '[' '' ']'
+ dbc_write_package_config
+ local iformat ofile tfile
+ _dbc_debug 'dbc_write_package_config() '
+ '[' '' ']'
+ _dbc_sanity_check packageconfig
+ '[' 1 -ne 0 ']'
+ case "$1" in
+ '[' -z /etc/dbconfig-common/postfixadmin.conf ']'
+ shift
+ '[' 0 -ne 0 ']'
+ '[' '' ']'
+ echo 'dbconfig-common: writing config to /etc/dbconfig-common/postfixadmin.conf'
dbconfig-common: writing config to /etc/dbconfig-common/postfixadmin.conf
++ dbc_mktemp dbconfig-package-config.XXXXXX
++ local tfile ttemplate
++ '[' dbconfig-package-config.XXXXXX ']'
++ ttemplate=dbconfig-package-config.XXXXXX
+++ mktemp -t dbconfig-package-config.XXXXXX
++ tfile=/tmp/dbconfig-package-config.1XKHyx
++ '[' '!' -f /tmp/dbconfig-package-config.1XKHyx ']'
++ echo /tmp/dbconfig-package-config.1XKHyx
+ tfile=/tmp/dbconfig-package-config.1XKHyx
+ '[' '' ']'
+ '[' '' = 'TCP/IP + SSL' ']'
+ cat
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape 10 postfixadmin/db/app-user 'doesn'\''t' exist
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape postfixadmin
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dbc_sq_escape
++ sed -e 's,'\'','\''\\'\'''\'',g'
++ dirname /etc/dbconfig-common/postfixadmin.conf
+ mkdir -p /etc/dbconfig-common
+ ucf --debconf-ok /tmp/dbconfig-package-config.1XKHyx /etc/dbconfig-common/postfixadmin.conf
+ ucfr postfixadmin /etc/dbconfig-common/postfixadmin.conf
+ rm -f /tmp/dbconfig-package-config.1XKHyx
+ '[' '' '!=' true ']'
+ '[' true '!=' true ']'
+ '[' php:/etc/postfixadmin/dbconfig.inc.php ']'
+ echo php:/etc/postfixadmin/dbconfig.inc.php
+ grep -q -E '^[^:]*:'
++ echo php:/etc/postfixadmin/dbconfig.inc.php
++ cut -d: -f1
+ iformat=php
++ echo php:/etc/postfixadmin/dbconfig.inc.php
++ cut -d: -f2
+ ofile=/etc/postfixadmin/dbconfig.inc.php
+ '[' '!' -e /etc/postfixadmin/dbconfig.inc.php ']'
+ dbconfig-generate-include -a -f php -O root:www-data -m 640 -U -U /etc/dbconfig-common/postfixadmin.conf /etc/postfixadmin/dbconfig.inc.php
+ ucfr postfixadmin /etc/dbconfig-common/postfixadmin.conf
+ dbc_read_package_config
+ local _tmp_dbuser _tmp_basepath _tmp_dbname
+ _dbc_debug 'dbc_read_package_config() '
+ '[' '' ']'
+ _dbc_sanity_check package packageconfig
+ '[' 2 -ne 0 ']'
+ case "$1" in
+ '[' -z postfixadmin ']'
+ shift
+ '[' 1 -ne 0 ']'
+ case "$1" in
+ '[' -z /etc/dbconfig-common/postfixadmin.conf ']'
+ shift
+ '[' 0 -ne 0 ']'
+ '[' '' ']'
+ dbc_install=true
+ dbc_upgrade=true
+ '[' -f /etc/dbconfig-common/postfixadmin.conf ']'
+ . /etc/dbconfig-common/postfixadmin.conf
++ dbc_install=
++ dbc_upgrade=
++ dbc_remove=
++ dbc_dbtype=
++ dbc_dbuser='10 postfixadmin/db/app-user doesn'\''t exist'
++ dbc_dbpass=
++ dbc_dballow=
++ dbc_dbserver=
++ dbc_dbport=
++ dbc_dbname=postfixadmin
++ dbc_dbadmin=
++ dbc_basepath=
++ dbc_ssl=
++ dbc_authmethod_admin=
++ dbc_authmethod_user=
+ '[' '!' '' ']'
+ '[' -z '' ']'
+ dbc_dballow=localhost
+ '[' '' '!=' true ']'
+ dbc_postinst_cleanup
+ _dbc_debug 'dbc_postinst_cleanup() '
+ '[' '' ']'
+ echo 'mysql pgsql'
+ grep -q ''
+ '[' false '!=' true ']'
+ dbc_forget_dbadmin_password
+ _dbc_debug 'dbc_forget_dbadmin_password() '
+ '[' '' ']'
+ echo dbconfig-common: flushing administrative password
dbconfig-common: flushing administrative password
+ db_reset postfixadmin//admin-pass
+ _db_cmd 'RESET postfixadmin//admin-pass'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'RESET postfixadmin//admin-pass'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin//admin-pass doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ true
+ db_fset postfixadmin//admin-pass seen false
+ _db_cmd 'FSET postfixadmin//admin-pass' seen false
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'FSET postfixadmin//admin-pass seen false'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin//admin-pass doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ true
+ db_reset postfixadmin/password-confirm
+ _db_cmd 'RESET postfixadmin/password-confirm'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'RESET postfixadmin/password-confirm'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/password-confirm doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ true
+ db_fset postfixadmin/password-confirm seen false
+ _db_cmd 'FSET postfixadmin/password-confirm' seen false
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'FSET postfixadmin/password-confirm seen false'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/password-confirm doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ true
+ '[' '' '!=' true ']'
+ dbc_forget_app_password
+ _dbc_debug 'dbc_forget_app_password() '
+ '[' '' ']'
+ db_reset postfixadmin//app-pass
+ _db_cmd 'RESET postfixadmin//app-pass'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'RESET postfixadmin//app-pass'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin//app-pass doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ true
+ db_fset postfixadmin//app-pass seen false
+ _db_cmd 'FSET postfixadmin//app-pass' seen false
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'FSET postfixadmin//app-pass seen false'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin//app-pass doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ true
+ db_reset postfixadmin/app-password-confirm
+ _db_cmd 'RESET postfixadmin/app-password-confirm'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'RESET postfixadmin/app-password-confirm'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/app-password-confirm doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ true
+ db_fset postfixadmin/app-password-confirm seen false
+ _db_cmd 'FSET postfixadmin/app-password-confirm' seen false
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'FSET postfixadmin/app-password-confirm seen false'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/app-password-confirm doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ true
+ db_reset postfixadmin/internal/skip-preseed
+ _db_cmd 'RESET postfixadmin/internal/skip-preseed'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'RESET postfixadmin/internal/skip-preseed'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/internal/skip-preseed doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ db_reset postfixadmin/internal/reconfiguring
+ _db_cmd 'RESET postfixadmin/internal/reconfiguring'
+ _db_internal_IFS='
'
+ IFS=' '
+ printf '%s\n' 'RESET postfixadmin/internal/reconfiguring'
+ IFS='
'
+ IFS='
'
+ read -r _db_internal_line
+ RET='10 postfixadmin/internal/reconfiguring doesn'\''t exist'
+ case ${_db_internal_line%%[ ]*} in
+ return 10
+ return 10
dpkg: error processing package postfixadmin (--configure):
 installed postfixadmin package post-installation script subprocess returned error exit status 10
Errors were encountered while processing:
 postfixadmin

So obviously, it queries debconf for a value that does not exits and then exits with a failure

When I run debconf-show postfixadmin I find the result to be empty. However, I know too little about debconf magic to actually make sense of this. Maybe you know what is wrong here..

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.