On Wed, 30 Apr 2008, hyc(a)symas.com wrote:
rein(a)OpenLDAP.org wrote:
> We have seen a case where
"assert(SLAP_SOCK_IS_ACTIVE(s))" in
> slapd_clr_write() failed, see the stack trace at the end. The
> last log message (at loglevel stat) related to the socket was
> "fd=657 closed (connection lost on write)". The comment where
> slapd_daemon_task() calls connection_write() makes me believe
> that slapd_clr_write() should not have use assert here. Remove
> it or include it as a condition in the following if statement?
How frequently can you reproduce this? I'm tempted to say move the
assert into the if (SLAP_SOCK_IS_WRITE()) block, and see if it still
triggers.
This is the only occurrence I have found of this abort, so it is not very
reproduce able :-( But the core shows that SLAP_SOCK_IS_WRITE would be
false (as would SLAP_SOCK_IS_READ), so moving the assert into the if
block should fix this case. And asserting a writeable socket is also
active makes sence to me.
Rein