upgrade glibc za chodu

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Neděle Květen 18 11:27:39 CEST 2003


On Sat, 17 May 2003, Vaclav Dvorak wrote:

> Zažil jsem zajímavý problém. Mám SuSE 8.1. Chtěl jsem upgradovat rsync 
> na verzi, co je v 8.2, jenže 8.2 má nové glibc (2.3 proti 2.2). Tak jsem 
> kromě rsyncu stáhnul i glibc a provedl upgrade. Měl jsem trochu obavy, 
> co se stane, když běžícím procesům pod rukama vyměním základní knihovnu, 
> ale zkusil jsem to a chvíli se zdálo, že je všechno OK. Pak mi ale 
> neodešel odesílaný email - sendmail ho vrátil s hláškou, že host not 
> found. Přitom ručně nslookupem se vše s cílovou doménou a mailserverem 
> zdálo být OK. [KMail se mimochodem dokonce tvářil, jako že se nemůže 
> spojit na SMTP na localhostu, když telnetem to přitom šlo.] Restartoval 
> jsem postupně sendmail i bind (resolvuju přes bind běžící na 
> localhostu), ale situace se nezměnila.

Nektere cinnosti, jako treba prace s DNS, nejsou provadeny primo v glibc,
ale v jine dynamicky linkovane knihovne, napr. libnss_dns a/nebo libresolv
(ale osobne bych nejvic podezrival to NSS), ktere jsou vsak s glibc
v jednom baliku.

Pokud upgrade tyto pomocne knihovny vymenil za jine verze, se kterymi si
programy dosud bezici se starou glibc nerozumely, pak mohlo dojit
k pozorovanemu efektu, jestlize se takovy program (resp. jeho klon
vyrobeny forkem) pokusil delat neco s DNS (pripadne jinymi udaji, ke
kterym se pristupuje pres NSS) v situaci, kdy jeste nemel patricnou
pomocnou knihovnu nactenou a nasledne bud novou verzi nenasel (napr.
z toho duvodu, ze mela jinou hlavni verzi), nebo ji sice nasel a nacetl,
ale nedokazal se s ni domluvit.

Jestlize to byla druha moznost, pak by to byla evidentni chyba, protoze
pri nekompatibilni zmene rozhrani je povinnost zmenit cislo verze (napr.
...so.2 -> ...so.3). Ale spis bych rekl, ze pri prechodu z glibc 2.2 na
glibc 2.3 doslo ke zmene rozhrani i zmene cisla verze a Vy jste si proste
nabehl tim, ze jste do systemu (a jeste za normalniho chodu) nacpal
uplne novou glibc...a pritom by byvalo nejspis stacilo vzit od toho
rsyncu zdrojaky a prekompilovat je...


--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux