You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by dean gaudet <de...@arctic.org> on 2001/11/09 18:35:39 UTC

[PATCH] Re: Trouble with accept serialization

On Fri, 9 Nov 2001, [koi8-r] áÌÅËÓÁÎÄÒ wrote:

> Hello Dean Gaudet,
>
> Could you help me in one question? Nobody can said me whats metter...
> So, if i try to start my apache 1.3.22 on UnixWare 7, it is not run
> and in then "error.log" writes message "No default accept serialization
> known!!". What I must to do to start Apache correctly?

Alexander -- you should be able to just add "AcceptMutex fcntl" to your
config and it'll work.

Others -- the more permanent fix is a patch attached at the bottom.

see src/CHANGES:

  *) Addition of the AcceptMutex runtime directive. The accept mutex
     method is now runtime controllable. The suite of available methods
     per platform is defined at compile time (with HAVE_FOO_SERIALIZED_ACCEPT
     noting that the method is available and works, and
     USE_FOO_SERIALIZED_ACCEPT noting that it should be the default
     method in absense of any AcceptMutex line, or via AcceptMutex default)
     and selectable at runtime. The full (current) suite is uslock,
     pthread, sysvsem, fcntl, flock, os2sem, tpfcore and none, but
     not all platforms accept all methods. [Jim Jagielski]

i'm guessing "AcceptMutex fcntl" by looking at what apache used to do on
unixware. (maybe there's better documentation elsewhere about AcceptMutex,
i haven't looked -- this certainly might need to be a FAQ question.)

there's a bug in apache's unixware 7.0 configuration which was introduced
like 3 years ago:

: revision 1.248
: date: 1998/12/12 05:59:57;  author: fielding;  state: Exp;  lines: +3 -1
: UnixWare 7 has improved support for some stuff so that we no longer
: need USE_FCNTL_SERIALIZED_ACCEPT, NO_LINGCLOSE, or NO_KILLPG.
: Change already noted in CHANGES, but wasn't completed.
:
: Submitted by:   Ron Record <rr...@sco.com>
: Reviewed by:    Roy Fielding
:
: Index: src/include/ap_config.h
: ===================================================================
: RCS file: /home/cvs/apache-1.3/src/include/ap_config.h,v
: retrieving revision 1.247
: retrieving revision 1.248
: diff -u -r1.247 -r1.248
: --- src/include/ap_config.h	1998/12/12 03:54:18	1.247
: +++ src/include/ap_config.h	1998/12/12 05:59:57	1.248
: @@ -569,8 +569,11 @@
:  #endif /*_OSD_POSIX*/
:
:  #elif defined(UW)
: +#if UW < 700
: +#define USE_FCNTL_SERIALIZED_ACCEPT
:  #define NO_LINGCLOSE
:  #define NO_KILLPG
: +#endif
:  #undef  NO_SETSID
:  #undef NEED_STRDUP
:  #define NEED_STRCASECMP
: @@ -587,7 +590,6 @@
:  #endif
:  #define NET_SIZE_T size_t
:  #define HAVE_SYSLOG 1
: -#define USE_FCNTL_SERIALIZED_ACCEPT
:
:  #elif defined(DGUX)
:  #define NO_KILLPG

the NO_LINGCLOSE and NO_KILLPG changes are ok, but this patch should not
have conditionalised the USE_FCNTL_SERIALIZED_ACCEPT.  i suggest that
the patch below be committed to fix this bug.

-dean

Index: src/include/ap_config.h
===================================================================
RCS file: /home/cvs/apache-1.3/src/include/ap_config.h,v
retrieving revision 1.318
diff -u -r1.318 ap_config.h
--- src/include/ap_config.h	2001/10/09 19:29:46	1.318
+++ src/include/ap_config.h	2001/11/09 17:18:15
@@ -631,10 +631,12 @@
 #endif /*_OSD_POSIX*/

 #elif defined(UW)
-#if UW < 700
 #define HAVE_FCNTL_SERIALIZED_ACCEPT
+#if UW < 700
 #define NO_LINGCLOSE
 #define NO_KILLPG
+#else
+#define SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 #endif
 #undef  NO_SETSID
 #undef NEED_STRDUP