Re: Hanging processes [LONG with debugging output]

1999-12-15 Thread Tony Demark

In message [EMAIL PROTECTED], Doug MacEac
hern writes:
 (gdb) longmess
  at /opt/local/perl/Apache/Constants.pm line 19
 Apache::Constants::AUTOLOAD() called at /opt/local/perl/Apache/Regis
try

hmm, add this to .gdbinit:
define perl_get_sv
set $sv = perl_get_sv($arg0, 0)
printf "%s\n", $sv ? ((XPV*) ((SV*)$sv)-sv_any)-xpv_pv : "undef"
end

and run:

(gdb) perl_get_sv("Apache::Constants::AUTOLOAD")

what does that print?


gdb'd several different hanging processes to make sure that this is repeatable. The 
only changes were expected (eval # and scalar ref in 'longmess'):

Dont know if this information helps or not, but setting MaxRequestsPerChild to 1 
prevents these processes from appearing - setting it even to 2 is enough for them to 
start hanging.

Thanks,
- Tony

wrist:root[23]#   gdb /opt/apache/bin/httpd.debug 752
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.7"...

/opt/local/apache/bin/752: No such file or directory.
Attaching to program `/opt/apache/bin/httpd.debug', process 752
Reading symbols from /usr/lib/libsocket.so.1...done.
Reading symbols from /usr/lib/libnsl.so.1...done.
Reading symbols from /usr/lib/libdl.so.1...done.
Reading symbols from /usr/lib/libm.so.1...done.
Reading symbols from /usr/lib/libc.so.1...done.
Reading symbols from /usr/lib/libcrypt_i.so.1...done.
Reading symbols from /usr/lib/libmp.so.2...done.
Reading symbols from /usr/lib/libgen.so.1...done.
Reading symbols from /usr/platform/SUNW,Ultra-250/lib/libc_psr.so.1...done.
Reading symbols from /opt/local/lib/perl5/auto/Data/Dumper/Dumper.so...done.
Reading symbols from /opt/local/lib/perl5/auto/B/B.so...done.
Reading symbols from /opt/local/lib/perl5/auto/Fcntl/Fcntl.so...done.
Reading symbols from /opt/local/lib/perl5/auto/DB_File/DB_File.so...done.
Reading symbols from /opt/local/perl/auto/Time/HiRes/HiRes.so...done.
Reading symbols from /usr/lib/nss_files.so.1...done.
Reading symbols from /opt/local/lib/perl5/auto/IO/IO.so...done.
Reading symbols from /opt/local/lib/perl5/auto/Socket/Socket.so...done.
Symbols already loaded for /usr/lib/libsocket.so.1
Symbols already loaded for /usr/lib/libnsl.so.1
Symbols already loaded for /usr/lib/libdl.so.1
Symbols already loaded for /usr/lib/libm.so.1
Symbols already loaded for /usr/lib/libc.so.1
Symbols already loaded for /usr/lib/libcrypt_i.so.1
Symbols already loaded for /usr/lib/libmp.so.2
Symbols already loaded for /usr/lib/libgen.so.1
Symbols already loaded for /usr/platform/SUNW,Ultra-250/lib/libc_psr.so.1
Symbols already loaded for /opt/local/lib/perl5/auto/Data/Dumper/Dumper.so
Symbols already loaded for /opt/local/lib/perl5/auto/B/B.so
Symbols already loaded for /opt/local/lib/perl5/auto/Fcntl/Fcntl.so
Symbols already loaded for /opt/local/lib/perl5/auto/DB_File/DB_File.so
Symbols already loaded for /opt/local/perl/auto/Time/HiRes/HiRes.so
Symbols already loaded for /usr/lib/nss_files.so.1
Symbols already loaded for /opt/local/lib/perl5/auto/IO/IO.so
Symbols already loaded for /opt/local/lib/perl5/auto/Socket/Socket.so
0x168c74 in Perl_sv_2cv (sv=0x257708, st=0xffbeefc4, gvp=0xffbeefc8, lref=1) at 
sv.c:3971
3971*st = GvESTASH(gv);
(gdb) source /opt/local/src/info_services/mod_perl-1.21/.gdbinit
(gdb) curinfo
20:/opt/local/perl/Apache/Constants.pm
(gdb) longmess
 at /opt/local/perl/Apache/Constants.pm line 20
Apache::Constants::AUTOLOAD() called at /opt/local/perl/Apache/Registry.pm 
line 43
Apache::Registry::handler('Apache=SCALAR(0x769970)') called at (eval 73) line 0
eval {...} called at (eval 73) line 0

(gdb) perl_get_sv("Apache::Constants::AUTOLOAD")
Apache::Constants::OPT_EXECCGI
(gdb) quit
The program is running.  Quit anyway (and detach it)? (y or n) y
Detaching from program: /opt/apache/bin/httpd.debug LWP1



Re: Hanging processes [LONG with debugging output]

1999-12-15 Thread Doug MacEachern

 (gdb) perl_get_sv("Apache::Constants::AUTOLOAD")
 Apache::Constants::OPT_EXECCGI

what I was about to suggest trying is already in the modperl cvs Changes:
 preload Apache::Constants::OPT_EXECCGI() for Apache::{Registry,PerlRun}
 thanks to Chris Remshaw for spotting this w/ Apache::DProf

so try the cvs snapshot, or in a PerlRequire file, preload it like so:

Apache::Constants::OPT_EXECCGI();




Re: Hanging processes [LONG with debugging output]

1999-12-14 Thread Tony Demark


In message [EMAIL PROTECTED], Doug MacEac
hern writes:
On Tue, 14 Dec 1999, Tony Demark wrote:

 
 Doug,
 
 Tried what you suggest, but with seemingly disappointing results. (below) Th
e 
 hangs seem to come _after_ the logging phase - the heap just keep growing an
d 
 the process takes up all available CPU, but it doesn't seem to be doing 
 anything!

if you could try the libperld.a+PERL_DEBUG=1 suggestion, and a new
stacktrace, it might provide some new clues.


Now we are getting somewhere, I hope. There seem to be several people that are 
having a similar problem to this, are any of you seeing similar output?

Thanks,
- Tony
 
wrist:root[11]#   gdb /opt/apache/bin/httpd.debug 20831
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.7"...

/opt/local/apache/bin/20831: No such file or directory.
Attaching to program `/opt/apache/bin/httpd.debug', process 20831
Reading symbols from /usr/lib/libsocket.so.1...done.
Reading symbols from /usr/lib/libnsl.so.1...done.
Reading symbols from /usr/lib/libdl.so.1...done.
Reading symbols from /usr/lib/libm.so.1...done.
Reading symbols from /usr/lib/libc.so.1...done.
Reading symbols from /usr/lib/libcrypt_i.so.1...done.
Reading symbols from /usr/lib/libmp.so.2...done.
Reading symbols from /usr/lib/libgen.so.1...done.
Reading symbols from /usr/platform/SUNW,Ultra-250/lib/libc_psr.so.1...done.
Reading symbols from /opt/local/lib/perl5/auto/Data/Dumper/Dumper.so...done.
Reading symbols from /opt/local/lib/perl5/auto/B/B.so...done.
Reading symbols from /opt/local/lib/perl5/auto/Fcntl/Fcntl.so...done.
Reading symbols from /opt/local/lib/perl5/auto/DB_File/DB_File.so...done.
Reading symbols from /opt/local/perl/auto/Time/HiRes/HiRes.so...done.
Reading symbols from /usr/lib/nss_files.so.1...done.
Reading symbols from /opt/local/lib/perl5/auto/IO/IO.so...done.
Reading symbols from /opt/local/lib/perl5/auto/Socket/Socket.so...done.
Symbols already loaded for /usr/lib/libsocket.so.1
Symbols already loaded for /usr/lib/libnsl.so.1
Symbols already loaded for /usr/lib/libdl.so.1
Symbols already loaded for /usr/lib/libm.so.1
Symbols already loaded for /usr/lib/libc.so.1
Symbols already loaded for /usr/lib/libcrypt_i.so.1
Symbols already loaded for /usr/lib/libmp.so.2
Symbols already loaded for /usr/lib/libgen.so.1
Symbols already loaded for /usr/platform/SUNW,Ultra-250/lib/libc_psr.so.1
Symbols already loaded for /opt/local/lib/perl5/auto/Data/Dumper/Dumper.so
Symbols already loaded for /opt/local/lib/perl5/auto/B/B.so
Symbols already loaded for /opt/local/lib/perl5/auto/Fcntl/Fcntl.so
Symbols already loaded for /opt/local/lib/perl5/auto/DB_File/DB_File.so
Symbols already loaded for /opt/local/perl/auto/Time/HiRes/HiRes.so
Symbols already loaded for /usr/lib/nss_files.so.1
Symbols already loaded for /opt/local/lib/perl5/auto/IO/IO.so
Symbols already loaded for /opt/local/lib/perl5/auto/Socket/Socket.so
0x164f80 in Perl_sv_free (sv=0x93fb14) at sv.c:3052
3052del_SV(sv);
(gdb) source /opt/local/src/info_services/mod_perl-1.21/.gdbinit
(gdb) curinfo
19:/opt/local/perl/Apache/Constants.pm
(gdb) longmess
 at /opt/local/perl/Apache/Constants.pm line 19
Apache::Constants::AUTOLOAD() called at /opt/local/perl/Apache/Registry
.pm line 43
Apache::Registry::handler('Apache=SCALAR(0x77f528)') called at (eval 
71) line 0
eval {...} called at (eval 71) line 0

(gdb) 

And some output from many of the programs in /usr/proc/bin :
pcred
20831:  e/r/suid=3101  e/r/sgid=101
pfiles
20831:  /opt/apache/bin/httpd.debug -f /opt/apache/conf/httpd.conf
  Current rlimit: 72 file descriptors
   0: S_IFCHR mode:0666 dev:32,0 ino:27161 uid:0 gid:3 rdev:13,2
  O_RDONLY
   1: S_IFCHR mode:0666 dev:32,0 ino:27161 uid:0 gid:3 rdev:13,2
  O_WRONLY
   2: S_IFREG mode:0664 dev:32,5 ino:105173 uid:0 gid:1 size:3917089
  O_WRONLY|O_APPEND
   4: S_IFDOOR mode:0444 dev:188,0 ino:26629 uid:0 gid:0 size:0
  O_RDONLY|O_LARGEFILE FD_CLOEXEC  door to nscd[232]
   5: S_IFREG mode:0664 dev:190,1 ino:2036833 uid:1012 gid:101 size:716
  O_RDONLY FD_CLOEXEC
   6: S_IFREG mode:0644 dev:190,1 ino:1370144 uid:0 gid:1 size:180224
  O_RDONLY|O_LARGEFILE FD_CLOEXEC
   7: S_IFREG mode:0444 dev:190,1 ino:1019302 uid:0 gid:1 size:2852
  O_RDONLY FD_CLOEXEC
   8: S_IFREG mode:0644 dev:190,1 ino:1370145 uid:0 gid:1 size:344064
  O_RDONLY|O_LARGEFILE FD_CLOEXEC
  15: S_IFREG mode:0664 dev:32,5 ino:105173 uid:0 gid:1 size:3917089
  O_WRONLY|O_APPEND
  16: S_IFSOCK mode:0666 dev:183,0 ino:37659 uid:0 gid:0 size:0
  O_RDWR
  17: S_IFSOCK mode:0666 dev:183,0 ino:37654 uid:0 gid:0 size:0
  O_RDWR
  18: S_IFREG mode:0644 dev:32,5