perl-docs-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject cvs commit: modperl-docs/src/docs/2.0/user/troubleshooting troubleshooting.pod
Date Mon, 08 Mar 2004 04:59:05 GMT
stas        2004/03/07 20:59:05

  Modified:    src/docs/2.0/user/troubleshooting troubleshooting.pod
  document the issue with /dev/random blocking
  Revision  Changes    Path
  1.18      +52 -0     modperl-docs/src/docs/2.0/user/troubleshooting/troubleshooting.pod
  Index: troubleshooting.pod
  RCS file: /home/cvs/modperl-docs/src/docs/2.0/user/troubleshooting/troubleshooting.pod,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -u -r1.17 -r1.18
  --- troubleshooting.pod	11 Feb 2004 08:56:23 -0000	1.17
  +++ troubleshooting.pod	8 Mar 2004 04:59:05 -0000	1.18
  @@ -21,6 +21,52 @@
   =head1 Configuration and Startup
  +=head2 Server Hanging at the Startup
  +First you need to figure out where it hangs. strace(1) or an
  +equivalent utility can be used to discover which call the server hangs
  +on. You need to start the process in the single server mode so you
  +will have only one process to monitor.
  +For example if the server hangs during 'make test', you should run:
  +  % cd modperl-2.0
  +  % strace /path/to/httpd -d t -f t/conf/httpd.conf \
  +(and may be C<-DPERL_USEITHREADS> if it was in the original output of
  +C<make test>.)
  +If the trace ends with:
  +  open("/dev/random", O_RDONLY)           = 3
  +  read(3, <unfinished ...>
  +then you have a problem with your OS, as F</dev/random> doesn't have
  +enough entropy to give the required random data, and therefore it
  +hangs. This may happen in C<apr_uuid_get()> C call or Perl
  +The solution in this case is either to fix the problem with
  +your OS, so that
  +  % perl -le 'open I, "/dev/random"; read I, $d, 10; print $d'
  +will print some random data and not block. Or you can use an even
  +simpler test:
  +  % cat /dev/random
  +which should print some random data and not block.
  +If you can't fix the OS problem, you can rebuild Apache 2.0 with
  +C<--with-devrandom=/dev/urandom> - however, that is not secure for
  +certain needs.  Alternatively setup EGD and rebuild Apache 2.0 with
  +C<--with-egd>. Apache 2.1/apr-1.1 will have a self-contained PRNG
  +generator built-in, which won't rely on F</dev/random>.
   =head2 (28)No space left on device
   httpd-2.0 is not very helpful at telling which device has run out of
  @@ -105,6 +151,12 @@
   =head1 Runtime
  +=head2 C<APR::UUID-E<gt>new> Hanging
  +See L<Server Hanging at the Startup|/Server_Hanging_at_the_Startup>.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message