The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск LDAP-сервера ReOpenLDAP 1.1.9

02.08.2018 13:11

Состоялся релиз LDAP-сервера ReOpenLDAP 1.1.9 "Airborne Positive" — форка проекта OpenLDAP, с устранением массы ошибок и ряда доработок для стабильной работы репликации. Проект ориентирован на надежность и производительность при использовании в решениях с высокой нагрузкой и промышленных системах в сфере телекоммуникаций.

В версии 1.1.9 исправлено несколько ошибок, в частности в коде поддержки SSL/TLS устранены взаимоблокировки и гонки при инициализации/завершении. В набор тестов добавлена проверка функционирования репликации с SSL/TLS. В configure добавлена проверка наличия библиотеки libnsspem.so, из-за отсутствия которой возникают малопонятные ошибки при использовании сертификатов в PEM-формате.

Особенности ReOpenLDAP:

  • Корректная и надёжная работа репликации в режиме multi-master;
  • Команда "reopenldap [iddqd] [idkfa] [idclip]";
  • Новые настройки:
    • quorum { [vote-sids ...] [vote-rids ...] [auto-sids] [auto-rids] [require-sids ...] [require-rids ...] [all-links] }
    • "quorum limit-concurrent-refresh
    • "biglock { none | local | common }
    • syncprov-showstatus { none | running | all }
    • crash-backtrace on|off
    • coredump-limit {mbytes}
    • memory-limit {mbytes}
  • Модернизация хранилища mdbx для повышения масштабируемости и улучшения репликации;
  • Поддержка срезов состояния (checkpoint) при изменении раздела или по таймеру;
  • Поддержка опции requirecheckpresent для syncrepl;
  • Поддержка настройки keepalive для входящих соединений;
  • Встроенная система проверки памяти с поддержкой ls-malloc;
  • Пригодность для отладки в AddressSanitizer и Valgrind;
  • Возможность применения оптимизации на стадии компоновки (LTO, Link-Time Optimization) при сборке в GCC и Clang;
  • Поддержка OpenSSL 1.1.x, Mozilla NSS, GnuTLS и LibreSSL 2.5.x;
  • Перенос всех исправлений из веток openldap/master и openldap/2.4;
  • Большое число исправлений, связанных с репликацией;
  • Устранено около 5 тысяч предупреждений при сборке в GCC/clang и 1 тысяча предупреждний при проверке в ThreadSanitizer
  • Устранено большинство утечек памяти;
  • Решены проблемы, выявленные статистическими анализаторами.


  1. Главная ссылка к новости (https://github.com/leo-yuriev/...)
  2. OpenNews: Релиз LDAP-сервера ReOpenLDAP 1.1.7
  3. OpenNews: Релиз-кандидат ReOpenLDAP 1.1.7
  4. OpenNews: Доступен ReOpenLDAP 1.1.6, форк проекта OpenLDAP
Автор новости: erthink
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49067-reopenldap
Ключевые слова: reopenldap, ldap
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (23) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ryoken (ok), 13:53, 02/08/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Команда "reopenldap [iddqd] [idkfa] [idclip]";

    0_o. А что это? (Ну и kfa - неправославно, надо просто fa. И вместо idclip - idspispopd :D ).

     
     
  • 2.3, Zomby (?), 17:44, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > 0_o. А что это?

    Эх, молодо-зелено...

     
     
  • 3.5, Аноним (5), 18:28, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, я эти сочетания помню, а что они делают в сабже?
     
     
  • 4.7, Аноним (7), 00:04, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +9 +/
    > Ну, я эти сочетания помню, а что они делают в сабже?

    Тут несложно догадаться:
    iddqd - при запуске сервера его невозможно более остановить. kill -9 не сработает
    idkfa - запущенный сервер может прибивать другие, мешающие его работе демоны
    idclip - игнорирование настроек фаервола

     
     
  • 5.15, xxxx (??), 12:51, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    это как в антивирусе касперского опция - не давать работать другим программам?!
     
     
  • 6.22, Аноним84701 (ok), 13:18, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > это как в антивирусе касперского опция - не давать работать другим программам?!

    Это как в любом травлении баек - главное, делать это с серьезнейшим видом:
    https://github.com/leo-yuriev/ReOpenLDAP/blob/41203741313b5cffd22ec13186f6207e



    .B reopenldap [iddqd] [idkfa]
    Управляет специфичными для ReOpenLDAP флагами и режимом совместимости
    с исходным OpenLDAP. Надеемся, Вы оцените нашу дань борьбе с монстрами
    и прочей нечистой силой в начале 90\-х.
    .RS
    .TP
    .B iddqd
    Выключает режим совместимости с OpenLDAP; при этом меняется интерпретация
    некоторых параметров конфигурации и поведение службы:
    .RS
    .LP
    1) Число, задающее в директиве \fBcheckpoint\fP интервал для \fBmdb\fP, будет
    интерпретироваться как секунды, а без \fBiddqd\fP как минуты. При большом



     

  • 1.4, Аноним (4), 18:03, 02/08/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Круто, интересно когда дистрибутивы будут его использовать вместо openldap
     
     
  • 2.6, Аноним (6), 19:59, 02/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее поехавший напишет systemd-lightweightdirectoryserverd, который автоматом попадёт из федоры во все дистрибутивы.
     
     
  • 3.9, kvaps (ok), 02:45, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В этих краях уже давно используют 389ds
     
     
  • 4.10, Аноним (-), 06:21, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    389ds слишком нетак написан, его надо переписать.
     
  • 2.8, Аноним (8), 02:21, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Когда будет репы для разных дистибутивов с мета-пакетом совместимости с офф. лдап
     

  • 1.11, Аноним (11), 06:47, 03/08/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как нам Re-организовать Рабкрин (с) :)))
     
  • 1.12, PnDx (ok), 11:33, 03/08/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "reopenldap [iddqd] [idkfa] [idclip]" и "Новые настройки" — надо полагать, секретные? Т.к. не нашли отражения в манах.

    * Озадачился сборкой .deb, т.к. автор похоже забил (и я уже́ где-то понимаю, почему).
    * Тесты "test050-syncrepl-multimaster" и "test019-syncrepl-cascade" вылетают.
    Предположительно, из-за короткого таймаута. (Создаётся несколько серверов и между ними гоняют данные. Тут же проверка и вылет если не сошлось.)
    Также срабатывает регрессия its8667. (slapcat неверно работает с ключом "-g") и its8800 "changes are not refreshed when an old db is reloaded". Это всё под ubuntu 14.04 (и ничего смешного ©).

     
     
  • 2.13, erthink (ok), 12:35, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пакеты решено не делать до слома совместимости в следующих версиях. Если кратко, то будет новый форма mdb-базы (см https://github.com/leo-yuriev/libmdbx) и изменение в API libreldap ради устранения вороха предупреждений от Coverity.

    На медленных или сильно нагруженных машинах некоторые тесты действительно могут отваливаться по таймаутам, например такое регулярно происходит на старых Эльбрусах, ARM-ах, MIPS-ах и т.д. В 2014-2015 годах задаваемые таймауты целенаправленно максимально уменьшались для того чтобы ускорить прохождение тестов (примерно с часа-двух до 15-20 минут). В планах сделать расчет таймаутов динамическим в зависимости от "мегагерцев" на нагрузки на машину, но пока некогда.

    С тестом test019-syncrepl-cascade всё сложнее, он действительно "мигающий". В частности из-за https://github.com/leo-yuriev/ReOpenLDAP/issues/121 также сбоит ITS8444 и что-то еще. Проблема унаследована от OpenLDAP и не понятно что с ней делать. Если переписывать репликацию/синхронизацию, то лучше сразу начинаться с переписывания всего кода... Удалять delta-режим я пока не стал, хотя для ReOpenLDAP с полноценно работающей не-delta репликацией это логично.

    Регресcия its8667 была исправлена в mater коммитом e8b90cc92c от 2018-06-27, а следующим коммитом 313cc6203c отключено игнорирование результатов соответствующего теста. К выходу релиза 1.1.9 этот тест запускался более 500 раз. Поэтому я не знаю почему он у вас отвалился.

    В любом случае, pull-request-ы с исправлениями приветствуются.

     
     
  • 3.17, PnDx (ok), 13:03, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    * Касаемо таймаутов, у меня сборочный "стенд" запускался с обрезанными до 100 iops. Полагаю, причина в этом. С богомипсами там как раз таки неплохо.

    * its8667 я стало быть получил, счекаутясь на стабильную 1.1.8. Уйдёт в 1.1.9.
    """
    git checkout origin/stable/1.1
    Note: checking out 'origin/stable/1.1'.

    HEAD is now at fb0b291... reopenldap: regenerate configure for 1.1.8
    """
    * Я ни разу не билд-инженер и собираю под свои местечковые нужды. Так что checkout делал "на глазок", углядев отдельную ветку stable. Если Вас не затруднит, добавьте пожалуйста хинт "для тупых" типа "чтобы собрать стейбл чекаут вон-туда".

    * На дебианизацию точно придётся кого-то подписывать. Или сначала перефаршивать потроха оригинала, вынося захардкоженный путь к базе etc. Я пока взял "рыбу" из базара и добавил критичное из имеющегося openldap. Критично "--with-tls=openssl", т.к. местный tls протух с 2013 г.

     
     
  • 4.20, erthink (ok), 13:15, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > * Касаемо таймаутов, у меня сборочный "стенд" запускался с обрезанными до 100
    > iops. Полагаю, причина в этом. С богомипсами там как раз таки
    > неплохо.

    Да, видимо дело в этом.

    > * its8667 я стало быть получил, счекаутясь на стабильную 1.1.8. Уйдёт в
    > 1.1.9.
    > """
    > git checkout origin/stable/1.1
    > Note: checking out 'origin/stable/1.1'.
    > …
    > HEAD is now at fb0b291... reopenldap: regenerate configure for 1.1.8

    Хм, может вы git pull забыли.
    В https://github.com/leo-yuriev/ReOpenLDAP/commits/stable/1.1 уже есть 1.1.9.

    > * На дебианизацию точно придётся кого-то подписывать. Или сначала перефаршивать потроха
    > оригинала, вынося захардкоженный путь к базе etc. Я пока взял "рыбу"
    > из базара и добавил критичное из имеющегося openldap. Критично "--with-tls=openssl", т.к.
    > местный tls протух с 2013 г.

    В ReOpenLDAP давно были влиты все релевантные правки от меинтейнеров OpenLDAP в Debian и RHEL/Fedora, кажется даже из SUSE.
    В купе с переходом на актуальную версию autotools с путем к /etc нет никаких проблем, см опции configure.

     
  • 2.14, erthink (ok), 12:45, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    iddqd и idkfa описаны в man-страницах, например
    https://github.com/leo-yuriev/ReOpenLDAP/blob/87c635d512b75d7500b1beb5d8920711

    Видимо вы куда-то не туда смотрите и/или не то запускаете.

    А для idclip есть https://github.com/leo-yuriev/ReOpenLDAP/issues/156, он в целом это внутренняя настройка которая помогает примерно только при отладке.

     
     
  • 3.19, PnDx (ok), 13:08, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > iddqd и idkfa описаны в man-страницах, например
    > https://github.com/leo-yuriev/ReOpenLDAP/blob/87c635d512b75d7500b1beb5d8920711

      Только по-русски? Я в английской локали проверял.
    Вряд ли у меня в манах отсебятина, т.к. специфика типа "dreamcatcher" в man slapd-mdb — на месте.

    > Видимо вы куда-то не туда смотрите и/или не то запускаете.
    > А для idclip есть https://github.com/leo-yuriev/ReOpenLDAP/issues/156, он в целом это
    > внутренняя настройка которая помогает примерно только при отладке.

      Ага, спасибо.

     
     
  • 4.21, erthink (ok), 13:17, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> iddqd и idkfa описаны в man-страницах, например
    >> https://github.com/leo-yuriev/ReOpenLDAP/blob/87c635d512b75d7500b1beb5d8920711
    >   Только по-русски? Я в английской локали проверял.
    > Вряд ли у меня в манах отсебятина, т.к. специфика типа "dreamcatcher" в
    > man slapd-mdb — на месте.

    https://github.com/leo-yuriev/ReOpenLDAP/blob/4023a0db765e05300393612305d1f3d6
    Предполагаю что у вас установлен slapd из дистрибутива и man показывает его станицы.

     

  • 1.16, xxxx (??), 12:52, 03/08/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    как затестить?
    готовые пакеты есть для centos6, centos7, с возможностью поднятия оригинального config?
     
     
  • 2.18, erthink (ok), 13:04, 03/08/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пакетов нет. Поэтому ./configure --prefix=XXX && make install.

    Причины могу повторить еще раз - будет слом совместимости, поэтому сейчас пакеты решено не делать.
    Для миграции нужно будет переливать базы через slapcat + slapadd.

    Ветка master и релизы 1.1.x совместимы с оригинальным OpenLDAP 2.4.x.

    Ветка devel будущие релизы 1.2.x пока совместимы с будущим OpenLDAP 2.5.x по конфигу, но не по формату mdb-базы (см. https://github.com/leo-yuriev/libmdbx).

    В 1.2 я также заменю оригинальную/хромую хеш-функцию в индексах на t1ha (https://github.com/leo-yuriev/t1ha).
    Совместимость оригинальный OpenLDAP 2.5.x с базами 2.4.x также не обеспечивается, в частности из-за перехода с 32-битного хеша на 64-битный (ради уменьшения коллизий).

     
     
  • 3.23, x (?), 09:12, 05/08/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а что за поддержка ls-malloc ? как-то негуглится путного нечего
     
     
  • 4.24, erthink (ok), 11:30, 05/08/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > а что за поддержка ls-malloc ? как-то негуглится путного нечего

    https://github.com/leo-yuriev/ReOpenLDAP/blob/master/servers/slapd/sl_malloc.c

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру