Opublikowano formalne wydanie serwera LDAP ReOpenLDAP 1.2.0, stworzone w celu przywrócenia projektu po zablokowaniu jego repozytorium na GitHubie. W kwietniu GitHub usunął konta i repozytoria wielu rosyjskich deweloperów powiązanych z firmami objętymi sankcjami USA, w tym repozytorium ReOpenLDAP. W związku z odnowionym zainteresowaniem użytkowników ReOpenLDAP, postanowiono przywrócić projekt do życia.
Projekt ReOpenLDAP został stworzony w 2014 roku w celu rozwiązania problemów, które pojawiły się podczas korzystania z pakietu OpenLDAP w infrastrukturze PАО „MegaFon”, gdzie serwer LDAP był zaangażowany w jeden z subsystemów infrastruktury (NGDR to UDR (User Data Repository), zgodnie z normą 3GPP 23.335, i stanowi centralny punkt przechowywania danych o wszystkich rodzajach usług abonentów w IT-infrastrukturze operatora telekomunikacyjnego). Takie zastosowanie wymagało przemysłowej eksploatacji specyficznego katalogu LDAP w trybie 24×7, o rozmiarze 10–100 milionów rekordów, w scenariuszu o wysokim obciążeniu (10K aktualizacji i 50K odczytów na sekundę) oraz w topologii multi-master.
Symas Corp, jako główni deweloperzy, komitujący i właściciele kodu OpenLDAP, nie byli w stanie rozwiązać powstałych problemów, dlatego zdecydowano się spróbować zrobić to samodzielnie. Jak później się okazało, błędów w kodzie było znacznie więcej, niż można było przypuszczać. W związku z tym poświęcono więcej wysiłku, niż planowano, a ReOpenLDAP wciąż stanowi znaczną wartość i (zgodnie z dostępnymi informacjami) jest jedynym serwerem LDAP, który w pełni i niezawodnie wspiera topologię multi-master dla RFC-4533, także w scenariuszach o wysokim obciążeniu.
W 2016 roku osiągnięto cele projektowe, a wsparcie i rozwój projektu w interesie PАО „MegaFon” zostały zakończone. Następnie ReOpenLDAP był aktywnie rozwijany i wspierany przez kolejne trzy lata, jednak stopniowo straciło to sens:
- Technologicznie „MegaFon” migrował z ReOpenLDAP na Tarantool, co jest architektonicznie poprawne;
- Nie było wyraźnie zainteresowanych użytkowników ReOpenLDAP;
- Do projektu nie przyłączył się nikt z deweloperów, zarówno z powodu wysokiego progu wejścia, jak i niskiego zapotrzebowania na sam ReOpenLDAP;
- Rozwój i wsparcie zajmowały zbyt dużo czasu głównego programisty, który profesjonalnie oddalił się od komercyjnej eksploatacji ReOpenLDAP.
Repozytorium ReOpenLDAP było nieaktywne do kwietnia 2022 roku, kiedy to administracja Github usunęła powiązane konta i samo repozytorium bez żadnych ostrzeżeń ani wyjaśnień. Ostatnio autor otrzymał kilka zapytań dotyczących ReOpenLDAP, w tym o lokalizację repozytorium i stan bazy kodu. Dlatego zdecydowano się na minimalne odświeżenie projektu, przygotowanie wydania technicznego i wykorzystanie tej wiadomości do poinformowania wszystkich zainteresowanych.
Aktualny stan projektu, także w odniesieniu do OpenLDAP:
- Import poprawek i ulepszeń z OpenLDAP nie był prowadzony od grudnia 2018 roku. Dla odpowiedzialnych zastosowań należy przeanalizować wszystkie poprawki w OpenLDAP i zaimportować te odpowiednie.
- Aktualne wersje OpenLDAP są teraz tworzone na podstawie gałęzi 2.5. Dlatego poniższe poprawki zostały wprowadzone jedynie w gałęzi „devel” (która odpowiadała OpenLDAP 2.5), a następnie scalone w „master” (która przed scaleniem odpowiadała OpenLDAP 2.4).
- W 2018 roku wciąż występowały dziedziczne problemy z OpenLDAP w config-bakend. W szczególności, przy zmianie konfiguracji serwera poprzez config-bakend (konfigurowanie LDAP przez LDAP) występują stany wyścigu lub problemy rekurencyjne, w tym zakleszczenia (deadlocks).
- Prawdopodobnie istnieją problemy z budowaniem z aktualnymi wersjami OpenSSL/GnuTLS;
- Zaliczany jest podstawowy zestaw własnych testów, z wyjątkiem wymagających TLS/SSL;
Ostatnie poprawki:
- Biblioteka libmdbx została zaktualizowana do aktualnej wersji z usunięciem wszystkich zauważonych problemów z niekompatybilnością, które pojawiły się z powodu rozwoju biblioteki. Jednak w stronach man prawdopodobnie pozostały jakieś przestarzałe informacje.
- Zastosowano aktualną wersję autotools 2.71.
- Dokonano małych poprawek w odpowiedzi na część ostrzeżeń aktualnego kompilatora gcc 11.2.
Źródło: opennet.ru
