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

Re: mdb - no space left?



Frank Swasey wrote:
> Today at 4:34am, Howard Chu wrote:
> 
>> There are only two places in libmdb that return ENOSPC. Both of them imply
>> that there's a bug in the library. It would be helpful to run under a debugger
>> with breakpoints set on both locations, to see which has occurred.
> 
> I see that is in mdb_node_add and mdb_update_key.  If you will provide 
> guidance (I'm not versed in gdb), I will see what I can find for you.  I 
> have preserved the environment, so I can do this debugging repeatedly.
> 
Attach gdb to the running slapd, set breakpoints, then trigger the bug:

% gdb <path to slapd> <PID of running slapd>
(gdb) list mdb_node_add
(gdb) break 4952     <-- line number of 1st "return ENOSPC;" statement
(gdb) break 5355
(gdb) continue

(Use the correct source line numbers for your source tree.) Trigger the bug.
When gdb breaks:

(gdb) bt full

That's all.

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