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

Re: mdb - no space left?

On 09/08/2012 10:04 AM, Howard Chu wrote:
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.

It is the one in mdb_node_add. Attached is the script captured gdb session. As you'll see in the capture, the line in mdb_node_add is 4806 in my source tree.

Frank Swasey                    | http://www.uvm.edu/~fcs
Sr Systems Administrator        | Always remember: You are UNIQUE,
University of Vermont           |    just like everyone else.
  "I am not young enough to know everything." - Oscar Wilde (1854-1900)

Attachment: mdb_abend.log.gz
Description: application/gzip