--On Friday, June 16, 2006 3:10 PM -0700 Howard Chu <[EMAIL PROTECTED]> 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.
Huh, I never saw it appear in my logs until after the file descriptor fix
went in.
--Quanah
--
Quanah Gibson-Mount
Principal Software Developer
ITS/Shared Application Services
Stanford University
GnuPG Public Key: http://www.stanford.edu/~quanah/pgp.html