OpenLDAPでsegmantation falt
Linux上でOpenLDAPをコンパイルリンク。テストデータを投入して、ldapsearchで検索をかけたところ、slapdがsegmentation faltで落ちるという現象がおきました。
slapd -d 3
とデバッグモードで動作させたときのログがこちら。
ber_get_next: tag 0x30 len 57 contents: ber_get_next ldap_read: want=8 error=Resource temporarily unavailable do_search ber_scanf fmt ({miiiib) ber: >>> dnPrettyNormal: <dc=hoge,dc=co,dc=jp> <<< dnPrettyNormal: <dc=hoge,dc=co,dc=jp>, <dc=hoge,dc=co,dc=jp> ber_scanf fmt (m) ber: ber_scanf fmt ({M}}) ber: ==> limits_get: conn=4 op=1 dn="[anonymous]" => bdb_search bdb_dn2entry("dc=hoge,dc=co,dc=jp") => bdb_dn2id("dc=hoge,dc=co,dc=jp") <= bdb_dn2id: got id=0x00000001 Segmentation fault
ldapをコンパイルリンクしたときのBerkeley DBのバージョンは4.6.18。これが怪しいかなと見当をつけ、すこしバージョンを戻して4.4.20をインストールした後にOpenLDAPを再コンパイル、リンク。どうもあたりだったようでslapdは落ちなくなりました。