stas        2004/03/07 20:59:05

  Modified:    src/docs/2.0/user/troubleshooting troubleshooting.pod
  Log:
  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 \
  +    -DAPACHE2 -DONE_PROCESS -DNO_DETATCH
  +
  +(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
  +C<APR::UUID-E<gt>new>.
  +
  +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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to