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