The problem: we accept a websockets message, send a message via unix socket to another program, it sends a response back via a different socket to our websockets module. It works 2 times, on the third attempt, the return socket is successfully written to. We have a listener who is waiting (socket accept call), yet this latter never receives the reply. Apache 2.4 (Linux, 12.04 Ubuntu) has a main process and three helper processes. It selects one helper per websockets message. I've done strace on each helper and the main process. I get what I expect from the helpers, 2 quiescent and 1 processing up to and including our accept. The main process, when this third attempt is made, seems to go haywire and spawns another 28 processes, seems to hit some limit and then kills them off. How can I make Apache (a) not lose its mind, (b) get my message delivered to the accept in the daughter process that is executing our websockets code? Our websockets code appears to be working correctly and not failing to release any memory or resources. I've checked return values on the socket close for the writer and he reports no error. Turning up the logging level doesn't give me any more information. Turning up the resource limits doesn't appear to effect Apache for this problem. I'm stumped as is everyone in my organization. |