From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20020830 Description of problem: After an `Everything' install of Red Hat Linux 8.0, selecting en_US as the default language and pt_BR as the only additional language, attempting to update to the glibc test packages at ftp://people.redhat.com/jakub/glibc/2.3-1 fails with the following error: error: %post(glibc-common-2.3-1) scriptlet failed, exit status 0 After this error, the system appears to be functional, but glibc-common-2.2.93-5 claims to still be installed, in addition to glibc-common-2.3-1. After removing glibc-common-2.2.93-5, the system appears to still be usable, but I rpm -U --replacepkgs glibc-common-2.3-1 again just in case, and the same error message shows up again and again on *most* (but not all) machines in which I followed this procedure. Another minor problem is that, unlike the system installation, that installs locales only for the selected languages, rpm -U will install all locales, so glibc-common ends up taking much more disk space. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1.rpm -U glibc-2.3-1.i686.rpm glibc-common-2.3-1.i386.rpm etc etc (on both athlon and i686 boxes) 2.rpm -e glibc-common-2.2.95-3 3.rpm -U --replacepkgs glibc-common-2.3-1.i386.rpm 4.repeat 3 over and over until the error message is gone or your patience is over Actual Results: The error message is still there, and I'm worried that there may be something broken on my systems, even though this happened with the glibc updates on null too and the system was functional afterwards. Expected Results: The first rpm -U shouldn't have failed. Additional info: Is this scriptlet failure serious, doc? :-)
Further investigation has revealed that it is build-locale-archive that crashes with a segmentation fault: Starting program: /usr/sbin/build-locale-archive warning: shared library handler failed to enable breakpoint Program received signal SIGSEGV, Segmentation fault. 0x0804bbd0 in ?? () (gdb) where #0 0x0804bbd0 in ?? () #1 0x0804bb22 in ?? () #2 0x0804c6bc in ?? () #3 0x0804b4a3 in ?? () #4 0x0804961e in ?? () #5 0x08049e3f in ?? () #6 0x0804a70e in ?? () #7 0x0804864f in ?? () #8 0x0804c81c in ?? () strace says: [...] open("/usr/lib/locale/locale-archive.GstyG6", O_RDWR|O_CREAT|O_EXCL, 0600) = 3 write(3, "\t\1\2\336\0\0\0\0008\0\0\0\0\0\0\0\213\3\0\0\274*\0\0"..., 56) = 56 ftruncate64(0x3, 0x235fc) = 0 mmap2(NULL, 144892, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x4012b000 fcntl64(3, F_SETLKW64, {type=F_WRLCK, whence=SEEK_CUR, start=0, len=144892}, 0xbffeb020) = 0 --- SIGSEGV (Segmentation fault) --- Curiously, it crashes after a complete /usr/lib/locale/locale-archive file was created, and for some reason it then proceeds to create yet another locale-archive.
Another interesting data point: if I rm -rf /usr/lib/locale/*_* before the update from 2.2.93-5, the problem does not occur, build-locale-archive runs just fine. Perhaps there's some junk that is installed by glibc-2.2.93-5 and is used by build-locale-archive before it is removed by the upgrade?
Should be fixed in rawhide glibc.