leak v glibc?
Stanislav Meduna
stano na trillian.eunet.sk
Středa Únor 17 18:33:04 CET 1999
On Tue, 16 Feb 1999 19:03:16 GMT, Zdenek Kabelac wrote:
: Chybu bych spise hledal u sebe. Zrejme neco neuvolnujes, nebo nejaka
: jina knihovna, kterou pouziva ma problemu. V samotne glib
: bych problemy u techto trivialnejsich pripadu moc nehledal.
No ... nedavno som narazil na jeden v starej libc5:
% cat bug.c
#include <locale.h>
main()
{
while(1)
{
setlocale(LC_ALL, "C");
setlocale(LC_ALL, "de_DE");
}
}
% i486-linuxlibc5-gcc -static bug.c
% strace a.out
...
brk(0) = 0x8063000
brk(0x8064000) = 0x8064000
brk(0) = 0x8064000
brk(0x8065000) = 0x8065000
brk(0) = 0x8065000
brk(0x8066000) = 0x8066000
brk(0) = 0x8066000
brk(0x8067000) = 0x8067000
...
a pamat lezie hore rychlostou 7 MB/minutu.
glibc to uz ma v poriadku, bohuzial su ale nasi zakaznici
dost konzervativni (a navyse pouzivaju SuSE, kde je glibc
tiez len odnedavna), takze to musime riesit uz teraz.
Mimochodom, velmi podobna sekvencia velmi podobne
leakovala v NT-ckach - tam bol mozny workaround
nezmyselnym zavolanim setlocale("English")
Ktovie, kto od koho opisoval :-)
Ak niekoho zaujima, preco je nutna takato divocina,
tak proste potrebujeme mat pri zapise do suboru / citani
z neho portabilne locale a inak take, ake si zakaznik
nakonfiguroval (ide hlavne o LC_NUMERIC, ale nielen).
Kedze sa tieto rezimy v urcitych pripadoch striedaju
pomerne casto a aplikacia je urcena pre trvalu
prevadzku, ten leak badat.
Zdravi
--
Stano
Další informace o konferenci Linux