--On Friday, June 16, 2006 3:10 PM -0700 Howard Chu <hyc@symas.com> wrote:
Aaron Richton wrote:Somewhere between 5-10 times per day (which really isn't that often for the load around here), slapd outputs "connection_read(%ld): no connection!\n", i.e. from connection.c. I ran a grep with context today, and found that invariably, these are immediately following a "closed" log message. For example:
conn=626905 fd=109 closed connection_read(109): no connection!
conn=648575 fd=109 closed connection_read(109): no connection!
conn=649607 fd=112 closed connection_read(112): no connection!
conn=165899 fd=347 closed connection_read(347): no connection!
conn=27471 fd=99 closed connection_read(99): no connection!
Why would slapd try to "connection_read" something that it apparently knows is "closed"?
Generally this happens when a client sends an Unbind request and then immediately closes the connection. slapd processes the Unbind (in a worker thread) and begins closing the connection. At the same time, the listener thread gets a Readable event from select() because it detects that the connection has been closed by the remote end. The listener always calls connection_read() for Readable events, it doesn't know that a close is already in progress. This has nothing to do with any Solaris bugs or workarounds, it's just a natural occurrence, and the circumstance has always been there.
--Quanah
-- Quanah Gibson-Mount Principal Software Developer ITS/Shared Application Services Stanford University GnuPG Public Key: http://www.stanford.edu/~quanah/pgp.html