httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dean Gaudet <dgau...@arctic.org>
Subject Re: mod_perl + threaded Perl
Date Fri, 20 Mar 1998 02:32:57 GMT
Until linuxthreads stops using SIGUSR1, no.  i.e. not in the linux 2.0/2.1
time frames.  I think even the glibc threads are broken this way too... 
and I consider it to be a library/kernel bug rather than apache bug
because SIGUSR1 is supposed to be there for the application. 

Incidentally given the general signal brokenness w.r.t. linux clone() and
threads I'm not sure how well Apache, especially 1.3 will behave.  Apache
assumes that signals work as they do in single threaded posix processes.
As soon as you can end up with signal delivery going to another tid... I
dunno what'll happen/go wrong. 

So be careful.  But do tell how things go!  'cause we're going to be there
in the thick of it soon enough as we try to write a multithreaded apache. 

Dean

On Fri, 20 Mar 1998, Doug MacEachern wrote:

> I followed Malcolm's hunch, ripped out all SIGUSR1 stuff from http_main.c and
> http_protocol.c, sure enough, I can now run threaded Perl inside the server.
> Any thoughts on how Apache could be persuaded to co-exist with linux threads?
> 
> -Doug
> 
> Malcolm Beattie wrote:
> 
> > Doug MacEachern writes:
> > > I just setup a thread 5.004_59, 1.07_04 builds (with the patch below)
> > > and passes 'make test' 100%
> > >
> > > I still see the same problem I saw ~3 months ago when trying to run
> > > ext/Thread/*.t inside httpd.  join.t and create.t are two that I tried.
> > > I start httpd in -X (non-forking) or not, the child who tries to run a
> > > Thread script appears to fork a child, which also forks a child, and all
> > > 3 are stuck.   I attached the original child with gdb, the child is
> > > stuck in sigsuspend, heres a backtrace:
> > >
> > > #0  0x400a7854 in sigsuspend ()
> > > #1  0x400c64e8 in __shtab ()
> > > #2  0x4011637c in newthread (startsv=0x83dfe3c, initargs=0x83dfe90,
> > >     classname=0x83e4450 "Thread") at Thread.xs:245
> >
> > What platform is this? Is Apache compiled with appropriate compiler
> > options for threading (-D_REENTRANT or whatever)? What does Apache
> > do about signal handlers: does it set many up (and with signal,
> > sigaction, sigvec or what?). If you're using LinuxThreads, is Apache
> > using SIGUSR1 or SIGUSR2 which would clash with LinuxThreads
> > internals (changing to RT signals for 2.2 I should think)?
> >
> > --Malcolm
> >
> > --
> > Malcolm Beattie <mbeattie@sable.ox.ac.uk>
> > Unix Systems Programmer
> > Oxford University Computing Services
> 
> 
> 
> 


Mime
View raw message