Kategoria: Linux

Czyzby NIS Host Resolve bug ???

2009 Marzec 2 – 21:00

Juz ktorys raz spotkalem sie z taka sytuacja na moich komputerach. Zdarzyla sie ona po update/upgrade.

Czy to jest problem NISa z przekazywaniem hostow, albo ich resolvovaniem ? W dziwny sposob wszystko zalezy od libc6. Przy tym updacie i nis i libc6 zostaly zupgradowane. Tak czy owak, problem da sie ominac, bez potrzeby downgradowania (musialem miec wszystko aktualne dla KDE4 i OO3 :D).

Warunki

Co zrobilem zeby uzyskac takiego erora:

  • Debian linux, naturalnie Sid ;D (ale w googlach widzialem tez takie cos na SuSe)
  • swiezy update/upgrade okolo 20 lutego
  • jedna siec, ze skonfigurowana domena i NIS
  • hasla, hosty itp przekazywane przez NIS

Efekt

Przy wydaniu komendy ssh komputer2 (przy czym nazwa komputer2 jest nazwa z pliku hosts przekazanego przez NIS). Problem wystepuje rowniez w Thunderbird ktory odwoluje sie do adresu z pliku hosts przez NIS, albo np OpenOffice przy odwolywaniu sie do drukarki sieciowej… tak samo jak ssh, pozostale programy wykrzaczaja sie na starcie i nie daja sie uruchomic.

user@komputer:/home/userl# ssh komputer2
*** glibc detected *** ssh: free(): invalid pointer: 0x00007fb5b8deee9d ***
======= Backtrace: =========
/lib/libc.so.6[0x7fb5b652d1b8]
/lib/libc.so.6(cfree+0x76)[0x7fb5b652ecf6]
/lib/libnss_nis.so.2(_nss_nis_gethostbyname4_r+0x1b6)[0x7fb5b532f616]
/lib/libc.so.6[0x7fb5b6574ad6]
/lib/libc.so.6(getaddrinfo+0x1cd)[0x7fb5b6576d5d]
ssh[0x7fb5b8150a69]
ssh(main+0xef8)[0x7fb5b8146fd8]
/lib/libc.so.6(__libc_start_main+0xe6)[0x7fb5b64d95a6]
ssh[0x7fb5b8145a99]
======= Memory map: ========
7fb5b0000000-7fb5b0021000 rw-p 7fb5b0000000 00:00 0
7fb5b0021000-7fb5b4000000 ---p 7fb5b0021000 00:00 0
7fb5b5115000-7fb5b512b000 r-xp 00000000 08:01 1537099                    /lib/libgcc_s.so.1
7fb5b512b000-7fb5b532b000 ---p 00016000 08:01 1537099                    /lib/libgcc_s.so.1
7fb5b532b000-7fb5b532c000 rw-p 00016000 08:01 1537099                    /lib/libgcc_s.so.1
7fb5b532c000-7fb5b5336000 r-xp 00000000 08:01 1537377                    /lib/libnss_nis-2.9.so
7fb5b5336000-7fb5b5535000 ---p 0000a000 08:01 1537377                    /lib/libnss_nis-2.9.so
7fb5b5535000-7fb5b5537000 rw-p 00009000 08:01 1537377                    /lib/libnss_nis-2.9.so
7fb5b5537000-7fb5b567c000 r-xp 00000000 08:01 981431                     /usr/lib/libdb-4.6.so
7fb5b567c000-7fb5b587b000 ---p 00145000 08:01 981431                     /usr/lib/libdb-4.6.so
7fb5b587b000-7fb5b5880000 rw-p 00144000 08:01 981431                     /usr/lib/libdb-4.6.so
7fb5b5880000-7fb5b5881000 rw-p 7fb5b5880000 00:00 0
7fb5b5881000-7fb5b5886000 r-xp 00000000 08:01 982160                     /usr/lib/libnss_db-2.2.3.so
7fb5b5886000-7fb5b5a85000 ---p 00005000 08:01 982160                     /usr/lib/libnss_db-2.2.3.so
7fb5b5a85000-7fb5b5a86000 rw-p 00004000 08:01 982160                     /usr/lib/libnss_db-2.2.3.so
7fb5b5a86000-7fb5b5a91000 r-xp 00000000 08:01 1537401                    /lib/libnss_files-2.9.so
7fb5b5a91000-7fb5b5c90000 ---p 0000b000 08:01 1537401                    /lib/libnss_files-2.9.so
7fb5b5c90000-7fb5b5c92000 rw-p 0000a000 08:01 1537401                    /lib/libnss_files-2.9.so
7fb5b5c92000-7fb5b5ca8000 r-xp 00000000 08:01 1537357                    /lib/libpthread-2.9.so
7fb5b5ca8000-7fb5b5ea7000 ---p 00016000 08:01 1537357                    /lib/libpthread-2.9.so
7fb5b5ea7000-7fb5b5ea9000 rw-p 00015000 08:01 1537357                    /lib/libpthread-2.9.so
7fb5b5ea9000-7fb5b5ead000 rw-p 7fb5b5ea9000 00:00 0
7fb5b5ead000-7fb5b5eaf000 r-xp 00000000 08:01 1537095                    /lib/libkeyutils-1.2.so
7fb5b5eaf000-7fb5b60ae000 ---p 00002000 08:01 1537095                    /lib/libkeyutils-1.2.so
7fb5b60ae000-7fb5b60af000 rw-p 00001000 08:01 1537095                    /lib/libkeyutils-1.2.so
7fb5b60af000-7fb5b60b6000 r-xp 00000000 08:01 983873                     /usr/lib/libkrb5support.so.0.1
7fb5b60b6000-7fb5b62b6000 ---p 00007000 08:01 983873                     /usr/lib/libkrb5support.so.0.1
7fb5b62b6000-7fb5b62b7000 rw-p 00007000 08:01 983873                     /usr/lib/libkrb5support.so.0.1
7fb5b62b7000-7fb5b62b9000 r-xp 00000000 08:01 1537393                    /lib/libdl-2.9.so
7fb5b62b9000-7fb5b64b9000 ---p 00002000 08:01 1537393                    /lib/libdl-2.9.so
7fb5b64b9000-7fb5b64bb000 rw-p 00002000 08:01 1537393                    /lib/libdl-2.9.so
7fb5b64bb000-7fb5b6604000 r-xp 00000000 08:01 1537320                    /lib/libc-2.9.so
7fb5b6604000-7fb5b6804000 ---p 00149000 08:01 1537320                    /lib/libc-2.9.so
7fb5b6804000-7fb5b6807000 r--p 00149000 08:01 1537320                    /lib/libc-2.9.so
7fb5b6807000-7fb5b6809000 rw-p 0014c000 08:01 1537320                    /lib/libc-2.9.so
7fb5b6809000-7fb5b680e000 rw-p 7fb5b6809000 00:00 0
7fb5b680e000-7fb5b6811000 r-xp 00000000 08:01 1537446                    /lib/libcom_err.so.2.1
7fb5b6811000-7fb5b6a10000 ---p 00003000 08:01 1537446                    /lib/libcom_err.so.2.1
7fb5b6a10000-7fb5b6a11000 rw-p 00002000 08:01 1537446                    /lib/libcom_err.so.2.1
7fb5b6a11000-7fb5b6a35000 r-xp 00000000 08:01 983860                     /usr/lib/libk5crypto.so.3.1
7fb5b6a350Przerwane

Naturalnie numery pointerow i adresy w pamieci sa za kazdym razem inne.

Rozwiazanie

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         files nis
group:          files nis
shadow:         files nis

hosts:          nis files dns [NOTFOUND=return] mdns4_minimal mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Widzimy ze plik hosts jest priorytetowo przegladany przez NIS. Zmieniamy ta linijke na:

hosts:          files dns [NOTFOUND=return] nis mdns4_minimal mdns4

Naturalnie na kazdy z kilkunastu komputerow nie kopiowalem pliku hosts, wiec aby resolvowac nazwy lokalne uzywam lokalnego dnsa (dnsmasq) na serwerze. Ustawiam zeby komputer kliencki nie korzystal z NISa tylko ze zwyklego DNSa.

Klopot rozwiazany ! Dziwny eror juz nie wystepuje i mozna dalej cieszyc sie spokojem 馃榾

Inne info na ten temat

http://forums.opensuse.org/network-internet/406690-nis-host-resolution-bug.html

Dodaj komentarz

Tw贸j adres email nie zostanie opublikowany. Pola, kt贸rych wype艂nienie jest wymagane, s膮 oznaczone symbolem *