URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 90908
[ Назад ]

Исходное сообщение
"bind 9.3.6, syslog, socket.c:4373: unexpected error: "

Отправлено go , 09-Фев-11 08:07 
Здравструйте.

# uname -a
Linux rhns2 2.6.18-194.el5PAE #1 SMP Tue Mar 16 22:00:21 EDT 2010 i686 i686 i386 GNU/Linux

# named -v
BIND 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2

проблема следующая:
tail /var/named/chroot/var/log/system.log
09-Feb-2011 09:35:13.966 socket.c:4373: unexpected error:
09-Feb-2011 09:35:13.966 22/Invalid argument
09-Feb-2011 09:38:24.281 socket.c:4373: unexpected error:
09-Feb-2011 09:38:24.281 22/Invalid argument
09-Feb-2011 09:41:16.296 socket.c:4373: unexpected error:
09-Feb-2011 09:41:16.297 22/Invalid argument
09-Feb-2011 09:41:17.316 socket.c:4373: unexpected error:
09-Feb-2011 09:41:17.316 22/Invalid argument
09-Feb-2011 09:48:31.283 socket.c:4373: unexpected error:
09-Feb-2011 09:48:31.283 22/Invalid argument

В принципе named работает. Но это всё равно ненормально.

Что делать?


Содержание

Сообщения в этом обсуждении
"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено go , 09-Фев-11 08:08 
Точнее что именно: обновлять kernel или ставить последний свежий bind?

"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено Pahanivo , 09-Фев-11 08:24 
> Точнее что именно: обновлять kernel или ставить последний свежий bind?

named.conf покажи


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено go , 09-Фев-11 08:32 
>> Точнее что именно: обновлять kernel или ставить последний свежий bind?
> named.conf покажи

named.conf из нескольких частей.

на всякий случай сам named.conf:
include "/etc/named.conf.acl";
include "/etc/named.conf.options";
include "/etc/named.conf.keys";
include "/etc/named.conf.logging";

controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};


view "view1"
{
        match-clients { key view1.; "view1"; };
        server zz.xx.ccc.vv { keys { view1.; }; };
        include "/etc/zones.local";
        include "/etc/zones.view1";
};

view "view2"
{
        match-clients { key view2.; "view2"; };
        server zz.xx.ccc.vv { keys { view2.; }; };
        include "/etc/zones.local";
        include "/etc/zones.view2";
};

view "view3"
{
        match-clients { key vvv.; "aaa"; "vvv"; };
        server zz.xx.ccc.vv { keys { vvv.; }; };
        include "/etc/zones.local";
        include "/etc/zones.view3";
};

а вот наверное то, что действительно нужно:
named.conf.options:
options {
        directory "/etc";
        pid-file "/var/run/named.pid";
        statistics-file "/var/log/stats.log";
        query-source address * port *;
        allow-query { any; };
        recursive-clients 1000;
        tcp-clients 1000;
        interface-interval 0;
};


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено guest , 09-Фев-11 10:13 
> 09-Feb-2011 09:48:31.283 socket.c:4373: unexpected error:
> 09-Feb-2011 09:48:31.283 22/Invalid argument
> В принципе named работает. Но это всё равно ненормально.

а гугл говорит что скорее всего это нормально)
ошибка вылетает при connect() и полученный errno не известен named'у

> Что делать?

забить сразу или сначала посмотреть куда именно named пытается конектиться.
Готовы пересобрать его?


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено go , 09-Фев-11 10:15 
>> 09-Feb-2011 09:48:31.283 socket.c:4373: unexpected error:
>> 09-Feb-2011 09:48:31.283 22/Invalid argument
>> В принципе named работает. Но это всё равно ненормально.
> а гугл говорит что скорее всего это нормально)
> ошибка вылетает при connect() и полученный errno не известен named'у
>> Что делать?
> забить сразу или сначала посмотреть куда именно named пытается конектиться.
> Готовы пересобрать его?

Готов, даже закачал уже 9.7

вот тока со .spec придётся повозиться


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено guest , 09-Фев-11 10:35 
> Готов, даже закачал уже 9.7

там ничего не менялось в этом плане.

> вот тока со .spec придётся повозиться

Вы уж извините, мне лень накатывать все RH патчи по этому возможно patch будет ругаться на номера строк...

Добавлено логирование адреса
--- bind-9.3.6-P1.orig/lib/isc/unix/socket.c    Wed Feb  9 10:00:53 2011
+++ bind-9.3.6-P1/lib/isc/unix/socket.c Wed Feb  9 10:31:30 2011
@@ -4302,6 +4302,7 @@
        isc_socketmgr_t *manager;
        int cc;
        char strbuf[ISC_STRERRORSIZE];
+       char addrbuf[ISC_SOCKADDR_FORMATSIZE];

        REQUIRE(VALID_SOCKET(sock));
        REQUIRE(addr != NULL);
@@ -4370,7 +4371,9 @@
                sock->connected = 0;

                isc__strerror(errno, strbuf, sizeof(strbuf));
-               UNEXPECTED_ERROR(__FILE__, __LINE__, "%d/%s", errno, strbuf);
+               isc_sockaddr_format(addr, addrbuf, sizeof(addrbuf));
+               UNEXPECTED_ERROR(__FILE__, __LINE__, "connect(%s) %d/%s",
+                                addrbuf, errno, strbuf);

                UNLOCK(&sock->lock);
                isc_event_free(ISC_EVENT_PTR(&dev));


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено go , 09-Фев-11 10:40 
>[оверквотинг удален]
> +            
>    UNEXPECTED_ERROR(__FILE__, __LINE__, "connect(%s) %d/%s",
> +            
>            
>          addrbuf, errno,
> strbuf);
>            
>     UNLOCK(&sock->lock);
>            
>     isc_event_free(ISC_EVENT_PTR(&dev));

Благодарю.
Кстати, есть точно такой же сервер, с точно таким же RH и bind, и там эта ошибка не наблюдается.


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено Serge , 09-Фев-11 10:43 

> Благодарю.
> Кстати, есть точно такой же сервер, с точно таким же RH и
> bind, и там эта ошибка не наблюдается.

а бинд не в чруте запускается?


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено go , 09-Фев-11 10:44 
>> Благодарю.
>> Кстати, есть точно такой же сервер, с точно таким же RH и
>> bind, и там эта ошибка не наблюдается.
> а бинд не в чруте запускается?

в чруте везде.


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено Serge , 09-Фев-11 12:18 
>>> Благодарю.
>>> Кстати, есть точно такой же сервер, с точно таким же RH и
>>> bind, и там эта ошибка не наблюдается.
>> а бинд не в чруте запускается?
> в чруте везде.

скорее всего что-то не так с чрутом (гадаю).  Я бы присоединился strace'ом и посмотрел на ошибку.


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено guest , 09-Фев-11 10:49 
> Благодарю.
> Кстати, есть точно такой же сервер, с точно таким же RH и
> bind, и там эта ошибка не наблюдается.

Охотно верю)
Кстати почти уверен, что когда мы увидим проблемный адрес, это будет ipv6, причем fec0::/10


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено go , 09-Фев-11 10:50 
>> Благодарю.
>> Кстати, есть точно такой же сервер, с точно таким же RH и
>> bind, и там эта ошибка не наблюдается.
> Охотно верю)
> Кстати почти уверен, что когда мы увидим проблемный адрес, это будет ipv6,
> причем fec0::/10

неужели named.root и сервера с ipv6 ???????????? !!!!!!


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено guest , 09-Фев-11 10:54 
> неужели named.root и сервера с ipv6 ???????????? !!!!!!

ненене этож локальный ipv6


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено go , 09-Фев-11 10:55 
>> неужели named.root и сервера с ipv6 ???????????? !!!!!!
> ненене этож локальный ipv6

т.е. он сам к себе ломится на localhost6?


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено guest , 09-Фев-11 11:02 
>>> неужели named.root и сервера с ipv6 ???????????? !!!!!!
>> ненене этож локальный ipv6
> т.е. он сам к себе ломится на localhost6?

Не совсем, думаю что происходит примерно такое:
клиент просит у рекурсора AAAA, рекурсор пытается честно отработать и тут ему подсовывают эту каку. Впрочем, чего гадать) давайте посмотрим, интересно же.


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено go , 09-Фев-11 11:38 
>>>> неужели named.root и сервера с ipv6 ???????????? !!!!!!
>>> ненене этож локальный ipv6
>> т.е. он сам к себе ломится на localhost6?
> Не совсем, думаю что происходит примерно такое:
> клиент просит у рекурсора AAAA, рекурсор пытается честно отработать и тут ему
> подсовывают эту каку. Впрочем, чего гадать) давайте посмотрим, интересно же.

Я правильно понимаю, что это можно сделать только наложив патч?


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено guest , 09-Фев-11 11:46 
> Я правильно понимаю, что это можно сделать только наложив патч?

Так проще мне кажется.


"bind 9.3.6, syslog, socket.c:4373: unexpected error: "
Отправлено guest , 09-Фев-11 11:49 
Upd: по крайней мере я не нашел места где бы этот адрес логировался до connect().