Ars Longa, Vita Brevis

Дочерние рубрики:
  • Нет рубрик

Статьи из рубрики "Linux"

Советы по настройке и администрированию

На сервере с CentOS 5.1 столкнулся с такой проблемой: Apache при открытии PHP-страниц с завидным постоянством писал в лог следующие ошибки:

[-]
View Code Text
*** glibc detected *** /usr/sbin/httpd: corrupted double-linked list: 0x09a939f8 ***

К сожалению, поиск в Google практических результатов не дал: ошибка могла случаться на любом железе и любой версии Linux. Больше всего жаловались (не)счастливые обладатели Zend Optimizer.

Обновил CentOS до 5.2 (в обновлении пришёл новый glibc), но это не помогло. Странно, я видел много серверов, работающих на CentOS без таких ошибок.

Пытаясь найти минимальную конфигурацию, на которой бы воспроизводились ошибки, я отключал один за одним модули Apache, модули PHP, но всё тщетно. Когда же я отключил mod_php, ошибка пропала — на статических страницах всё было прекрасно. Читать статью «Обновление PHP до 5.2.x в CentOS 5» полностью…

Дек 15, 2008

Простой анализатор логов Postfix

Рубрика: Linux
Метки: , , ,
Vladimir

При создании сайтов, занимающихся email-маркетингом, полезно анализировать логи почтового сервера, например, для нахождения адресов, генерирующих hard bounce (перманентная ошибка доставки). Такие адреса нужно удалять из списка рассылки. Во-первых, для того, чтобы не нагружать сервер адресата, а во-вторых, чтобы не попасть в блок- или спамлист. Читать статью «Простой анализатор логов Postfix» полностью…

Дек 10, 2008

Баг или фича?

Рубрика: Linux
Метки: ,
Vladimir

Забавно… С параметром debug xl2tpd отлично работает. А если вместо debug поставить nodebug, перестаёт работать:

[-]
View Code Text
Dec 10 05:46:48 xl2tpd[2879]: child_handler : pppd exited for call 30961 with code 2
Dec 10 05:46:48 xl2tpd[2879]: read_packet: Error 9 (Bad file descriptor)
Dec 10 05:46:48 last message repeated 10 times
Dec 10 05:46:48 xl2tpd[2879]: read_packet: Too many errors.  Declaring call dead.
Dec 10 05:46:53 xl2tpd[2879]: network_thread: unable to find call or tunnel to handle packet.  call = 24450, tunnel = 23148 Dumping.
Dec 10 05:46:58 last message repeated 2 times

Всё же интересно: так и было задумано? Или всё-таки баг?

Окт 1, 2008

Cannot mix incompatible Qt libraries

Рубрика: Linux
Метки: , , , , , ,
Vladimir

В последнее время на разных Ubuntu Intrepid Ibex я стал довольно часто сталкиваться с ошибкой

[-]
View Code (Unknown Language)
Cannot mix incompatible Qt libraries

Очень сильно этим грешит Skype. Но в последнее время такая проблема стала возникать для приложений KDE4.

Данная ошибка, как правило, вызывается одной из следующих причин:

  1. В системе установлены библиотеки Qt разных версий. Проверяется это очень просто:
    [-]
    View Code Bash
     dpkg -l | grep qt | grep -r "^[ih]"

    Если в выдаче присутствуют библиотеки разных версий (третья колонка), значит, именно это вызвало проблему. Удаление старых библиотек, как правило, решает проблему.

    В этом случае, например, конфликта нет:

    [-]
    View Code (Unknown Language)
    ii  libqt4-dbus                                 4.4.2-0ubuntu2                        Qt 4 D-Bus module
    ii  libqt4-designer                             4.4.2-0ubuntu2                        Qt 4 designer module
    ii  libqt4-network                              4.4.2-0ubuntu2                        Qt 4 network module
    ii  libqt4-opengl                               4.4.2-0ubuntu2                        Qt 4 OpenGL module
    ii  libqt4-qt3support                           4.4.2-0ubuntu2                        Qt 3 compatibility library for Qt 4
    ii  libqt4-script                               4.4.2-0ubuntu2                        Qt 4 script module
    ii  libqt4-sql                                  4.4.2-0ubuntu2                        Qt 4 SQL module
    ii  libqt4-svg                                  4.4.2-0ubuntu2                        Qt 4 SVG module
    ii  libqt4-xml                                  4.4.2-0ubuntu2                        Qt 4 XML module
    ii  libqtcore4                                  4.4.2-0ubuntu2                        Qt 4 core module
    ii  libqtgui4                                   4.4.2-0ubuntu2                        Qt 4 GUI module
    ii  libstrigiqtdbusclient0                      0.5.11-1                              library for writing D-Bus clients for Strigi Desktop Se
    ii  qt4-qtconfig                                4.4.2-0ubuntu2                        Qt 4 configuration tool
    Тем не менее, если ошибка всё еще выдаётся, переходим к пункту 2.
  2. Если используется 64-битная платформа, проблема может возникать из-за того, что загрузчик пытается использовать 32-битные библиотеки. Определить это можно при помощи ldd.

    Например,

    [-]
    View Code Bash
    ldd /usr/bin/ktorrent | grep '/lib32/'
    #   libQtDBus.so.4 => /lib32/libQtDBus.so.4 (0x00007f191cce7000)

    В данном случае при загрузке libQtDBus загрузчик будет загружать её 32-битную версию (из /lib32) вместо 64-битной (из /lib).

    Я использую следующее решение (оно не идеальное, но работает):

    [-]
    View Code Bash
    sudo -i
    echo /lib32 > /etc/ld.so.conf.d/libQtDBus32.conf
    echo /usr/lib > /etc/ld.so.conf.d/libQtDBus64.conf
    ldconfig
  3. Наконец, если подобная проблема возникает при использовании Skype на 64-битной платформе, то проще всего скачать static version. Очень сильно экономит нервы :-)

Не любят разработчики Ubuntu Skype… совсем не любят. Только-только нашлось решение после безумного обновления ia32-libs, как через несколько дней возникла новая проблема: Skype (да и не только Skype) стал падать с сообщением об ошибке:

[-]
View Code (Unknown Language)
ALSA lib ../../src/conf.c:2700:(snd_config_hooks_call) Cannot open shared library /usr/lib/alsa-lib/libasound_module_conf_pulse.so
ALSA lib ../../../src/control/control.c:909:(snd_ctl_open_noupdate) Invalid CTL hw:0

Читать статью «Возвращаем Skype к жизни в Ubuntu Intrepid Ibex на 64-битной платформе» полностью…