Re: Redirection Location MUST be absolute (was Re: Send a cookie,AND a redirect ?)

2001-02-09 Thread Tony Demark

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

2000-12-18 Thread Tony Demark

[ 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

2000-08-01 Thread Tony Demark


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!

1999-12-16 Thread Tony Demark


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]

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

1999-12-14 Thread Tony Demark


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]

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: 

Seg fault on fork w/ PerlModule

1999-11-15 Thread Tony Demark


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