[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: