I recall reading somewhere that upgrading to 2.4.7 requires a full re-import or re-index, and I'm running with about a million records.
However, looking through the changelog, I see that the fixes in
2.4.7 are pretty significant, and I'm working on upgrading now.
In the meantime, I finally got a bit more log data about the crash:
<...normal operations...>
Dec 30 04:41:02 ldapm01 slapd[29500]: bdb(dc=testbox,dc=net): malloc: Cannot allocate memory: 3145764
Dec 30 04:41:02 ldapm01 slapd[29500]: bdb(dc=testbox,dc=net): txn_checkpoint: failed to flush the buffer cache Cannot allocate memory
Dec 30 04:41:02 ldapm01 slapd[29500]: conn=3877 fd=21 closed (connection lost)
Dec 30 04:41:02 ldapm01 slapd[29500]: conn=3876 op=2 RESULT tag=105 err=0 text=
Dec 30 04:41:02 ldapm01 slapd[29500]: bdb(dc=testbox,dc=net): malloc: Cannot allocate memory: 3145764
Dec 30 04:41:02 ldapm01 slapd[29500]: bdb(dc=testbox,dc=net): txn_checkpoint: failed to flush the buffer cache Cannot allocate memory
Dec 30 04:41:02 ldapm01 slapd[29500]: conn=3876 fd=12 closed (connection lost)
Dec 30 04:41:03 ldapm01 slapd[29500]: ch_realloc of 8676 bytes failed
<daemon dies>
I saw a few search results for this, including
http://www.openldap.org/lists/openldap-software/200504/msg00088.html , in which the error text ("
Cannot allocate memory: 3145764") is the exact same as mine.