Re: Redirection Location MUST be absolute (was Re: Send a cookie,AND a redirect ?)
Let me bring this back to mod_perl for a sec: If a CGI script sends out a Location: header that doesn't begin with a protocol (like http: or ftp:), then it's an *internal* redirect. For an internal redirect, the browser never sees the transaction. The web server just does a "goto", picking up the new resource, delivering the content to the browser AS IF IT WAS THE OLD URL. The browser doesn't even know it happened (thus the problem I said earlier about relative URLs in the delivered document being broken). Just for clarification, you are speaking _specifically_ about non-mod_perl CGIs, correct? Doing this (via mod_perl): $r-header_out(Location = '/foo/bar/'); causes an external redirect (REPLY headers being sent to the browser), as in: glory:tony[1]% telnet www.uswx.com 80 Trying 207.106.24.123... Connected to sundog.uswx.com. Escape character is '^]'. GET /us/wx/PA HTTP/1.0 HTTP/1.0 302 Found Date: Fri, 09 Feb 2001 14:29:32 GMT Server: Apache/1.3.9 (Unix) mod_perl/1.21 Location: /us/wx/PA/ Content-Type: text/html !DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN" HTMLHEAD TITLE302 Found/TITLE /HEADBODY H1Found/H1 The document has moved A HREF="/us/wx/PA/"here/A.P /BODY/HTML
[JOB] Sr Web Developers
[ Crossposted: mason and modperl mailling lists ] I am in the process of obtaining talent to fill-out our Technology Group here at GoodCompany. We are looking for experienced Perl programmers with web and SQL experience who are seeking a position where they will be able to provide critical input into the direction of our company. Our site is being built using Mason and Java running on RedHat Linux and Solaris. Job Description: Senior Developer * Motivated, self-directed individual responsible for the design and implementation of web-based applications * Minimum 5 years programming in C, C++, Perl, Java, or other high level language. * Comfortable with SQL and accessing / modifying databases from within applications * Experience with XML, WML a plus * Skilled in software design and life-cycle development * Familiar with Solaris / Linux * Ability to work well under pressure and adapt a must * Excellent verbal communication skills and team-oriented thinking * Desire to teach / mentor Jr group members * This is a full-time, on-site employee position GoodCompany Background: GoodCompany (www.goodcompany.com) was formed in the second quarter of 2000 to provide business services to small businesses. Backed by Advanta Corp (www.advanta.com) and based outside Philadelphia, GoodCompany will be launching its first suite of online services in the first quarter of 2001. If you are interested and/or would like more information, feel free to contact me at: [EMAIL PROTECTED] Thanks, Tony Demark Chief Technology Architect GoodCompany 446 North Lane Conshohocken, PA 19428 (610) 818 - 1700
Re: User-Agent: contype
If I am to believe AltaVista, it looks like a "free Perl CGI script that sends a requested file using user supplied MIME content type[s]". URL: http://lambda.nic.fi/~ktmatu/contype/ - Tony In message [EMAIL PROTECTED], horape@tinuviel. compendium.com.ar writes: =A1Hola! I've started getting lots of access from the "contype" User-Agent. Does somebody know what is it? TIA, HoraPe --- Horacio J. Pe=F1a [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED]
Re: Hanging processes SOLVED!
That got it. I cannot thank you enough. The sites are smokin' now. Recap for interested parties: * Solaris 2.7 * mod_perl 1.21 Observed bugs: * occassional httpd processes stop responding * they stay in 'run' state (via 'top') * only print 'brk(...)' on occasion via 'truss' * utilyze all available CPU * continuously allocate more mem into heap (/usr/proc/bin/pmap) Cause (Please correct me if this is not correct): * AUTOLOADing of Apache::Constants::OPT_EXECCGI() can cause this to occur Fix: Preload Apache::Constants::OPT_EXECCGI() in either PerlRequire'd file or Perl section (Thanks to Chris Remshaw for coming up with it and to Doug MacEachern for pointing it out to me) Lessons (re)?learned: * gdb and debugging versions are your friend * Check the CVS tree for fixes and reports - who know, you might actually find the answer * You definately find better products in the bazaar than in the cathedral - Tony In message [EMAIL PROTECTED], Doug MacEac hern writes: (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]
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
Doug, Tried what you suggest, but with seemingly disappointing results. (below) The hangs seem to come _after_ the logging phase - the heap just keep growing and the process takes up all available CPU, but it doesn't seem to be doing anything! This is really getting dis-heartening. Thanks, - Tony gdb /opt/apache/bin/httpd 7396 Attaching to program `/opt/apache/bin/httpd', process 7396 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/perl/auto/BSD/Resource/Resource.so...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/perl/auto/BSD/Resource/Resource.so 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 0xff251ac8 in memcmp () from /usr/platform/SUNW,Ultra-250/lib/libc_psr.so.1 (gdb) (gdb) source /opt/local/src/info_services/mod_perl-1.21/.gdbinit (gdb) curinfo Attempt to extract a component of a value that is not a structure pointer. (gdb) longmess Attempt to extract a component of a value that is not a structure pointer. (gdb) In message [EMAIL PROTECTED], Doug MacEa chern writes: On Fri, 10 Dec 1999, Tony Demark wrote: I am having a problem with hanging httpd processes. I have done some AV searches as well as investigated the list archives and did not find any conclusive answer to this problem. If I missed it, can someone point me in t he right direction? If any more information will help decode this problem, I ca n reproduce the problem really easily (bot hitting our stage site causes a few of these processes to pop up). a few things could shed some more light: build a libperld.a and compile with PERL_DEBUG=1 (see SUPPORT doc) and/or, in gdb: (gdb) source mod_perl-1.21/.gdbinit (gdb) curinfo should tell you the line/filename of the offending Perl code add this to the .gdbinit (which is in the modperl cvs tree): define longmess set $sv = perl_eval_pv("Carp::longmess()", 1) printf "%s\n", ((XPV*) ($sv)-sv_any )-xpv_pv end (gdb) longmess should produce a Perl stacktrace
Re: Hanging processes [LONG with debugging output]
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:
Seg fault on fork w/ PerlModule
I have compiled the following: Apache 1.3.9 mod_perl 1.21 (PERL_AUTHEN PERL_LOG PERL_STACKED_HANDLERS) on: Ultra 10 Solaris 7 with: gcc 2.95.2 19991024 perl 5.005_03 When starting an httpd process with a 'PerlModule' defined in the conf file, the process will seg fault when it attempts to fork: open("/opt/apache/logs/access_log", O_WRONLY|O_APPEND|O_CREAT, 0644) = 3 fcntl(3, F_DUPFD, 0x000F) = 16 close(3)= 0 chdir("/") = 0 fork() = 16024 Incurred fault #6, FLTBOUNDS %pc = 0xD002 siginfo: SIGSEGV SEGV_MAPERR addr=0xD002 Received signal #11, SIGSEGV [default] siginfo: SIGSEGV SEGV_MAPERR addr=0xD002 *** process killed *** However, comment out the 'PerlModule' statement, and the process forks fine and exits: open("/opt/apache/logs/access_log", O_WRONLY|O_APPEND|O_CREAT, 0644) = 3 fcntl(3, F_DUPFD, 0x000F) = 16 close(3)= 0 chdir("/") = 0 fork() = 16030 llseek(0, 0, SEEK_CUR) = 101628 _exit(0) I didn't see anything about this on the maillist... get anyone give me an idea of where I should at least start to track down this problem? Thanks, - Tony