Bug#53680: libc6: Some locales have broken
To follow up your message description.
I've had the same problem. I'm running several systems
localized to Spanish (es_ES.ISO-8859-1), and they've also broken. I've
been able to trace the problem to the call to setlocale (LC_ALL, ""),
having environment LANG=es_ES.ISO-8859-1. Tried other locales
(randomly) and also failed.
Curious symptoms: fileutils, for example; I try to rm -i a
file, it asks in Spanish, but expects the response in
English. Answering 's' should be ok to remove the file, but I have to
say 'y' if I want it done. Here is an strace of such an execution:
lithium:~ $ touch /tmp/t
# First I'll answer 'y'
lithium:~ $ strace rm -i /tmp/t
execve("/bin/rm", ["rm", "-i", "/tmp/t"], [/* 37 vars */]) = 0
brk(0) = 0x804dec4
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=16753, ...}) = 0
mmap(NULL, 16753, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=885048, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0D\211\1"..., 4096) = 4096
mmap(NULL, 899420, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40019000
mprotect(0x400ed000, 31068, PROT_NONE) = 0
mmap(0x400ed000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd3000) = 0x400ed000
mmap(0x400f1000, 14684, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400f1000
close(3) = 0
munmap(0x40014000, 16753) = 0
personality(PER_LINUX) = 0
getpid() = 14293
brk(0) = 0x804dec4
brk(0x804defc) = 0x804defc
brk(0x804e000) = 0x804e000
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2224, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2224
brk(0x804f000) = 0x804f000
read(3, "", 4096) = 0
close(3) = 0
munmap(0x40014000, 4096) = 0
open("/usr/share/i18n/locale.alias", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es_ES.ISO-8859-1/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/i18n/es_ES.ISO-8859-1/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es_ES.iso88591/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/i18n/es_ES.iso88591/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es_ES/LC_MESSAGES", O_RDONLY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
close(3) = 0
open("/usr/share/locale/es_ES/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44, ...}) = 0
mmap(NULL, 44, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
munmap(0x40014000, 44) = 0
close(3) = 0
open("/usr/share/i18n/es_ES/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es.ISO-8859-1/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/i18n/es.ISO-8859-1/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es.iso88591/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/i18n/es.iso88591/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es/LC_MESSAGES", O_RDONLY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
close(3) = 0
open("/usr/share/locale/es/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/i18n/es/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
ioctl(0, TCGETS, {B38400 opost isig icanon -echo ...}) = 0
brk(0x8050000) = 0x8050000
brk(0x8051000) = 0x8051000
lstat("/tmp/t", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
access("/tmp/t", W_OK) = 0
brk(0x8052000) = 0x8052000
open("/usr/share/locale/es_ES.ISO-8859-1/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es_ES.iso88591/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es_ES/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es.ISO-8859-1/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es.iso88591/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es/LC_MESSAGES/fileutils.mo", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=42910, ...}) = 0
mmap(NULL, 42910, PROT_READ, MAP_PRIVATE, 3, 0) = 0x400f5000
close(3) = 0
write(2, "rm: \277borrar `/tmp/t\'? (s/n) ", 28) = 28
fstat(0, {st_mode=S_IFCHR|0666, st_rdev=makedev(3, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
ioctl(0, TCGETS, {B38400 opost isig icanon -echo ...}) = 0
read(0, y
"y\n", 4096) = 2
unlink("/tmp/t") = 0
_exit(0) = ?
lithium:~ $ touch /tmp/t
lithium:~ $ strace rm -i /tmp/t
execve("/bin/rm", ["rm", "-i", "/tmp/t"], [/* 37 vars */]) = 0
brk(0) = 0x804dec4
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=16753, ...}) = 0
mmap(NULL, 16753, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=885048, ...}) = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0D\211\1"..., 4096) = 4096
mmap(NULL, 899420, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40019000
mprotect(0x400ed000, 31068, PROT_NONE) = 0
mmap(0x400ed000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd3000) = 0x400ed000
mmap(0x400f1000, 14684, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400f1000
close(3) = 0
munmap(0x40014000, 16753) = 0
personality(PER_LINUX) = 0
getpid() = 14298
brk(0) = 0x804dec4
brk(0x804defc) = 0x804defc
brk(0x804e000) = 0x804e000
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2224, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2224
brk(0x804f000) = 0x804f000
read(3, "", 4096) = 0
close(3) = 0
munmap(0x40014000, 4096) = 0
open("/usr/share/i18n/locale.alias", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es_ES.ISO-8859-1/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/i18n/es_ES.ISO-8859-1/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es_ES.iso88591/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/i18n/es_ES.iso88591/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es_ES/LC_MESSAGES", O_RDONLY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
close(3) = 0
open("/usr/share/locale/es_ES/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44, ...}) = 0
mmap(NULL, 44, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
munmap(0x40014000, 44) = 0
close(3) = 0
open("/usr/share/i18n/es_ES/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es.ISO-8859-1/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/i18n/es.ISO-8859-1/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es.iso88591/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/i18n/es.iso88591/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es/LC_MESSAGES", O_RDONLY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0
close(3) = 0
open("/usr/share/locale/es/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/i18n/es/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory)
ioctl(0, TCGETS, {B38400 opost isig icanon -echo ...}) = 0
brk(0x8050000) = 0x8050000
brk(0x8051000) = 0x8051000
lstat("/tmp/t", {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
access("/tmp/t", W_OK) = 0
brk(0x8052000) = 0x8052000
open("/usr/share/locale/es_ES.ISO-8859-1/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es_ES.iso88591/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es_ES/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es.ISO-8859-1/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es.iso88591/LC_MESSAGES/fileutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/es/LC_MESSAGES/fileutils.mo", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=42910, ...}) = 0
mmap(NULL, 42910, PROT_READ, MAP_PRIVATE, 3, 0) = 0x400f5000
close(3) = 0
write(2, "rm: \277borrar `/tmp/t\'? (s/n) ", 28) = 28
fstat(0, {st_mode=S_IFCHR|0666, st_rdev=makedev(3, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000
ioctl(0, TCGETS, {B38400 opost isig icanon -echo ...}) = 0
read(0, s
"s\n", 4096) = 2
_exit(0) = ?
--
Iñaky -- inaky at teknoland dot com dot
99 bugs in the code, fix one, compile again ...
101 bugs in the code, fix one, compile again ..
103 bu...
Reply to: