[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#7099) slapadd segfaults with back-mdb and slapo-dds



dieter@dkluenter.de wrote:
> Full_Name: Dieter Kluenter
> Version:
> OS:
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (141.38.5.243)
>
>
> back-mdb tries to read entry databases prior to initialisation, which leeds to
> segmatation fault

slapo-dds was misbehaving, fixed now in master. Overlays that hook the db_open 
entry point are required to check for (slapMode & SLAP_TOOL_MODE) and exit as 
a no-op in that case. slapo-dds was not doing this. It caused slapcat to crash 
as well.

This problem was triggered by using the dds-max_dynamocObjects setting, which 
makes slapo-dds fire off a search at startup to find entries to expire/delete. 
Of course this operation fails in slapcat anyway, since the database is opened 
read-only.

>
> output of slapadd -d-1
> [...]
> 4ed4888e slapadd startup: initiated.
> 4ed4888e backend_startup_one: starting "o=avci,c=de"
> 4ed4888e mdb_db_open: "o=avci,c=de"
> 4ed4888e mdb_db_open: database "o=avci,c=de":
> dbenv_open(/home/dieter/openldap/var/ldap-dds).
> 4ed4888e str2filter "(&(objectClass=dynamicObject)(entryExpireTimestamp<=20111129072258Z))"
> 4ed4888e begin get_filter
> 4ed4888e AND
> 4ed4888e begin get_filter_list
> 4ed4888e begin get_filter
> 4ed4888e EQUALITY
> 4ed4888e end get_filter 0
> 4ed4888e begin get_filter
> 4ed4888e LE
> 4ed4888e end get_filter 0
> 4ed4888e end get_filter_list
> 4ed4888e end get_filter 0
> Speicherzugriffsfehler
>
> the appropriate slapo-dds configuration:
> [...]
> overlay dds
> dds-max-ttl 86400
> dds-min-ttl 0
> dds-default-ttl 3600
> dds-interval    1800
> dds-tolerance   60
> dds-max-dynamicObjects 100
> dds-state TRUE
> [...]
>
> -Dieter
>
>


-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/