You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by rb...@apache.org on 2000/02/23 04:11:31 UTC

Re: need ap_initialize() before create_process()->...->lock_inter()- >semop()

This has been reported before.  I am in the middle of traveling from NC to
CA, and cannot fix this right now.  If somebody else wants to, go ahead.
I haven't investigated this at all yet.

Ryan

On Tue, 22 Feb 2000 trawick@us.ibm.com wrote:

> 
> 
> I think this is ancient news (is there a working archive somewhere?), but I
> can't verify without opening my mouth...  2.0 pre-forked hangs at startup.
> Basically, ap_initialize() needs to get called before create_process(),
> since create_process() passes op_on structure to semop() to get a lock, but
> op_on isn't initialized until ap_initialize() calls setup_lock().  Here is
> a slight rearrangement to main() which calls ap_initialize() earlier...
> 
> *** src/main/http_main-old.c    Tue Feb 22 14:56:50 2000
> --- src/main/http_main.c        Tue Feb 22 14:58:13 2000
> ***************
> *** 290,310 ****
>       int configtestonly = 0;
>       const char *confname = SERVER_CONFIG_FILE;
>       const char *def_server_root = HTTPD_ROOT;
> !     process_rec *process = create_process(argc, (const char **)argv);
>       server_rec *server_conf;
> !     ap_context_t *pglobal = process->pool;
> !     ap_context_t *pconf = process->pconf;
>       ap_context_t *plog; /* Pool of log streams, reset _after_ each read
> of conf */
>       ap_context_t *ptemp; /* Pool for temporary config stuff, reset often
> */
>       ap_context_t *pcommands; /* Pool for -C and -c switches */
> 
>       ap_server_argv0 = process->short_name;
> 
>       ap_util_uri_init();
> 
>       g_pHookPool=pglobal;
> -
> -     ap_initialize();
> 
>       ap_setup_prelinked_modules(process);
> 
> --- 290,312 ----
>       int configtestonly = 0;
>       const char *confname = SERVER_CONFIG_FILE;
>       const char *def_server_root = HTTPD_ROOT;
> !     process_rec *process;
>       server_rec *server_conf;
> !     ap_context_t *pglobal;
> !     ap_context_t *pconf;
>       ap_context_t *plog; /* Pool of log streams, reset _after_ each read
> of conf */
>       ap_context_t *ptemp; /* Pool for temporary config stuff, reset often
> */
>       ap_context_t *pcommands; /* Pool for -C and -c switches */
> 
> +     ap_initialize();
> +     process = create_process(argc, (const char **)argv);
> +     pglobal = process->pool;
> +     pconf = process->pconf;
>       ap_server_argv0 = process->short_name;
> 
>       ap_util_uri_init();
> 
>       g_pHookPool=pglobal;
> 
>       ap_setup_prelinked_modules(process);
> 
> 
> 
> 


Come to the first official Apache Software Foundation
Conference!!!   <http://ApacheCon.Com/>

_______________________________________________________________________________
Ryan Bloom                        	rbb@ntrnet.net
2121 Stonehenge Dr. Apt #3
Raleigh, NC 27615		Ryan Bloom -- thinker, adventurer, artist,
				     writer, but mostly, friend.
-------------------------------------------------------------------------------