Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
squid.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
1.45 Mб
Скачать

14.5 Linux

Cannot bind socket FD 5 to 127.0.0.1:0: (49) Can't assign requested address

Попробуйте другую версию Linux. Мы получили большое количество сообщений о этой ``ошибке'' от людей работающих под Linux 2.0.30. Системный вызов bind(2) НИКОГДА не должен получать подобное сообщение о ошибке при привязке к порту 0.

FATAL: Don't run Squid as root, set 'cache_effective_user'!

Некоторые люди сообщали о том, что установка cache_effective_user в nobody под Linux не работает. Однако если использовать значение cache_effective_user отличное от nobody, то все работает как надо. Одно из решений - создать пользователя для Squid и указать это значение в cache_effective_user. Также вы можете изменить UID для учетной записи nobody с 65535 на 65534.

Совсем другая проблема - неверная обработка функции setresuid() в RedHat 5.0 Linux. Есть два способа исправить это. Перед запуском configure сделайте следующее:

% setenv ac_cv_func_setresuid no

% ./configure ...

% make clean

% make install

После отрабоки configure отредактируйте файл include/autoconf.h, изменив строку HAVE_SETRESUID на:

#define HAVE_SETRESUID 0

Также некторые люди сообщают о том, что эта проблема возникает из-за настроек NIS. Проблема исчезает при добавлении compat в строки passwd и group файла /etc/nsswitch.conf ( Ambrose Li).

Russ Mellon отмечает, что данная проблема с cache_effective_user исправлена а в ядрах версии 2.2.x Linux.

Большие списки ACL замедляют работу Squid

Библиотека регулярных выражений, идущая в поставке с Linux, как известно достаточно медленна в работе. Некоторые люди сообщают, что it entirely fails to work after long periods of time.

Чтобы исправить положение, используйте библиотеку GNUregex, которая включена в исходные тексты Squid. Для Squid-2 используйте ключ конфигурации --enable-gnuregex.

Утечка памяти gethostbyname() в RedHat 6.0 с glibc 2.1.1.

от Radu Greab

При работе функии gethostbyname() наблюдается утечка памяти в RedHat 6.0 с glibc 2.1.1. быстрее всего исправляется уданиеем сервиса nisplus из записи хоста в /etc/nsswitch.conf. При тестировании использование памяти dnsserver снова стабилизировалось после внесения указанных выше изменеий.

См. RedHat bug id 3919.

assertion failed: StatHist.c:91: `statHistBin(H, max) == H->capacity - 1' on Alpha system.

от Jamie Raymond

Некторые ранние версии Linux имеют баг в ядре, вызывающийhave эту проблему. Все что нужно - свежее ядро, в котором нет этого бага.

tools.c:605: storage size of `rl' isn't known

Это ошибка в некторых версиях glibc. Заголовки glibc некорректно связаны с содержимым некоторых заголовочных файлов ядра. Everything broke down when the kernel folks rearranged a bit in the kernel-specific header files.

Мы думаем, что это ошибка в glibc, которая присутствует в версиях 2.1.1 (или 2.1.0) и более ранних. Есть два метода решения проблемы:

  1. Make sure /usr/include/linux and /usr/include/asm are from the kernel version glibc is build/configured for, not any other kernel version. Only compiling of loadable kernel modules outside of the kernel sources depends on having the current versions of these, and for such builds -I/usr/src/linux/include (or where ever the new kernel headers are located) can be used to resolve the matter.

  2. Обновите glibc до версии 2.1.2 или более свежей. Это в любом случае хорошая идея, provided a prebuilt upgrade package exists for the Linux distribution used.. Замечание: не пытайтесь вручную собрать и установить glibc из исходных текстов до тех пор, пока вы точно не уверены в том, что вы делаете, т.к. иначе подобная операция запросто может сделать вашу систему непригодной к использованию.

Невозможно соединится с некторыми сайтами при работе через Squid

Когда используется Squid, при соединении с некоторыми сайтами возникют ошибки тип ``(111) Connection refused'' или ``(110) Connection timed out'', хотя эти сайты нормально работают, если не использовать Squid.

Некторые версии linux используют Explicit Congestion Notification (ECN) и это может быть причиной неудавшихся TCP-соединений, когда происходит обращние к к сайтам с "кривым" файерволом или неверно работающим TCP/IP.

Чтобы работать с подобными "сбоящими" сайтами вы можете выключить использование ECN при помощи следующей команды:

echo 0 >/proc/sys/net/ipv4/tcp_ecn

Вот что было найдено в списке рассылки FreeBSD:

From: Robert Watson

Как уже было указано Bill Fumerola (я подумал, что немного детилизирую пояснения), наблюдаемое вами - есть результат ошибки в коде FreeBSD IPFW. FreeBSD did a direct comparison of the TCP header flag field with an internal field in the IPFW rule description structure. Unfortunately, at some point, someone decided to overload the IPFW rule description structure field to add a flag representing "ESTABLISHED". They used a flag value that was previously unused by the TCP protocol (which doesn't make it safer, just less noticeable). Later, when that flag was allocated for ECN (Endpoint Congestion Notification) in TCP, and Linux began using ECN by default, the packets began to match ESTABLISHED rules regardless of the other TCP header flags. This bug was corrected on the RELENG_4 branch, and security advisory for the bug was released. This was, needless to say, a pretty serious bug, and good example of why you should be very careful to compare only the bits you really mean to, and should seperate packet state from protocol state in management structures, as well as make use of extensive testing to make sure rules actually have the effect you describe.

См. также thread on the NANOG mailing listRFC3168 "The Addition of Explicit Congestion Notification (ECN) to IP, PROPOSED STANDARD" или Sally Floyd's page on ECN and problems related to it

14.6 HP-UX

StatHist.c:74: failed assertion `statHistBin(H, min) == 0'

Была такая таинственная и необяснимая ошибка в GCC на HP-UX. Некторые функции, определенные как static, вызывали ошибку вычисления. Компилятор таже не мог верно обработать преобразования int-double. Эта ошибка должна быть корректно обработана ыв в версии Squid 2.2.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]