You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by "Cipollone, Peter (Factiva)" <Pe...@factiva.com> on 2002/02/14 03:25:39 UTC

httpd 1.3.23 + custom module hanging at startup on RHL7.2?

Hello all,

I have a problem that has been killing me and I was wondering if anyone else
out there has seen this scenario.  This note is long, but I attempted to
include as much detail as possible in one shot.  Thanks in advance for any
info.

Pete

Scenario:
We have written an Apache module in C++ (modified Makefiles and
apxs-generated goods per web instructions).  This module has registered a
"module initializer" and then an array of five dispatch handlers.  This
module worked fine on RedHat Linux 6.2 (under Apache 1.3.20) and on Solaris
7 (not sure which Apache version, but 19 < v < 23?).

When we moved the module to RedHat 7.2, we began to experience this hanging
behavior.  

System Configuration:
-------------------------------------
Hardware:	2x1.26GHz x86, 2GB RAM
OS:		Linux fdac1 2.4.7-10smp #1 SMP Thu Sep 6 17:09:31 EDT 2001
i686 unknown
Tool:		gcc-2.95.3
AP Build:	configure --prefix=/usr/local --enable-shared=max
AP Config:	Stripped down => mod_mime, mod_log_config, mod_so +
<OUR-MODULE>
		Running with MaxClients=1 for debugging (this has no effect
on behavior)
Other:	ldd for our module yielded
      libxerces-c1_5_1.so => /usr/local/src/XMLLIB/lib/libxerces-c1_5_1.so
(0x400c0000)
      libstdc++-libc6.2-2.so.3 => /usr/local/lib/libstdc++-libc6.2-2.so.3
(0x40348000)
      libm.so.6 => /lib/libm.so.6 (0x4039e000)
      libc.so.6 => /lib/libc.so.6 (0x403c0000)
      libpthread.so.0 => /lib/libpthread.so.0 (0x404f6000)
      /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
-------------------------------------

Here is what happens (to the best of my limited knowledge-- i am the manager
of the team, not a developer):

1. we start httpd normally "apachectl start"
2. first httpd calls its init() twice?
3. httpd hangs, and ps -ef returns this:

140 S root 29834 1  0  70 0  -  1613 rt_sig 21:03 ?   00:00:00
/usr/local/apache/bin/httpd

we tried moving our "module initializer" procedure to "child_init" in the
module struct, but this only deferred the problem through two forks.  i
straced this with 

strace -f -ff -o /tmp/httpd

and found three files.  here are the tails:

file: httpd (the original from "apachectl start")
------------------------------------------------
fcntl64(0x3, 0, 0xf, 0x40015e6c)        = 15
close(3)                                = 0
fcntl64(0xf, 0x3, 0x40015e6c, 0x3)      = 1025
fstat64(15, {st_mode=S_IFREG|0644, st_size=5194, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x40017000
_llseek(15, 0, [0], SEEK_CUR)           = 0
dup2(15, 2)                             = 2
chdir("/")                              = 0
fork()                                  = 19312
_exit(0)                                = ?
------------------------------------------------


file: tail /tmp/httpd.19312
------------------------------------------------
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
time(NULL)                              = 1013639297
wait4(-1, 0xbffff81c, WNOHANG, NULL)    = -1 ECHILD (No child processes)
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
time(NULL)                              = 1013639298
wait4(-1, 0xbffff81c, WNOHANG, NULL)    = -1 ECHILD (No child processes)
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
time(NULL)                              = 1013639299
wait4(-1, 0xbffff81c, WNOHANG, NULL)    = -1 ECHILD (No child processes)
select(0, NULL, NULL, NULL, {1, 0}
------------------------------------------------
(note this file stopped tracing right where it was [no \n was added])


file: httpd.19313
------------------------------------------------
fstat64(7, {st_mode=S_IFREG|0664, st_size=829, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x40024000
read(7, "<autocoder-config host=\"fdac1\" d"..., 102400) = 829
read(7, "", 98304)                      = 0
close(7)                                = 0
munmap(0x40024000, 4096)                = 0
brk(0x80ca000)                          = 0x80ca000
brk(0x80cb000)                          = 0x80cb000
brk(0x80cc000)                          = 0x80cc000
brk(0x80cd000)                          = 0x80cd000
brk(0x80ce000)                          = 0x80ce000
brk(0x80cf000)                          = 0x80cf000
brk(0x80e8000)                          = 0x80e8000
brk(0x80e9000)                          = 0x80e9000
brk(0x80ea000)                          = 0x80ea000
brk(0x80eb000)                          = 0x80eb000
time([1013638123])                      = 1013638123
rt_sigprocmask(SIG_SETMASK, NULL, [32], 8) = 0
rt_sigsuspend([]
------------------------------------------------
(note this file stopped tracing right where it was [no \n was added])

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: mod_rewrite/Timeout question.

Posted by Martin Haase-Thomas <mh...@meome-ag.de>.
unfortunately not. you should think of other solutions instead, maybe 
partially pre-generated code for contents of master records?

Kevin M. Shortt wrote:

>
>Hi All, 
>
>I would like to try something tricky. But am not
>sure if it can be done.
>
>I currently have a scenario where a pdf file gets created
>when a link is clicked. The pdf is dynamic and generated
>by data that is queried from a DB. So, if the query is 
>big enough, then the time it takes to generate it grows.
>Once this time is past my "Timeout" value (currently set
>to 300),  the connection is dropped.
>
>I don't want to open up my Timeout value for one url on
>my entire site. So I thought of an idea, if apache will allow 
>it.
>
>Can the Timeout value be set for a particular url subset?
>
>I was digging into mod_rewrite to see if it can do such 
>work, but I couldn't find it. So I am now asking here..
>
>Any thoughts to a better direction are welcome too.
>
>Thanks for any input.
>
>
>-k
>
>
>---------------------------------------------------------------------
>The official User-To-User support forum of the Apache HTTP Server Project.
>See <URL:http://httpd.apache.org/userslist.html> for more info.
>To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>For additional commands, e-mail: users-help@httpd.apache.org
>
>



---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


mod_rewrite/Timeout question.

Posted by "Kevin M. Shortt" <sh...@cgicafe.com>.

Hi All, 

I would like to try something tricky. But am not
sure if it can be done.

I currently have a scenario where a pdf file gets created
when a link is clicked. The pdf is dynamic and generated
by data that is queried from a DB. So, if the query is 
big enough, then the time it takes to generate it grows.
Once this time is past my "Timeout" value (currently set
to 300),  the connection is dropped.

I don't want to open up my Timeout value for one url on
my entire site. So I thought of an idea, if apache will allow 
it.

Can the Timeout value be set for a particular url subset?

I was digging into mod_rewrite to see if it can do such 
work, but I couldn't find it. So I am now asking here..

Any thoughts to a better direction are welcome too.

Thanks for any input.


-k


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: httpd 1.3.23 + custom module hanging at startup on RHL7.2?

Posted by jon schatz <jo...@divisionbyzero.com>.
On Wed, 2002-02-13 at 18:25, Cipollone, Peter (Factiva) wrote:
> Scenario:
> We have written an Apache module in C++ (modified Makefiles and
> apxs-generated goods per web instructions).  This module has registered a
> "module initializer" and then an array of five dispatch handlers.  This
> module worked fine on RedHat Linux 6.2 (under Apache 1.3.20) and on Solaris
> 7 (not sure which Apache version, but 19 < v < 23?).
> 
> When we moved the module to RedHat 7.2, we began to experience this hanging
> behavior.  
> 

Redhat's c++ libs can be flakey. With RH7.2, you can either:

1) install the compatability libraries, and use an old binary from 6.2, 

or

2) try it with gcc3, which fixes alot of the odd gcc 2.9.x bugs in
redhat, especially w/r/t stl.

-jon

-- 
jon@divisionbyzero.com || www.divisionbyzero.com
gpg key: www.divisionbyzero.com/pubkey.asc
think i have a virus?: www.divisionbyzero.com/pgp.html
"You are in a twisty little maze of Sendmail rules, all confusing."