Rainer Jung wrote: > On 19.01.2009 19:48, Rainer Jung wrote: >> On 19.01.2009 18:33, William A. Rowe, Jr. wrote: >>> Rainer Jung wrote: >>>> I built trunk on XP today. When trying to run it, I get a restart loop >>>> for the child process, and the error log contains repetitions of: >>> >>>> [Sun Jan 18 19:20:43 2009] [notice] Child 4556: Starting thread to >>>> listen on port 8000. >>>> [Sun Jan 18 19:20:43 2009] [error] (OS 10038)Ein Vorgang bezog sich auf >>>> ein Objekt, das kein Socket ist. : Child 4556: Encountered too many >>>> AcceptEx faults accepting client connections. Possible causes: dynamic >>>> address renewal, or incompatible VPN or firewall software. >>> >>> I'd love to know what leads into this WSAENOTSOCK ... failing to recycle >>> the socket or the listener socket falling apart. Needs review, maybe >>> some >>> extra magic to log this distinction. >>> >>> The "falling back on 'none'" is going to be a problem till I finish that >>> code this week. I'm actually attacking two problems, having each listen >>> thread pay attention to up to 62 different sockets, and adding the >>> required >>> classic accept() logic. So... this listener may be accepting on both the >>> classic listen logic and the AcceptEx logic on different listeners at >>> the >>> same time. > > When running with httpd -X, I can't observe the problem. Inspecting the > structures indicates, that the problem might actually be the listen > socket in AcceptEx (nlsd), not the accept socket. > > Could be, that there's something wrong with the code that copies the > listen sockets from the main process to the child.
Exactly; one of the primary possibilities is that a well documented API, WSADuplicateSocket does not behave for a given socket provider.