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

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: