Hi,
During long (and very active) run of simple web server, implemented using standard module, found a problem:
Indexing the NULL value with "set_nonblocking". /usr/local/pike/7.4.28/lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/Request.pike:62: Protocols.HTTP.Server.Request()->attach_fd(0,Protocols.HTTP.Server.Port(),bin/shttpd()->Handler) /usr/local/pike/7.4.28/lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/Port.pike:56: Protocols.HTTP.Server.Port()->new_connection() The fix is trivial (for 7.4.28; but the problem exists in 7.5.* as well): --- Port.pike~ 2004-01-30 00:45:12.000000000 +0100 +++ Port.pike 2004-01-30 00:45:12.000000000 +0100 @@ -52,6 +52,10 @@ static void new_connection() { Stdio.File fd=port->accept(); + + if (!fd) + return; // There is nothing to accept --aldem + Request r=request_program(); r->attach_fd(fd,this_object(),callback); }
The reason is unknown - why there is nothing to accept, but I guess it happens under _very_ heavy load (or DoS).
Regards, /Al