Назад | Перейти на главную страницу

ISC BIND отказывается запускаться: «завершается (из-за фатальной ошибки)»

Привязать 9.8.2 к CentOS 6.4 x64 на сервере IBM X.

Связывание 9.8.2 из официального репозитория обновлений Centos раньше работало нормально, но затем мне нужно было настроить его, скомпилировав из исходного кода (здесь ничего сумасшедшего - просто скомпилирован с другими параметрами, чем предлагается в CentOS RPM. Обратите внимание, что я использовал исходный код из bind-9.9.4, а не 9.8.x, так что, может быть, это потенциально проблема? Я сомневаюсь, но это возможно).
Недавно я решил вернуться к установке из RPM, но теперь я не могу запустить Bind.

Единственные сообщения, которые я получаю, ничего мне не говорят:

# named -g -c /etc/named.conf
01-Dec-2013 15:46:57.899 starting BIND 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 -g -c /etc/named.conf
01-Dec-2013 15:46:57.899 built with '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-libtool' '--localstatedir=/var' '--enable-threads' '--enable-ipv6' '--with-pic' '--disable-static' '--disable-openssl-version-check' '--with-dlz-ldap=yes' '--with-dlz-postgres=yes' '--with-dlz-mysql=yes' '--with-dlz-filesystem=yes' '--with-gssapi=yes' '--disable-isc-spnego' '--with-docbook-xsl=/usr/share/sgml/docbook/xsl-stylesheets' '--enable-fixed-rrset' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'target_alias=x86_64-redhat-linux-gnu' 'CFLAGS= -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' 'CPPFLAGS= -DDIG_SIGCHASE'
01-Dec-2013 15:46:57.899 ----------------------------------------------------
01-Dec-2013 15:46:57.899 BIND 9 is maintained by Internet Systems Consortium,
01-Dec-2013 15:46:57.899 Inc. (ISC), a non-profit 501(c)(3) public-benefit
01-Dec-2013 15:46:57.899 corporation.  Support and training for BIND 9 are
01-Dec-2013 15:46:57.899 available at https://www.isc.org/support
01-Dec-2013 15:46:57.899 ----------------------------------------------------
01-Dec-2013 15:46:57.899 adjusted limit on open files from 4096 to 1048576
01-Dec-2013 15:46:57.899 found 24 CPUs, using 24 worker threads
01-Dec-2013 15:46:57.900 using up to 4096 sockets
01-Dec-2013 15:46:57.907 loading configuration: failure
01-Dec-2013 15:46:57.907 exiting (due to fatal error)

Синтаксические ошибки в named.conf и ошибки прав доступа к файлам обычно перечисляются непосредственно перед loading configuration: failure log, но в этом случае ошибки нет, поэтому я не знаю, что происходит.

Забавно то, что если я переустановлю привязку из исходной компиляции (make install), привязка будет работать нормально. Сейчас я использую стандартный файл named.conf по умолчанию. Я не буду размещать его здесь, потому что знаю, что он действителен - проблема не в этом. Мне кажется, что я мог случайно удалить общую библиотеку или что-то в этом роде во время возни ... липких пальцев? работает, когда устал? кто знает.

Вот параметры, которые я использовал при компиляции привязки, если это помогает:

./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-libtool --localstatedir=/var --enable-threads --with-dlz-filesystem=yes --with-gssapi=/usr/include/gssapi --enable-fixed-rrset --with-dlopen=yes

Хорошо, я перейду к делу. Мне не нужно, чтобы моя рука проходила через этот процесс, но мне нужно указать направление, в котором я буду двигаться. Я не знаю, как дальше отлаживать эту проблему. Например, как мне отслеживать, запрашивает ли процесс (например, named) общую библиотеку или ресурс, которого там нет? Bind не имеет флага для дополнительной многословности, кроме того, что делает "-g". Флаг «-d» не дает более подробной информации об этой ошибке. Как можно было бы решить эту проблему дальше? Ktrace или какой-нибудь другой инструмент для отладки? Я в растерянности и хотел бы получить несколько предложений.

Вещи, которые я пробовал:

Мне очень жаль, что разработчики ISC не сделали uninstall make target, потому что на самом деле нет простого способа (о котором я знаю) удалить привязку после компиляции из источника. (Не стесняйтесь просветить меня там).

Спасибо за любые указатели, и если вам нужна дополнительная информация, дайте мне знать.

*** РЕДАКТИРОВАТЬ

Выход из su - named -c "/usr/sbin/named -d 9 -g -c /etc/named.conf" -s /bin/bash:

01-Dec-2013 17:16:30.994 Registering DLZ_dlopen driver
01-Dec-2013 17:16:30.994 Registering SDLZ driver 'dlopen'
01-Dec-2013 17:16:30.994 Registering DLZ driver 'dlopen'
01-Dec-2013 17:16:30.996 decrement_reference: delete from rbt: 0x7ff208214068 .
01-Dec-2013 17:16:31.001 load_configuration: failure
01-Dec-2013 17:16:31.001 loading configuration: failure
01-Dec-2013 17:16:31.001 exiting (due to fatal error)

Наконец, еще немного подсказки! Я использовал "-d 10" с bind, которого, по-видимому, не существует, поэтому неудивительно, что он не дал мне дополнительной информации об отладке. В приведенном выше сообщении нет ничего конкретного в Google, но я буду искать. Если это проливает свет, пожалуйста, дайте мне знать.

Решено! Оказывается, это была куча 32-битных общих библиотек в / usr / lib. Они, должно быть, попали туда, когда я компилировал / устанавливал из исходников, и они имели приоритет (?) Над теми, что были в / usr / lib64. Фактически, теперь, когда я думаю об этом, готов поспорить, что я либо скомпилировал для i386, либо нацелил 64-битную цель установки на / usr / lib.

После того, как я удалил их, а затем переустановил привязку из репозитория centos, все, наконец, работает, как ожидалось.

Вот файлы, которые были в / usr / lib, если кому интересно:

-rw-r--r--. 1 root root 10220682 Oct  8 00:42 libdns.a
-rw-r--r--. 1 root root     1010 Oct  8 00:42 libdns.la
lrwxrwxrwx. 1 root root       17 Oct 10 00:02 libdns.so.100 -> libdns.so.100.1.1
-rw-r--r--  1 root root  6026006 Oct  8 00:42 libdns.so.100.1.1
lrwxrwxrwx. 1 root root       17 Oct 10 00:02 libdns.so.122 -> libdns.so.122.1.0
-rw-r--r--. 1 root root  5761978 Oct  8 00:18 libdns.so.122.1.0
-rw-r--r--. 1 root root  2083570 Oct  8 00:42 libisc.a
-rw-r--r--. 1 root root   170672 Oct  8 00:42 libisccc.a
-rw-r--r--. 1 root root      971 Oct  8 00:42 libisccc.la
lrwxrwxrwx. 1 root root       18 Oct 10 00:02 libisccc.so.80 -> libisccc.so.80.0.4
-rw-r--r--. 1 root root   102388 Oct  8 00:18 libisccc.so.80.0.4
lrwxrwxrwx. 1 root root       18 Oct 10 00:02 libisccc.so.90 -> libisccc.so.90.0.4
-rw-r--r--. 1 root root   105996 Oct  8 00:42 libisccc.so.90.0.4
-rw-r--r--. 1 root root   432498 Oct  8 00:42 libisccfg.a
-rw-r--r--. 1 root root     1067 Oct  8 00:42 libisccfg.la
lrwxrwxrwx. 1 root root       19 Oct 10 00:02 libisccfg.so.82 -> libisccfg.so.82.0.7
-rw-r--r--. 1 root root   289960 Oct  8 00:18 libisccfg.so.82.0.7
lrwxrwxrwx. 1 root root       19 Oct 10 00:02 libisccfg.so.90 -> libisccfg.so.90.0.7
-rw-r--r--  1 root root   298219 Oct  8 00:42 libisccfg.so.90.0.7
-rw-r--r--. 1 root root      938 Oct  8 00:42 libisc.la
lrwxrwxrwx. 1 root root       16 Oct 10 00:02 libisc.so.84 -> libisc.so.84.5.1
-rw-r--r--. 1 root root  1150027 Oct  8 00:18 libisc.so.84.5.1
lrwxrwxrwx. 1 root root       16 Oct 10 00:02 libisc.so.95 -> libisc.so.95.2.1
-rw-r--r--. 1 root root  1178391 Oct  8 00:42 libisc.so.95.2.1
-rw-r--r--. 1 root root   431628 Oct  8 00:42 liblwres.a
-rw-r--r--. 1 root root      952 Oct  8 00:42 liblwres.la
lrwxrwxrwx. 1 root root       18 Oct 10 00:02 liblwres.so.80 -> liblwres.so.80.0.7
-rw-r--r--. 1 root root   239863 Oct  8 00:18 liblwres.so.80.0.7
lrwxrwxrwx. 1 root root       18 Oct 10 00:02 liblwres.so.90 -> liblwres.so.90.0.5
-rw-r--r--. 1 root root   243111 Oct  8 00:42 liblwres.so.90.0.5

попробуйте 'named -d 9', и да, это необычно, я не говорю вам, почему ...