dotaz - No buffer space available

petrch na regnet.cz petrch na regnet.cz
Pátek Leden 31 19:17:14 CET 2003


Dobry den,

trochu se potim s jednim problemem, zkusim Vas, jestli to nevite.

udelal jsem router na 2.4.20 jadru. prekopiroval na nej existujici
konfiguraci z osadni.lam.cz. Ale pada tam gated na segfault.
Zjistil jsem nasledujici fakta:

na eth0 je 22 aliasu. Pokud spustim gated a pak udelam /etc/rc.d/init.d/network start na 21. aliasu zahlasi gated:

...group 224.0.0.5: No buffer space available.

je to gated-public-3_6


Nejdrive jsem zkoumal s debuggerem jsem zjistil, ze to pada na
ospf_lsdb.c:

 145 int
    146 addLSA (struct LSDB ** db, struct AREA * area, u_int32 ls_id, u_int32 ma        sk, u_int32 key1, u_int type)
    147 {
    148     register struct LSDB **e, **me;
    149     struct LSDB_HEAD *hp;
    150     u_int32 mls_id;
    151     int hash, mhash;
    152 
    153     hash = XHASH(ls_id, ls_id);
    154     hp = &a

pricemz #define XHASH(A1,A2) ((A1) % 251)

zkompiloval jsem tedy -g -O0 to pomohlo na testovaci masine.
na routeru ne. Vydal jsem se tedy po stopach hlasky:

"No buffer space available" ktera pres /usr/src/include smeruje
k hodnot ENOBUFS, ta se vyskytuje ve zdrojacich gated na dvou mistech
a vzdycky se jedna o sockety. Takze jsem sel do 
jadra /usr/src/linux/net/socket.c ENOBUFS se vraci kdyz se nepodari
naalokovat pamet (napriklad). Kdyz necham
bezet 

strace gated -N

a zkusim nahodit sit, ENOBUF se vrati ze setsockopt(8,SOL_IP,IP_ADD_MEMBERSHIP,[83886304],8)

lsof | wc -l rika 395

Takze muj dotaz: prijde mi, ze jsem se do toho moc zamotal, bud jsem
prehledl neco zjevneho, nebo mam nejaky vazny problem. Takze bych
rad vedel, jestli nekdo nema podobnou zkusenost, nebo nerozumi soketum
natolik, aby byl schopen vydedukovat, co se deje. Ten segfault je
podle me jen zavadejici (stane se neco neocekavaneho -> prepise
se pamet - tj. chyba programu, ale za normalnich okolnosti nepravdepodobna -> spadne to jakoby "na nahodnem miste").

Diky za rady.





-- 
Petr Chloupek
petrch na regnet.cz
All work and no play makes Jack a dull boy.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d- s:-- a- C++$>+++$ UL+++$>++++$ P++$ L+++$(++)>++++$ E-@ W++@$ N+ 
o? K w++> O- M-@ V? PS+ PE+@? Y+() PGP+@ t(+) 5? !X@ R(++)>-@ tv- b++@ 
!DI? D+ G+ e+ h---- r+++@ y+++@
------END GEEK CODE BLOCK------



Další informace o konferenci Linux