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 Журнал, но в этом случае ошибки нет, поэтому я не знаю, что происходит.

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

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

./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 или какой-либо другой инструмент отладки? Я в растерянности и буду рад некоторым предложениям.

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

  • yum reinstall на каждой упаковке из repoquery --requires --recursive --resolve bind, repoquery --requires --recursive --resolve bind-utils, repoquery --requires --recursive --resolve bind-libs
  • yum remove bind bind-utils bind-libs, затем вручную удалите все оставшиеся лакомые кусочки, затем переустановите эти три пакета
  • Бег ldconfig после переустановки bind из RPM (полностью избыточный, но какого черта)
  • SElinux отключен, а App Armor не установлен

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

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

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

Выход из 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, но я буду продолжать искать. Если это проливает свет, пожалуйста, дайте мне знать.

2 ответа

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

Решено! Оказывается, это была куча 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
Другие вопросы по тегам