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