Состоялся (https://github.com/leo-yuriev/ReOpenLDAP/releases/tag/v1.1.9) релиз LDAP-сервера ReOpenLDAP 1.1.9 (https://github.com/leo-yuriev/ReOpenLDAP/) "Airborne Positive" — форка проекта OpenLDAP, с устранением массы ошибок и ряда доработок для стабильной работы репликации. Проект ориентирован (https://github.com/leo-yuriev/ReOpenLDAP/wiki) на надежность и производительность при использовании в решениях с высокой нагрузкой и промышленных системах в сфере телекоммуникаций.
В версии 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
- Устранено большинство утечек памяти;
- Решены проблемы, выявленные статистическими анализаторами.
URL: https://github.com/leo-yuriev/ReOpenLDAP/releases/tag/v1.1.9
Новость: https://www.opennet.ru/opennews/art.shtml?num=49067
> Команда "reopenldap [iddqd] [idkfa] [idclip]";0_o. А что это? (Ну и kfa - неправославно, надо просто fa. И вместо idclip - idspispopd :D ).
> 0_o. А что это?Эх, молодо-зелено...
Ну, я эти сочетания помню, а что они делают в сабже?
> Ну, я эти сочетания помню, а что они делают в сабже?Тут несложно догадаться:
iddqd - при запуске сервера его невозможно более остановить. kill -9 не сработает
idkfa - запущенный сервер может прибивать другие, мешающие его работе демоны
idclip - игнорирование настроек фаервола
это как в антивирусе касперского опция - не давать работать другим программам?!
> это как в антивирусе касперского опция - не давать работать другим программам?!Это как в любом травлении баек - главное, делать это с серьезнейшим видом:
https://github.com/leo-yuriev/ReOpenLDAP/blob/41203741313b5c...
.B reopenldap [iddqd] [idkfa]
Управляет специфичными для ReOpenLDAP флагами и режимом совместимости
с исходным OpenLDAP. Надеемся, Вы оцените нашу дань борьбе с монстрами
и прочей нечистой силой в начале 90\-х.
.RS
.TP
.B iddqd
Выключает режим совместимости с OpenLDAP; при этом меняется интерпретация
некоторых параметров конфигурации и поведение службы:
.RS
.LP
1) Число, задающее в директиве \fBcheckpoint\fP интервал для \fBmdb\fP, будет
интерпретироваться как секунды, а без \fBiddqd\fP как минуты. При большом
Круто, интересно когда дистрибутивы будут его использовать вместо openldap
Скорее поехавший напишет systemd-lightweightdirectoryserverd, который автоматом попадёт из федоры во все дистрибутивы.
В этих краях уже давно используют 389ds
389ds слишком нетак написан, его надо переписать.
Когда будет репы для разных дистибутивов с мета-пакетом совместимости с офф. лдап
Как нам Re-организовать Рабкрин (с) :)))
"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 (и ничего смешного ©).
Пакеты решено не делать до слома совместимости в следующих версиях. Если кратко, то будет новый форма 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-ы с исправлениями приветствуются.
* Касаемо таймаутов, у меня сборочный "стенд" запускался с обрезанными до 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 г.
> * Касаемо таймаутов, у меня сборочный "стенд" запускался с обрезанными до 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.
iddqd и idkfa описаны в man-страницах, например
https://github.com/leo-yuriev/ReOpenLDAP/blob/87c635d512b75d...Видимо вы куда-то не туда смотрите и/или не то запускаете.
А для idclip есть https://github.com/leo-yuriev/ReOpenLDAP/issues/156, он в целом это внутренняя настройка которая помогает примерно только при отладке.
> iddqd и idkfa описаны в man-страницах, например
> https://github.com/leo-yuriev/ReOpenLDAP/blob/87c635d512b75d...Только по-русски? Я в английской локали проверял.
Вряд ли у меня в манах отсебятина, т.к. специфика типа "dreamcatcher" в man slapd-mdb — на месте.> Видимо вы куда-то не туда смотрите и/или не то запускаете.
> А для idclip есть https://github.com/leo-yuriev/ReOpenLDAP/issues/156, он в целом это
> внутренняя настройка которая помогает примерно только при отладке.Ага, спасибо.
>> iddqd и idkfa описаны в man-страницах, например
>> https://github.com/leo-yuriev/ReOpenLDAP/blob/87c635d512b75d...
> Только по-русски? Я в английской локали проверял.
> Вряд ли у меня в манах отсебятина, т.к. специфика типа "dreamcatcher" в
> man slapd-mdb — на месте.https://github.com/leo-yuriev/ReOpenLDAP/blob/4023a0db765e05...
Предполагаю что у вас установлен slapd из дистрибутива и man показывает его станицы.
как затестить?
готовые пакеты есть для centos6, centos7, с возможностью поднятия оригинального config?
Пакетов нет. Поэтому ./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-битный (ради уменьшения коллизий).
а что за поддержка ls-malloc ? как-то негуглится путного нечего
> а что за поддержка ls-malloc ? как-то негуглится путного нечегоhttps://github.com/leo-yuriev/ReOpenLDAP/blob/master/servers...