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