[Date Prev][Date Next]
Re: Bug In Slapd Error Handling (ITS#313)
Redirected to devel...
At 01:54 PM 10/22/99 +0200, Lars Uffmann wrote:
>"Kurt D. Zeilenga" wrote:
>> At 10:42 AM 9/29/99 GMT, email@example.com wrote:
>> >Full_Name: Lars Uffmann
>> >Version: 1.2.6
>> >OS: linux 2.2.10
>> >URL: ftp://ftp.openldap.org/incoming/
>> >Submission from: (NULL) (126.96.36.199)
>> >In some situations it is possible that slapd will send LDAP_SUCCESS in response
>> >to search requests even though an internal (ldbm) backend error occured.
>> >The client will recive an empty search result with code LDAP_SUCCESS and has to
>> >assume the entry(ies) in question doesn't exist.
>> >ldbm backend build with version 2.7.5 (04/18/99) of Sleepycat Software's
>> >Berkeley DB.
>> >I am not able to reproduce this problem. My specific problem occured after
>> >weeks of continous service.
>> The problem is that the some back-ldbm IDL routines
>> have no mechanism to distingish no index from an error.
>> This will require a bit of reworking of the internal
>> interfaces, but should be done for both 2.0 and 1.2.x.
>> I'll add it to the TODO list.
>Can you give me some hints? I would like to work on this.
Basically the interface to IDL routines (idl.c) need to
be changed such that errors can be returned. It's likely
that dn2id routines also need to modified.
I would start by adjusting idl_fetch() interface such
that the caller can distingish no index from an error
(ie: return an error code, pass back the ID_BLOCK by
reference). You'll also need to check other low level
routines (such as dn2*).
Then make sure you can ripple the error condition up
the call stack to the routine responsible for sending
responses back to the client. Then adjust this routine
to send a more appropriate response.
Be sure to work with latest devel codes (available via
AnonCVS) and submit incremental changes via our Issue
Tracking System. I also encourage you to review our
devel faq, guidelines, and such.
Kurt D. Zeilenga <Kurt@OpenLDAP.org>
OpenLDAP Project <http://www.OpenLDAP.org/>