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)