You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Randy Terbush <ra...@zyzzyva.com> on 1996/06/16 23:21:37 UTC

Holdup on 1.1b4

FYI - A response from one of the 2 people reporting problems on
UnixWare machines has not helped a lot. Since no one in the group
seems to have access to UnixWare, or is having similar problems,
I'm not sure what the call should be on this release.

The only personal experience that I can add to this bug is
that I occasionally get errors from the while() in else NULL
listeners. (on Solaris 2.5) Nothing recreatable.

It looks like UnixWare may be setting errno to something unexpected.
Below is the email from one of the persons reporting the problem.

	
	accept_mutex_on();  /* Lock around "accept", if necessary */

	if (listeners != NULL)
	{
	    fd_set fds;

	    for (;;) {
		memcpy(&fds, &listenfds, sizeof(fd_set));
		csd = select(listenmaxfd+1, &fds, NULL, NULL, NULL);
		if (csd == -1 && errno != EINTR)
		    log_unixerr("select",NULL,"select error", server_conf);
		if (csd <= 0) continue;
		for (sd=listenmaxfd; sd >= 0; sd--)
		    if (FD_ISSET(sd, &fds)) break;
		if (sd < 0) continue;

		clen=sizeof(sa_client);
		do csd=accept(sd, &sa_client, &clen);
		while (csd == -1 && errno == EINTR);
		if (csd != -1) break;
		log_unixerr("accept", "(client socket)", NULL, server_conf);
	    }
	} else
	    while ((csd=accept(sd, &sa_client, &clen)) == -1) 
		if (errno != EINTR) 
		    log_unixerr("accept",NULL,"socket error: accept failed",
				 server_conf);

	accept_mutex_off(); /* unlock after "accept" */




----- User response ------

Thanks for the sugestion I applied the patch and it still seems to die with
the same error although the error log message is a bit different at the moment
(See Below)

I still feel it's probably a sco unixware bug but thats my gut feel

regards

Byron

[Sun Jun 16 22:36:10 1996] accept: Not a typewriter
[Sun Jun 16 22:36:10 1996] - socket error: accept failed
[Sun Jun 16 22:36:20 1996] accept: Not a typewriter
[Sun Jun 16 22:36:20 1996] - socket error: accept failed
[Sun Jun 16 22:36:21 1996] accept: Not a typewriter
[Sun Jun 16 22:36:21 1996] - socket error: accept failed
[Sun Jun 16 22:36:21 1996] accept: Not a typewriter
[Sun Jun 16 22:36:21 1996] - socket error: accept failed
[Sun Jun 16 22:36:22 1996] accept: Not a typewriter
[Sun Jun 16 22:36:22 1996] - socket error: accept failed

At 11:52 15/06/96 -0500, you wrote:
>Please try the following patch made against 1.1b3. Don't bet the
>farm on this patch. Since I don't have access to an SVR4 machine
>anymore, I have not tested these changes. This is a hunch.
>
>*** http_main.c.orig	Sat Jun 15 11:33:32 1996
>--- http_main.c	Sat Jun 15 11:43:54 1996
>***************
>*** 1203,1212 ****
>  		if (csd != -1) break;
>  		log_unixerr("accept", "(client socket)", NULL, server_conf);
>  	    }
>! 	} else
>! 	    while ((csd=accept(sd, &sa_client, &clen)) == -1) 
>! 		if (errno != EINTR) 
>! 		    log_unixerr("accept",NULL,"socket error: accept failed", server_conf);
>  
>  	accept_mutex_off(); /* unlock after "accept" */
>  
>--- 1203,1220 ----
>  		if (csd != -1) break;
>  		log_unixerr("accept", "(client socket)", NULL, server_conf);
>  	    }
>! 	}
>! 	else
>! 	{
>! 	    csd = accept(sd, &sa_client, &clen);
>! 	    
>! 	    if (csd == -1)
>! 	    {
>! 		accept_mutex_off(); /* unlock after "failed accept" */
>! 		log_unixerr("accept",NULL,"socket error: accept failed", server_conf);
>! 		exit (0);
>! 	    }
>! 	}
>  
>  	accept_mutex_off(); /* unlock after "accept" */
>  
>
>
>