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.
-------------------------------------------------------------------------------