Bug#27587: More core dumps with i18n systems
Hi,
I've found that dpkg core dumps when trying to update a conffile that
does not exist. It happened to me while switching from samba_1.x
to samba_2.x :
Here's the (partial) output dpkg -D (more informations at the end) :
D000010: ensure_pathname_nonexisting `/var/lib/dpkg/tmp.ci'
(Lecture de la base de données ... 54101 fichiers et répertoires déjà installés.)
Préparation de la mise à jour de samba 1.9.18p10-7 (en utilisant .../net/samba_1.9.18p10-7.deb) ...
D000200: process_archive conffile `/etc/smb.conf' in package samba - conff ?
D000020: process_archive conffile `/etc/smb.conf' package=samba same hash=bf74936c23c237a62048dd29b42689a5
D000200: process_archive conffile `/etc/cron.daily/samba' in package samba - conff ?
D000200: process_archive conffile `/etc/cron.daily/samba' in package samba - conff ? not `/etc/smb.conf'
D000020: process_archive conffile `/etc/cron.daily/samba' package=samba same hash=421ce1ceacfd49cdc16aee1553b2ee51
D000200: process_archive conffile `/etc/cron.weekly/samba' in package samba - conff ?
D000200: process_archive conffile `/etc/cron.weekly/samba' in package samba - conff ? not `/etc/smb.conf'
D000200: process_archive conffile `/etc/cron.weekly/samba' in package samba - conff ? not `/etc/cron.daily/samba'
D000020: process_archive conffile `/etc/cron.weekly/samba' package=samba same hash=fef1d5d32391e0a8080e143eea9eb72d
D000200: process_archive conffile `/etc/init.d/samba' in package samba - conff ?
D000200: process_archive conffile `/etc/init.d/samba' in package samba - conff ? not `/etc/smb.conf'
D000200: process_archive conffile `/etc/init.d/samba' in package samba - conff ? not `/etc/cron.daily/samba'
D000200: process_archive conffile `/etc/init.d/samba' in package samba - conff ? not `/etc/cron.weekly/samba'
D000020: process_archive conffile `/etc/init.d/samba' package=samba same hash=22d13a42f053a43bf25fa60a9458b535
D000200: oldconffsetflags `/etc/smb.conf' namenode 0x85f1de0 flags 5
D000200: oldconffsetflags `/etc/cron.daily/samba' namenode 0x85f1d68 flags 5
D000200: oldconffsetflags `/etc/cron.weekly/samba' namenode 0x85f1d20 flags 5
D000200: oldconffsetflags `/etc/init.d/samba' namenode 0x85f2158 flags 5
D000001: process_archive oldversionstatus=unpacked but not configured conflictor=<none>
D000002: maintainer_script_new nonexistent preinst `/var/lib/dpkg/tmp.ci/preinst'
Dépaquetage de la mise à jour de samba ...
D000200: conffderef in=`etc/init.d/samba' current working=`/etc/init.d/samba'
D000020: conffderef in=`etc/init.d/samba' result=`/etc/init.d/samba'
D000020: tarobject fnnf_new_conff deref=`etc/init.d/samba'
D000200: tarobject conffile extracted
D000020: conffderef in=`etc/smb.conf' result=`/etc/smb.conf'
D000020: tarobject fnnf_new_conff deref=`etc/smb.conf'
D000200: tarobject conffile extracted
D000200: conffderef in=`etc/cron.daily/samba' current working=`/etc/cron.daily/samba'
D000020: conffderef in=`etc/cron.daily/samba' result=`/etc/cron.daily/samba'
D000020: tarobject fnnf_new_conff deref=`etc/cron.daily/samba'
D000200: tarobject conffile extracted
D000200: conffderef in=`etc/cron.weekly/samba' current working=`/etc/cron.weekly/samba'
D000200: conffderef nonexistent
D000020: tarobject fnnf_new_conff deref=`etc/cron.weekly/samba'
D000200: tarobject conffile extracted
D000002: fork/exec /var/lib/dpkg/info/samba.postrm ( postrm upgrade 1.9.18p10-7 )
D002000: process_archive info this pkg
D000002: process_archive info installed /var/lib/dpkg/tmp.ci/postinst as /var/lib/dpkg/info//samba.postinst
Paramétrage de samba (1.9.18p10-7) ...
D000001: deferred_configure updating conffiles
D000200: conffderef in=`/etc/smb.conf' current working=`/etc/smb.conf'
D000020: conffderef in=`/etc/smb.conf' result=`/etc/smb.conf'
D000020: deferred_configure `/etc/smb.conf' (= `/etc/smb.conf') useredited=-1 distedited=-1 what=2
D000200: conffderef in=`/etc/cron.daily/samba' current working=`/etc/cron.daily/samba'
D000020: conffderef in=`/etc/cron.daily/samba' result=`/etc/cron.daily/samba'
D000020: deferred_configure `/etc/cron.daily/samba' (= `/etc/cron.daily/samba') useredited=-1 distedited=-1 what=2
D000200: conffderef in=`/etc/cron.weekly/samba' current working=`/etc/cron.weekly/samba'
D000200: conffderef nonexistent
D000020: deferred_configure `/etc/cron.weekly/samba' (= `/etc/cron.weekly/samba') useredited=1 distedited=1 what=3
Fichier de configuration `/etc/cron.weekly/samba'
==> Fichier du système créé par vous ou par un script.
==> Fichier également dans le paquet fourni par le responsable du paquet.
Que voulez-vous faire ? Vos options sont:
Y ou I : installer la version du responsable du paquet
N ou O : garder votre version actuellement installée
Z : suspendre ce processus pour examiner la situation
L'action par défaut est de garder votre version actuelle.
*** samba (Y/I/N/O/Z) [défaut=N] ?
Here it core dumps. However when doing the same thing with LC_ALL=C i've
got no problem :
(Reading database ... 54101 files and directories currently installed.)
Preparing to replace samba 1.9.18p10-7 (using .../net/samba_1.9.18p10-7.deb) ...
D000200: process_archive conffile `/etc/smb.conf' in package samba - conff ?
D000020: process_archive conffile `/etc/smb.conf' package=samba same hash=bf74936c23c237a62048dd29b42689a5
D000200: process_archive conffile `/etc/cron.daily/samba' in package samba - conff ?
D000200: process_archive conffile `/etc/cron.daily/samba' in package samba - conff ? not `/etc/smb.conf'
D000020: process_archive conffile `/etc/cron.daily/samba' package=samba same hash=421ce1ceacfd49cdc16aee1553b2ee51
D000200: process_archive conffile `/etc/cron.weekly/samba' in package samba - conff ?
D000200: process_archive conffile `/etc/cron.weekly/samba' in package samba - conff ? not `/etc/smb.conf'
D000200: process_archive conffile `/etc/cron.weekly/samba' in package samba - conff ? not `/etc/cron.daily/samba'
D000020: process_archive conffile `/etc/cron.weekly/samba' package=samba same hash=fef1d5d32391e0a8080e143eea9eb72d
D000200: process_archive conffile `/etc/init.d/samba' in package samba - conff ?
D000200: process_archive conffile `/etc/init.d/samba' in package samba - conff ? not `/etc/smb.conf'
D000200: process_archive conffile `/etc/init.d/samba' in package samba - conff ? not `/etc/cron.daily/samba'
D000200: process_archive conffile `/etc/init.d/samba' in package samba - conff ? not `/etc/cron.weekly/samba'
D000020: process_archive conffile `/etc/init.d/samba' package=samba same hash=22d13a42f053a43bf25fa60a9458b535
D000200: oldconffsetflags `/etc/smb.conf' namenode 0x85f0b58 flags 5
D000200: oldconffsetflags `/etc/cron.daily/samba' namenode 0x85f0ae0 flags 5
D000200: oldconffsetflags `/etc/cron.weekly/samba' namenode 0x85f0a98 flags 5
D000200: oldconffsetflags `/etc/init.d/samba' namenode 0x85f0ed0 flags 5
D000002: maintainer_script_new nonexistent preinst `/var/lib/dpkg/tmp.ci/preinst'
Unpacking replacement samba ...
D000200: conffderef in=`etc/init.d/samba' current working=`/etc/init.d/samba'
D000020: conffderef in=`etc/init.d/samba' result=`/etc/init.d/samba'
D000020: tarobject fnnf_new_conff deref=`etc/init.d/samba'
D000200: tarobject conffile extracted
D000200: conffderef in=`etc/smb.conf' current working=`/etc/smb.conf'
D000020: conffderef in=`etc/smb.conf' result=`/etc/smb.conf'
D000020: tarobject fnnf_new_conff deref=`etc/smb.conf'
D000200: tarobject conffile extracted
D000200: conffderef in=`etc/cron.daily/samba' current working=`/etc/cron.daily/samba'
D000020: conffderef in=`etc/cron.daily/samba' result=`/etc/cron.daily/samba'
D000020: tarobject fnnf_new_conff deref=`etc/cron.daily/samba'
D000200: tarobject conffile extracted
D000200: conffderef in=`etc/cron.weekly/samba' current working=`/etc/cron.weekly/samba'
D000200: conffderef nonexistent
D000020: tarobject fnnf_new_conff deref=`etc/cron.weekly/samba'
D000200: tarobject conffile extracted
D000002: fork/exec /var/lib/dpkg/info/samba.postrm ( postrm upgrade 1.9.18p10-7 )
D002000: process_archive info this pkg
D000002: process_archive info installed /var/lib/dpkg/tmp.ci/postinst as /var/lib/dpkg/info//samba.postinst
D002000: process_archive info this pkg
D002000: process_archive info this pkg
D000002: process_archive info installed /var/lib/dpkg/tmp.ci/prerm as /var/lib/dpkg/info//samba.prerm
D002000: process_archive info this pkg
D000002: process_archive info installed /var/lib/dpkg/tmp.ci/postrm as /var/lib/dpkg/info//samba.postrm
D002000: process_archive info this pkg
D000002: process_archive info installed /var/lib/dpkg/tmp.ci/conffiles as /var/lib/dpkg/info//samba.conffiles
D002000: process_archive info this pkg
D000002: process_archive info installed /var/lib/dpkg/tmp.ci/md5sums as /var/lib/dpkg/info//samba.md5sums
D000002: process_archive tmp.ci script/file `.' contains dot
D000002: process_archive tmp.ci script/file `..' contains dot
D000002: process_archive tmp.ci script/file `/var/lib/dpkg/tmp.ci/control' is control
Setting up samba (1.9.18p10-7) ...
D000200: conffderef in=`/etc/smb.conf' current working=`/etc/smb.conf'
D000020: conffderef in=`/etc/smb.conf' result=`/etc/smb.conf'
D000020: deferred_configure `/etc/smb.conf' (= `/etc/smb.conf') useredited=-1 distedited=-1 what=2
D000200: conffderef in=`/etc/cron.daily/samba' current working=`/etc/cron.daily/samba'
D000020: conffderef in=`/etc/cron.daily/samba' result=`/etc/cron.daily/samba'
D000020: deferred_configure `/etc/cron.daily/samba' (= `/etc/cron.daily/samba') useredited=-1 distedited=-1 what=2
D000200: conffderef in=`/etc/cron.weekly/samba' current working=`/etc/cron.weekly/samba'
D000200: conffderef nonexistent
D000020: deferred_configure `/etc/cron.weekly/samba' (= `/etc/cron.weekly/samba') useredited=1 distedited=1 what=3
Configuration file `/etc/cron.weekly/samba'
==> File on system created by you or by a script.
==> File also in package provided by package maintainer.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
Z : background this process to examine the situation
The default action is to keep your current version.
*** samba (Y/I/N/O/Z) [default=N] ? dpkg: samba: warning - failed to link `/etc/cron.weekly/samba' to `/etc/cron.weekly/samba.dpkg-old': No such file or directory
Installing new version of config file /etc/cron.weekly/samba ...
D000200: conffderef in=`/etc/init.d/samba' current working=`/etc/init.d/samba'
D000020: conffderef in=`/etc/init.d/samba' result=`/etc/init.d/samba'
D000020: deferred_configure `/etc/init.d/samba' (= `/etc/init.d/samba') useredited=0 distedited=1 what=4
Installing new version of config file /etc/init.d/samba ...
D000002: fork/exec /var/lib/dpkg/info/samba.postinst ( postinst configure 2.0.0final-3 )
Samba was already installed and configured so I skipped the
configuration questions. You can run the script /usr/sbin/sambaconfig
at any time to reconfigure Samba. See sambaconfig(8) for more
details. I will not even ask you if you want to restart Samba,
I will just do it!
Starting Samba daemons: nmbd smbd.
-----
And it appears to be a problem of the internationalization, the core dump
is in a dcgettext call.
I've also managed to do a similar core dump with the upgrade of afterstep,
the problem was similar. It core dumped with LC_ALL=fr_fr and it worked
(showing an error message "dpkg: warning: unable to delete old files") with
LC_ALL=C.
HTH
--
Raphaël Hertzog >> 0C4CABF1 >> http://prope.insa-lyon.fr/~rhertzog/
Reply to: