Re: make test hangs
I did find some discussion of old HP-UX patches that fixed problems with stat calls that some of HP's apps had. There are no particulars and none pertain to system libraries, so they were no help. The issue here may be that I'm a relative novice when it comes to C/C++ programming. For instance, where does the magic happen that masks all of perls stat calls to stat64 when you compile with LFS support? Some of the info out there may contain the answer, but I can't see it for lack of this knowledge. I'm also wondering if the problem is not the actually call to stat64, which looks like it returns the requested info, but whatever comes next. That last line of the trace bothers me: [5889] In user-mode.[running] Very uninformative. Any guesses as to the meaning? One of the other things that has been bothering me is that when I built MP2 with perl 5.8.2, I couldn't get it to work without useshrlib defined. For perl 5.6.2, perl won't even compile successfully if you define this option. It tries to run miniperl during the compile and that hangs with a trace ending in the same mysterious line. The frustration thing about that is that LFS does not seem to affect this particular problem. I'm left wondering if perhaps the real problem here is that these two scenarios are trying to dynamically load libraries that don't lend themselves to dynamic loading (e.g. libpthread.sl) I eliminated the usual culprits such as pthread and libcl.sl and of course there are no helpful messages to point at something else. I do see warnings about a symbol _attribute_ being defined again and internal linking will occur, but as I said before, I don't know enough about C to know if that has any significance at all. Any thought on these? --- Will Fulmer Database Administrator Northampton Community College Bethlehem, PA Stas Bekman [EMAIL PROTECTED] 8/11/2004 10:29:05 PM William Fulmer wrote: We need to back up a bit. I tried something different just for giggles because I thought we might be on the wrong track with setuid. I wrote a little script that this #!/bin/bash /usr/opt/httpd-2.0.49/bin/httpd -d t -f conf/httpd.conf -DAPACHE2 -DONE_PROCESS -DNO_DETATCH stdout 21 tusc -p -f -v -o strace $! after running the script I went to a browser and hit http://cars-l:8529/TestAPI__request_rec The strace looks quite different this way (and the process does not exit). Turns out the setuid thing was the falt of my tusc command being setuid. (Sorry. insert sheepish look here) Trace from this latest test is more what I expected to see: [...] stat64(/opt/local/wrfopt/build/mod_perl-1.99_14/t/response/TestAPI/request_rec.pm, 0x6ff66648) = 0 st_dev: 64 0x05 st_ino: 171526 st_mode: S_IFREG|0644 st_nlink: 1 st_rdev: 0 st_size: 2503 st_blksize: 8192 st_blocks: 1 st_uid: 1073741829 st_gid: 27549760 st_atime: Tue Aug 10 16:50:28 2004 st_mtime: Fri Apr 18 02:18:58 2003 st_ctime: Mon Aug 9 20:40:52 2004 Hangs at this point. The compile with no LFS: [...] Blows right by the call to stat no problem. Get output in the browser say Ok to all 42 tests. The only notable difference being the call to stat as opposed to stat64. Excellent. So you've almost nailed it, William! Now try to see if there are any discussions on the web re: stat vs. stat64, e.g.: http://www.google.ca/search?hl=frie=UTF-8q=stat+stat64+hangsbtnG=Recherchermeta= may be some more keywords should be added, like your platform name... -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
William Fulmer wrote: I did find some discussion of old HP-UX patches that fixed problems with stat calls that some of HP's apps had. There are no particulars and none pertain to system libraries, so they were no help. The issue here may be that I'm a relative novice when it comes to C/C++ programming. For instance, where does the magic happen that masks all of perls stat calls to stat64 when you compile with LFS support? Some of the info out there may contain the answer, but I can't see it for lack of this knowledge. It happens during Perl compilation, where depending on compilation flags, either stat or stat64 is chosen. I'm also wondering if the problem is not the actually call to stat64, which looks like it returns the requested info, but whatever comes next. That last line of the trace bothers me: [5889] In user-mode.[running] Very uninformative. Any guesses as to the meaning? Not really. One of the other things that has been bothering me is that when I built MP2 with perl 5.8.2, I couldn't get it to work without useshrlib defined. For perl 5.6.2, perl won't even compile successfully if you define this option. It tries to run miniperl during the compile and that hangs with a trace ending in the same mysterious line. The frustration thing about that is that LFS does not seem to affect this particular problem. I'm left wondering if perhaps the real problem here is that these two scenarios are trying to dynamically load libraries that don't lend themselves to dynamic loading (e.g. libpthread.sl) I eliminated the usual culprits such as pthread and libcl.sl and of course there are no helpful messages to point at something else. I do see warnings about a symbol _attribute_ being defined again and internal linking will occur, but as I said before, I don't know enough about C to know if that has any significance at all. Any thought on these? All I can say that these aren't really mod_perl problems per se, even though they prevent you from using mod_perl. They are all OS level issues. You need to find someone who groks your platform's specifics and can advise us on using the right compile/linking flags to get things working. HP-UX is not the only platform mod_perl has a problem with. We have issues with AIX and other platforms. We have Randy Kobes and Steve Hay who do a great work handling the win32 build (which won't be possible w/o having an inhouse expert). The rest of us develop and familiar with Linux. We get random help for other platforms. Ideally what we need is to have an expert on those platforms Apache and Perl are running on to get mod_perl to run. I apologize for not being much of help with the problems you are having, William. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
I understand. I've already appealed to a perl.HPUX list to no avail. I've only been dealing with HP-UX myself for about a year now (mostly Linux and Solaris before this). I agree though. This is most likely not a problem with mod_perl itself, but rather some interaction with perl 5.6 and HP-UX. I may return with other questions if I decide to pursue the non LFS install (which at least completes the make test with failed tests rather than hanging). I will post the particulars if I ever track down this particular bugaboo. Thanks for your time. --- Will Fulmer Database Administrator Northampton Community College Bethlehem, PA Stas Bekman [EMAIL PROTECTED] 8/12/2004 3:32:49 PM William Fulmer wrote: I did find some discussion of old HP-UX patches that fixed problems with stat calls that some of HP's apps had. There are no particulars and none pertain to system libraries, so they were no help. The issue here may be that I'm a relative novice when it comes to C/C++ programming. For instance, where does the magic happen that masks all of perls stat calls to stat64 when you compile with LFS support? Some of the info out there may contain the answer, but I can't see it for lack of this knowledge. It happens during Perl compilation, where depending on compilation flags, either stat or stat64 is chosen. I'm also wondering if the problem is not the actually call to stat64, which looks like it returns the requested info, but whatever comes next. That last line of the trace bothers me: [5889] In user-mode.[running] Very uninformative. Any guesses as to the meaning? Not really. One of the other things that has been bothering me is that when I built MP2 with perl 5.8.2, I couldn't get it to work without useshrlib defined. For perl 5.6.2, perl won't even compile successfully if you define this option. It tries to run miniperl during the compile and that hangs with a trace ending in the same mysterious line. The frustration thing about that is that LFS does not seem to affect this particular problem. I'm left wondering if perhaps the real problem here is that these two scenarios are trying to dynamically load libraries that don't lend themselves to dynamic loading (e.g. libpthread.sl) I eliminated the usual culprits such as pthread and libcl.sl and of course there are no helpful messages to point at something else. I do see warnings about a symbol _attribute_ being defined again and internal linking will occur, but as I said before, I don't know enough about C to know if that has any significance at all. Any thought on these? All I can say that these aren't really mod_perl problems per se, even though they prevent you from using mod_perl. They are all OS level issues. You need to find someone who groks your platform's specifics and can advise us on using the right compile/linking flags to get things working. HP-UX is not the only platform mod_perl has a problem with. We have issues with AIX and other platforms. We have Randy Kobes and Steve Hay who do a great work handling the win32 build (which won't be possible w/o having an inhouse expert). The rest of us develop and familiar with Linux. We get random help for other platforms. Ideally what we need is to have an expert on those platforms Apache and Perl are running on to get mod_perl to run. I apologize for not being much of help with the problems you are having, William. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
William Fulmer wrote: I have a non root user that I use for all of my software builds (called build strangely enough). All elements (apache, perl, mod_perl) were built as this user. I just tried building as root as the email suggested. It would not run apache as root, but tried to use nobody(which did not work no matter how wide I ripped the permissions). I forced it to run as the user that my webserver nomrally runs as by setting APACHE_TEST_USER and APACHE_TEST_GROUP. Then the test hangs as before. I never got this message: waiting for server to start: .No -M allowed while running setuid. perl_parse: Address family not supported by protocol !!! right, it was in your trace that you've posted. As in the later post you've mentioned it was coming from a different app. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
I have a non root user that I use for all of my software builds (called build strangely enough). All elements (apache, perl, mod_perl) were built as this user. I just tried building as root as the email suggested. It would not run apache as root, but tried to use nobody(which did not work no matter how wide I ripped the permissions). I forced it to run as the user that my webserver nomrally runs as by setting APACHE_TEST_USER and APACHE_TEST_GROUP. Then the test hangs as before. I never got this message: waiting for server to start: .No -M allowed while running setuid. perl_parse: Address family not supported by protocol !!! The server always started successfully. My perl is not configure to emulate setuid/setgid either. Does perl 5.6 handle the setuid differently then 5.8? Also, I'm confuse, does -M bypass the setuid code while stat get's caught? Shouldn't they both hang during make test? My perl.c code looks like this: STATIC void S_forbid_setid(pTHX_ char *s) { if (PL_euid != PL_uid) Perl_croak(aTHX_ No %s allowed while running setuid, s); if (PL_egid != PL_gid) Perl_croak(aTHX_ No %s allowed while running setgid, s); } So I changed it to never croak just for some smiles: STATIC void S_forbid_setid(pTHX_ char *s) { if (1 != 1) Perl_croak(aTHX_ No %s allowed while running setuid, s); if (1 != 1) Perl_croak(aTHX_ No %s allowed while running setgid, s); } and make test still hangs. --- Will Fulmer Database Administrator Northampton Community College Bethlehem, PA Stas Bekman [EMAIL PROTECTED] 8/9/2004 2:05:48 PM William Fulmer wrote: Apologies. You are correct. I never responded directly to this email. my $file = /tmp; my $mtime = (stat $file)[9]; and: my $file = __FILE__; my $mtime = (stat $file)[9]; both fail (meaning the test hangs) -M __FILE__; and -M /tmp; both work (which is to say that the test does not hang, but the test fails because stat returns number of seconds since the epoch and -M returns the number of days since last modification). Right, but I think both perform stat(). I went back to your strace message, which had: write(2, N o - M a l l o w e d w h .., 36) . = 36 with some googling I've found: http://marc.theaimsgroup.com/?l=apache-modperlm=104941790431878w=2 which is talking about: waiting for server to start: .No -M allowed while running setuid. perl_parse: Address family not supported by protocol !!! server has died with status 1 (please examine t/logs/error_log) make: *** [run_tests] Error 143 Could that be your issue? Do you have setuid involved in your setup? If you build mod_perl as root as Richard mentioned in the above URL, do you get any difference? the error is coming from perl.c: STATIC void S_forbid_setid(pTHX_ char *s) { #ifdef SETUID_SCRIPTS_ARE_SECURE_NOW if (PL_euid != PL_uid) Perl_croak(aTHX_ No %s allowed while running setuid, s); if (PL_egid != PL_gid) Perl_croak(aTHX_ No %s allowed while running setgid, s); #endif /* SETUID_SCRIPTS_ARE_SECURE_NOW */ /* PSz 29 Feb 04 * Checks for UID/GID above wrong: why disallow * perl -e 'print Hello\n' * from within setuid things?? Simply drop them: replaced by * fdscript/suidscript and #ifdef IAMSUID checks below. * * This may be too late for command-line switches. Will catch those on * the #! line, after finding the script name and setting up * fdscript/suidscript. Note that suidperl does not get around to * parsing (and checking) the switches on the #! line, but checks that * the two sets are identical. * * With SETUID_SCRIPTS_ARE_SECURE_NOW, could we use fdscript, also or * instead, or would that be too late? (We never have suidscript, can * we be sure to have fdscript?) * * Catch things with suidscript (in descendant of suidperl), even with * right UID/GID. Was already checked in suidperl, with #ifdef IAMSUID, * below; but I am paranoid. * * Also see comments about root running a setuid script, elsewhere. */ Apache, perl and mod_perl where all compiled with HP's ANSI C compiler. The compiler is now with the latest version and patch level. Also, will point out that this is now under HP-UX 11i (11.11) was formerly HP-UX 11.00. Not sure this matters since the symptom's of the problem remain unchanged. When I first reported the problem I was on the eve of upgrading the OS on the server I've been trying to get this working on. That's good. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems:
Re: make test hangs
We need to back up a bit. I tried something different just for giggles because I thought we might be on the wrong track with setuid. I wrote a little script that this #!/bin/bash /usr/opt/httpd-2.0.49/bin/httpd -d t -f conf/httpd.conf -DAPACHE2 -DONE_PROCESS -DNO_DETATCH stdout 21 tusc -p -f -v -o strace $! after running the script I went to a browser and hit http://cars-l:8529/TestAPI__request_rec The strace looks quite different this way (and the process does not exit). Turns out the setuid thing was the falt of my tusc command being setuid. (Sorry. insert sheepish look here) Trace from this latest test is more what I expected to see: [5889] writev(72, 0x6fff1940, 3) = 40 iov_base[0]: 0x6fff1838 iov_len[0]: 4 iov_base[1]: 0x40cfeebc iov_len[1]: 34 iov_base[2]: 0x7fb78 iov_len[2]: 2 [5889] writev(72, 0x6fff1940, 3) = 40 iov_base[0]: 0x6fff1838 iov_len[0]: 4 iov_base[1]: 0x40cfeebc iov_len[1]: 34 iov_base[2]: 0x7fb78 iov_len[2]: 2 [5889] writev(72, 0x6fff1940, 3) = 11 iov_base[0]: 0x6fff1838 iov_len[0]: 3 iov_base[1]: 0x40cfeebc iov_len[1]: 6 iov_base[2]: 0x7fb78 iov_len[2]: 2 [5889] stat64(/opt/local/wrfopt/build/mod_perl-1.99_14/t/response/TestAPI/request_rec.pm, 0x6ff66648) = 0 st_dev: 64 0x05 st_ino: 171526 st_mode: S_IFREG|0644 st_nlink: 1 st_rdev: 0 st_size: 2503 st_blksize: 8192 st_blocks: 1 st_uid: 1073741829 st_gid: 27549760 st_atime: Tue Aug 10 16:50:28 2004 st_mtime: Fri Apr 18 02:18:58 2003 st_ctime: Mon Aug 9 20:40:52 2004 [5889] In user-mode . [running] Hangs at this point. The compile with no LFS: [14273] writev(72, 0x6fff1940, 3) .. . = 11 iov_base[0]: 0x6fff1838 iov_len[0]: 3 iov_base[1]: 0x4105eb74 iov_len[1]: 6 iov_base[2]: 0x7fb78 iov_len[2]: 2 [14273] stat(/opt/local/wrfopt/build/mod_perl-1.99_14/t/response/TestAPI/reques t_rec.pm, 0x6ff665f0) = 0 st_dev: 64 0x05 st_ino: 172780 st_mode: S_IFREG|0644 st_nlink: 1 st_rdev: 0 st_size: 2503 st_blksize: 8192 st_blocks: 8 st_uid: 1062 st_gid: 1062 st_atime: Tue Aug 10 17:11:49 2004 st_mtime: Fri Apr 18 02:18:58 2003 st_ctime: Mon Aug 9 20:40:25 2004 [14273] writev(72, 0x6fff1940, 3) .. . = 11 iov_base[0]: 0x6fff1838 iov_len[0]: 3 iov_base[1]: 0x4105eb74 iov_len[1]: 6 iov_base[2]: 0x7fb78 iov_len[2]: 2 Blows right by the call to stat no problem. Get output in the browser say Ok to all 42 tests. The only notable difference being the call to stat as opposed to stat64. --- Will Fulmer Database Administrator Northampton Community College Bethlehem, PA William Fulmer [EMAIL PROTECTED] 8/10/2004 9:33:50 AM I have a non root user that I use for all of my software builds (called build strangely enough). All elements (apache, perl, mod_perl) were built as this user. I just tried building as root as the email suggested. It would not run apache as root, but tried to use nobody(which did not work no matter how wide I ripped the permissions). I forced it to run as the user that my webserver nomrally runs as by setting APACHE_TEST_USER and APACHE_TEST_GROUP. Then the test hangs as before. I never got this message: waiting for server to start: .No -M allowed while running setuid. perl_parse: Address family not supported by protocol !!!
Re: make test hangs
Apologies. You are correct. I never responded directly to this email. my $file = /tmp; my $mtime = (stat $file)[9]; and: my $file = __FILE__; my $mtime = (stat $file)[9]; both fail (meaning the test hangs) -M __FILE__; and -M /tmp; both work (which is to say that the test does not hang, but the test fails because stat returns number of seconds since the epoch and -M returns the number of days since last modification). Apache, perl and mod_perl where all compiled with HP's ANSI C compiler. The compiler is now with the latest version and patch level. Also, will point out that this is now under HP-UX 11i (11.11) was formerly HP-UX 11.00. Not sure this matters since the symptom's of the problem remain unchanged. When I first reported the problem I was on the eve of upgrading the OS on the server I've been trying to get this working on. --- Will Fulmer Database Administrator Northampton Community College Bethlehem, PA Stas Bekman [EMAIL PROTECTED] 8/8/2004 10:43:14 PM William, please followup on all the emails. I don't think I've seen your followup to this post: http://marc.theaimsgroup.com/?l=apache-modperlm=108382020514594w=2 Did I miss it? -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
William Fulmer wrote: Apologies. You are correct. I never responded directly to this email. my $file = /tmp; my $mtime = (stat $file)[9]; and: my $file = __FILE__; my $mtime = (stat $file)[9]; both fail (meaning the test hangs) -M __FILE__; and -M /tmp; both work (which is to say that the test does not hang, but the test fails because stat returns number of seconds since the epoch and -M returns the number of days since last modification). Right, but I think both perform stat(). I went back to your strace message, which had: write(2, N o - M a l l o w e d w h .., 36) . = 36 with some googling I've found: http://marc.theaimsgroup.com/?l=apache-modperlm=104941790431878w=2 which is talking about: waiting for server to start: .No -M allowed while running setuid. perl_parse: Address family not supported by protocol !!! server has died with status 1 (please examine t/logs/error_log) make: *** [run_tests] Error 143 Could that be your issue? Do you have setuid involved in your setup? If you build mod_perl as root as Richard mentioned in the above URL, do you get any difference? the error is coming from perl.c: STATIC void S_forbid_setid(pTHX_ char *s) { #ifdef SETUID_SCRIPTS_ARE_SECURE_NOW if (PL_euid != PL_uid) Perl_croak(aTHX_ No %s allowed while running setuid, s); if (PL_egid != PL_gid) Perl_croak(aTHX_ No %s allowed while running setgid, s); #endif /* SETUID_SCRIPTS_ARE_SECURE_NOW */ /* PSz 29 Feb 04 * Checks for UID/GID above wrong: why disallow * perl -e 'print Hello\n' * from within setuid things?? Simply drop them: replaced by * fdscript/suidscript and #ifdef IAMSUID checks below. * * This may be too late for command-line switches. Will catch those on * the #! line, after finding the script name and setting up * fdscript/suidscript. Note that suidperl does not get around to * parsing (and checking) the switches on the #! line, but checks that * the two sets are identical. * * With SETUID_SCRIPTS_ARE_SECURE_NOW, could we use fdscript, also or * instead, or would that be too late? (We never have suidscript, can * we be sure to have fdscript?) * * Catch things with suidscript (in descendant of suidperl), even with * right UID/GID. Was already checked in suidperl, with #ifdef IAMSUID, * below; but I am paranoid. * * Also see comments about root running a setuid script, elsewhere. */ Apache, perl and mod_perl where all compiled with HP's ANSI C compiler. The compiler is now with the latest version and patch level. Also, will point out that this is now under HP-UX 11i (11.11) was formerly HP-UX 11.00. Not sure this matters since the symptom's of the problem remain unchanged. When I first reported the problem I was on the eve of upgrading the OS on the server I've been trying to get this working on. That's good. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
William, please followup on all the emails. I don't think I've seen your followup to this post: http://marc.theaimsgroup.com/?l=apache-modperlm=108382020514594w=2 Did I miss it? William Fulmer wrote: The first test it hangs on is t/api/request_rec. The line of code it stops on is pretty uncomplicated: my $mtime = (stat __FILE__)[9]; #line 124 adding the -T under perl doesn't change a thing. I'm not quite sure where to remove it for modperl so I haven't tried that. ' remove -T from here t/conf/extra.conf.in:PerlSwitches -wT and now run it: t/TEST -conf t/TEST -v t/api/request_rec.t I just realized that the bug report I sent was from the compile the build without large file support in perl. I did recompile apache with large file support sort of. There's no configure option to enable it so I added -D_LARGEFILE_SOURCE in the ccflags. httpd still doesn't advertise that is supports large files. The other thing I notice is that modperl doesn't respect perl's ccflags (as advertised by perl -V). It drops the -D_LARGEFILE_SOURCE. I forced it in using MP_CCOPTS, but it didn't help. it's not enough, you need -D_FILE_OFFSET_BITS=64 as well, but I think it still not enough. Let me just clarify things a bit regarding what does and does not work for make test. my perl 5.8.2 install with LFS works fine with modperl. compiles, test and runs sucessfully. perl 5.6.2 with LFS hangs in make test. perl 5.6.2 without LFS finishes make test with errors. The bug report that I sent earlier was from the perl 5.6.2 without LFS. This one is from perl 5.6.2 with LFS. The apache doesn't advertise LFS but it was compiled with -D_LARGEFILE_SOURCE: Because it's more than that. If Apache doesn't enable it, neither you should try to do that. Instead mod_perl should be compiled with a common denominator, i.e. w/o LFS. which it tries to do already. Anything else I should try? Any other useful info I should provide? See the top of the email. And of course the most important question, is this a fight worth fighting? I expect most people are using MP2 with perl 5.8.x. I unfortunately have some legacy perl modules with binary components that have no src (should say the vendor won't release the src ;) ) that will only work with 5.6.x. I'm happy to persue this, but I don't want to waste too much of your time with this unless you see a benefit to the community. It'd be nice to figure out what the problem is. We need to find some HPUX expert that can help you accomplish that. If you can followup on the email mentioned above, I think we may find some leads. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
I was trying to compile Apache/2.0.50 mod_perl/1.99_14 Perl/v5.6.2 under HP-UX with HP's ANSI C compiler. Everything compiled fine, but during make test, any test that tried to do a stat on __FILE__ would hang. Running the same type of code under perl worked fine. I had previously compiled mod_perl/1.99_14 with perl 5.8.2 and that worked fine. I had some other priorities at work that prevented me from pursuing this, so I am just getting back to it. The problem turned out to be related to my perl install, but I don't understand why. The thing that made it work was turning off large file support in my perl 5.6.2 install. The reason that I don't understand is that my perl 5.8.2 install had large file support enabled and the mod_perl tested fine (which is to say test completes with errors without hanging). I'm not even sure whether this is a problem with perl 5.6.2 or mod_perl. Any insight on this? --- Will Fulmer Database Administrator Northampton Community College Bethlehem, PA Stas Bekman [EMAIL PROTECTED] 5/6/2004 1:09:52 AM William Fulmer wrote: Ouch, William, are you aware that you've sent a 1MB attachment to a public mailing list, potentially causing lots of problems to people with limited account sizes and slow dialup access? Please don't that in the future. If you want to show some big file, upload it somewhere and post a link to it. Sorry. I didn't look at the size before I sent it. Will be more carefull in the future. Cool! The end of your trace is: open(/usr/lib/nls/loc/locales.2/C, O_RDONLY, 0) .. ERR#2 ENOENT time(0x7f71cd0c) ... = 1083792204 sigsetstatemask(0x17, NULL, 2139033120) = 0 write(2, N o - M a l l o w e d w h .., 36) Aha! It says -M is not allowed. (stat __FILE__)[9]; is the same as -M __FILE__ write(2, p e r l _ p a r s e : N o s .., 38) this perl_parse() thing is interesting. It writes to STDERR that perl_parse() has failed. BTW, any difference if you change your code to be: my $file = /tmp; my $mtime = (stat $file)[9]; and: my $file = __FILE__; my $mtime = (stat $file)[9]; and: -M __FILE__; and -M /tmp; but I see that the process is exiting. Is it still hanging? Or is it the client process? Yes it did exit when I ran it this way. May be a fluke with my compile of tusc however. When I run it without the tusc comand (ie /usr/opt/httpd-2.0.49/bin/httpd -d t -f conf/httpd.conf -DAPACHE2 -DONE_PROCESS -DNO_DETATCH) it hangs. Helpful of it, yes? It's possible. I've seen processes exiting when attaching to or detaching from them with strace. another way to check where the process is hanging is to attach to it with gdb (using -p $pid) and then run 'bt'. I see that you also run with mod_perl tracing enabled, you may want to turn it off to make the strace output smaller. I'll do that in the morning. It may help for me to mention that I'm using HP's ANSI C compiler for the compiles. The version is quite old (enough so that I cannot apply the patches listed on the troubleshooting web page). May be a useful exercise to update my compiler and try again. May take a while as I have to Weedle CODEWORDS out of HP support to accomplish this. Let me also say that I was able to compile and run mod_perl-1.99_12 with this same install of apache and an install of perl 5.8.2 with the same basic config options as my perl 5.6.2. I think I'll try compiling this version with the 5.8.2 perl and see if that works better. What's important is that you compile perl, apache and mod_perl with the same compiler. Though I'm not familiar with HP's ANSI C compiler, so it's possible that it's a problem there. __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
William Fulmer wrote: I was trying to compile Apache/2.0.50 mod_perl/1.99_14 Perl/v5.6.2 under HP-UX with HP's ANSI C compiler. Everything compiled fine, but during make test, any test that tried to do a stat on __FILE__ would hang. Running the same type of code under perl worked fine. Was it really the same under perl? e.g. mod_perl's test suite runs with -T. any difference if you add -T to your perl test/remove -T from mod_perl's test suite? I had previously compiled mod_perl/1.99_14 with perl 5.8.2 and that worked fine. I had some other priorities at work that prevented me from pursuing this, so I am just getting back to it. The problem turned out to be related to my perl install, but I don't understand why. The thing that made it work was turning off large file support in my perl 5.6.2 install. The reason that I don't understand is that my perl 5.8.2 install had large file support enabled and the mod_perl tested fine (which is to say test completes with errors without hanging). I'm not even sure whether this is a problem with perl 5.6.2 or mod_perl. Any insight on this? I don't know. It's possible. I've checked your previous Apache config report and it doesn't seem to have LFS-support enabled. So may be that was the problem? Perl had it, but not Apache? Can you send a new report to see the up-to-date config? http://perl.apache.org/docs/2.0/user/help/help.html#Important_Information -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
Here's the report: -8-- Start Bug Report 8-- 1. Problem Description: [DESCRIBE THE PROBLEM HERE] 2. Used Components and their Configuration: *** mod_perl version 1.9914 *** using lib/Apache/BuildConfig.pm *** Makefile.PL options: MP_APXS= /usr/opt/httpd-2.0.50/bin/apxs MP_COMPAT_1X = 1 MP_GENERATE_XS = 1 MP_LIBNAME = mod_perl MP_USE_DSO = 1 MP_USE_STATIC = 1 *** /usr/opt/httpd-2.0.50/bin/httpd -V Server version: Apache/2.0.50 Server built: Jul 15 2004 17:03:42 Server's Module Magic Number: 20020903:8 Architecture: 32-bit Server compiled with -D APACHE_MPM_DIR=server/mpm/prefork -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D HTTPD_ROOT=/usr/opt/httpd-2.0.50 -D SUEXEC_BIN=/usr/opt/httpd-2.0.50/bin/suexec -D DEFAULT_PIDLOG=logs/httpd.pid -D DEFAULT_SCOREBOARD=logs/apache_runtime_status -D DEFAULT_LOCKFILE=logs/accept.lock -D DEFAULT_ERRORLOG=logs/error_log -D AP_TYPES_CONFIG_FILE=conf/mime.types -D SERVER_CONFIG_FILE=conf/httpd.conf *** /usr/opt/perl-5.6.2/bin/perl -V Summary of my perl5 (revision 5.0 version 6 subversion 2) configuration: Platform: osname=hpux, osvers=11.11, archname=PA-RISC2.0 uname='hp-ux cars-l b.11.11 u 9000800 134921527 unlimited-user license ' config_args='-Accflags=+Z -Accflags=-DPERL_POLLUTE -Dprefix=/usr/opt/perl-5.6.2 -Doptimize=-g -Dloclibpth=/usr/opt/perl-5.6.2/lib /lib /usr/lib /usr/ccs/lib /usr/opt/libiconv-1.9.1/lib /usr/opt/readline-4.3/lib /usr/opt/openssl-0.9.7d/lib /usr/opt/ncurses-5.3/lib /usr/opt/gettext-0.12.1/lib /usr/opt/jpeg.v6b/lib /opt/informix/lib /usr/opt/zlib-1.1.4/lib /usr/opt/db-4.1.25/lib /usr/opt/expat-1.95.6/lib /usr/opt/gzip-1.2.4/lib /usr/opt/freetds-0.61/lib /usr/opt/libpng-1.2.6rc1/lib /usr/opt/bzip2-1.0.2/lib /usr/opt/gdbm-1.8.3/lib /usr/opt/freetype-2.1.5/lib /usr/opt/gd-2.0.15/lib /usr/opt/tiff-v3.5.7/lib -Dlocincpth=/usr/opt/perl-5.6.2/include /include /usr/include /usr/ccs/include /usr/opt/libiconv-1.9.1/include /usr/opt/readline-4.3/include /usr/opt/openssl-0.9.7d/include /usr/opt/ncurses-5.3/include /usr/opt/gettext-0.12.1/include /usr/opt/jpeg.v6b/include /opt/informix/incl /usr/opt/zlib-1.1.4/include /usr/opt/db-4.1.25/include /usr/opt/expat-1.95.6/include /usr/opt/gzi! p-1.2.4/include /usr/opt/freetds-0.61/include /usr/opt/libpng-1.2.6rc1/include /usr/opt/bzip2-1.0.2/include /usr/opt/gdbm-1.8.3/include /usr/opt/freetype-2.1.5/include /usr/opt/gd-2.0.15/include /usr/opt/tiff-v3.5.7/include -Dcc=/opt/ansic/bin/cc -Dlibs=-lnsl -lnm -lndbm -lgdbm -ldb -lmalloc -ldld -lm -lcrypt -lsec -lpthread -lc -lcl -e' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=undef d_sfio=undef uselargefiles=undef usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef Compiler: cc='/opt/ansic/bin/cc', ccflags ='-Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings +Z -DPERL_POLLUTE -DDEBUGGING -I/usr/opt/libiconv-1.9.1/include -I/usr/opt/readline-4.3/include -I/usr/opt/openssl-0.9.7d/include -I/usr/opt/ncurses-5.3/include -I/usr/opt/gettext-0.12.1/include -I/usr/opt/jpeg.v6b/include -I/opt/informix/incl -I/usr/opt/zlib-1.1.4/include -I/usr/opt/db-4.1.25/include -I/usr/opt/expat-1.95.6/include -I/usr/opt/freetds-0.61/include -I/usr/opt/libpng-1.2.6rc1/include -I/usr/opt/bzip2-1.0.2/include -I/usr/opt/gdbm-1.8.3/include -I/usr/opt/freetype-2.1.5/include -I/usr/opt/gd-2.0.15/include -I/usr/opt/tiff-v3.5.7/include', optimize='-g', cppflags='-Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings +Z -DPERL_POLLUTE -DDEBUGGING -I/usr/opt/libiconv-1.9.1/include -I/usr/opt/readline-4.3/include -I/usr/opt/openssl-0.9.7d/include -I/usr/opt/ncurses-5.3/include -I/usr/opt/gettext-0.12.1/include -I/usr/opt/jpeg.v6b/include -I/opt/informix/incl -I/usr/opt/zlib-1.1.4/include -I/usr/opt/db-4.1.25/include -I/usr/opt/expat-1.95.6/include -I/usr/opt/freetds-0.61/include -I/usr/opt/libpng-1.2.6rc1/include -I/usr/opt/bzip2-1.0.2/include -I/usr/opt/gdbm-1.8.3/include -I/usr/opt/freetype-2.1.5/include -I/usr/opt/gd-2.0.15/include -I/usr/opt/tiff-v3.5.7/include' ccversion='B.11.11.29484.GP', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=4 alignbytes=8, usemymalloc=n, prototype=define Linker and Libraries: ld='/usr/bin/ld', ldflags =' -L/usr/opt/perl-5.6.2/lib -L/lib -L/usr/lib -L/usr/ccs/lib -L/usr/opt/libiconv-1.9.1/lib -L/usr/opt/readline-4.3/lib -L/usr/opt/openssl-0.9.7d/lib -L/usr/opt/ncurses-5.3/lib -L/usr/opt/gettext-0.12.1/lib -L/usr/opt/jpeg.v6b/lib -L/opt/informix/lib
Re: make test hangs
The first test it hangs on is t/api/request_rec. The line of code it stops on is pretty uncomplicated: my $mtime = (stat __FILE__)[9]; #line 124 adding the -T under perl doesn't change a thing. I'm not quite sure where to remove it for modperl so I haven't tried that. ' I just realized that the bug report I sent was from the compile the build without large file support in perl. I did recompile apache with large file support sort of. There's no configure option to enable it so I added -D_LARGEFILE_SOURCE in the ccflags. httpd still doesn't advertise that is supports large files. The other thing I notice is that modperl doesn't respect perl's ccflags (as advertised by perl -V). It drops the -D_LARGEFILE_SOURCE. I forced it in using MP_CCOPTS, but it didn't help. Let me just clarify things a bit regarding what does and does not work for make test. my perl 5.8.2 install with LFS works fine with modperl. compiles, test and runs sucessfully. perl 5.6.2 with LFS hangs in make test. perl 5.6.2 without LFS finishes make test with errors. The bug report that I sent earlier was from the perl 5.6.2 without LFS. This one is from perl 5.6.2 with LFS. The apache doesn't advertise LFS but it was compiled with -D_LARGEFILE_SOURCE: -8-- Start Bug Report 8-- 1. Problem Description: [DESCRIBE THE PROBLEM HERE] 2. Used Components and their Configuration: *** mod_perl version 1.9914 *** using lib/Apache/BuildConfig.pm *** Makefile.PL options: MP_APXS= /usr/opt/httpd-2.0.50/bin/apxs MP_COMPAT_1X = 1 MP_GENERATE_XS = 1 MP_LIBNAME = mod_perl MP_USE_DSO = 1 MP_USE_STATIC = 1 *** /usr/opt/httpd-2.0.50/bin/httpd -V Server version: Apache/2.0.50 Server built: Aug 5 2004 16:06:12 Server's Module Magic Number: 20020903:8 Architecture: 32-bit Server compiled with -D APACHE_MPM_DIR=server/mpm/prefork -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D HTTPD_ROOT=/usr/opt/httpd-2.0.50 -D SUEXEC_BIN=/usr/opt/httpd-2.0.50/bin/suexec -D DEFAULT_PIDLOG=logs/httpd.pid -D DEFAULT_SCOREBOARD=logs/apache_runtime_status -D DEFAULT_LOCKFILE=logs/accept.lock -D DEFAULT_ERRORLOG=logs/error_log -D AP_TYPES_CONFIG_FILE=conf/mime.types -D SERVER_CONFIG_FILE=conf/httpd.conf *** /usr/opt/perl-5.6.2/bin/perl -V Summary of my perl5 (revision 5.0 version 6 subversion 2) configuration: Platform: osname=hpux, osvers=11.11, archname=PA-RISC2.0 uname='hp-ux cars-l b.11.11 u 9000800 134921527 unlimited-user license ' config_args='-Accflags=+Z -Accflags=-DPERL_POLLUTE -Dprefix=/usr/opt/perl-5.6.2 -Doptimize=-g -Dloclibpth=/usr/opt/perl-5.6.2/lib /lib /usr/lib /usr/ccs/lib /usr/opt/libiconv-1.9.1/lib /usr/opt/readline-4.3/lib /usr/opt/openssl-0.9.7d/lib /usr/opt/ncurses-5.3/lib /usr/opt/gettext-0.12.1/lib /usr/opt/jpeg.v6b/lib /opt/informix/lib /usr/opt/zlib-1.1.4/lib /usr/opt/db-4.1.25/lib /usr/opt/expat-1.95.6/lib /usr/opt/gzip-1.2.4/lib /usr/opt/freetds-0.61/lib /usr/opt/libpng-1.2.6rc1/lib /usr/opt/bzip2-1.0.2/lib /usr/opt/gdbm-1.8.3/lib /usr/opt/freetype-2.1.5/lib /usr/opt/gd-2.0.15/lib /usr/opt/tiff-v3.5.7/lib -Dlocincpth=/usr/opt/perl-5.6.2/include /include /usr/include /usr/ccs/include /usr/opt/libiconv-1.9.1/include /usr/opt/readline-4.3/include /usr/opt/openssl-0.9.7d/include /usr/opt/ncurses-5.3/include /usr/opt/gettext-0.12.1/include /usr/opt/jpeg.v6b/include /opt/informix/incl /usr/opt/zlib-1.1.4/include /usr/opt/db-4.1.25/include /usr/opt/expat-1.95.6/include /usr/opt/gzip-1.2.4/include /usr/opt/freetds-0.61/include /usr/opt/libpng-1.2.6rc1/include /usr/opt/bzip2-1.0.2/include /usr/opt/gdbm-1.8.3/include /usr/opt/freetype-2.1.5/include /usr/opt/gd-2.0.15/include /usr/opt/tiff-v3.5.7/include -Dcc=/opt/ansic/bin/cc -Dlibs=-lnsl -lnm -lndbm -lgdbm -ldb -lmalloc -ldld -lm -lcrypt -lsec -lpthread -lc -lcl -e -Duselargefiles' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef Compiler: cc='/opt/ansic/bin/cc', ccflags =' -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings +Z -DPERL_POLLUTE -DDEBUGGING -I/usr/opt/libiconv-1.9.1/include -I/usr/opt/readline-4.3/include -I/usr/opt/openssl-0.9.7d/include -I/usr/opt/ncurses-5.3/include -I/usr/opt/gettext-0.12.1/include -I/usr/opt/jpeg.v6b/include -I/opt/informix/incl -I/usr/opt/zlib-1.1.4/include -I/usr/opt/db-4.1.25/include -I/usr/opt/expat-1.95.6/include -I/usr/opt/freetds-0.61/include -I/usr/opt/libpng-1.2.6rc1/include -I/usr/opt/bzip2-1.0.2/include -I/usr/opt/gdbm-1.8.3/include -I/usr/opt/freetype-2.1.5/include -I/usr/opt/gd-2.0.15/include -I/usr/opt/tiff-v3.5.7/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 ',
Re: make test hangs
-8-- Start Bug Report 8--1. Problem Description: Following your suggestion I added the signal handler for USR2 and found that any test containing the following line hangs: my $mtime = (stat __FILE__)[9]; This same snippet of code works fine in regular perl programs. I put in a print statement to verify that __FILE__ has the value you would expect (which is does namely the pm for the currently running test). Any more thoughts? 2. Used Components and their Configuration: *** mod_perl version 1.9913 *** using lib/Apache/BuildConfig.pm*** Makefile.PL options: MP_APXS = /usr/opt/httpd-2.0.49/bin/apxs MP_COMPAT_1X = 1 MP_DEBUG = 1 MP_GENERATE_XS = 1 MP_LIBNAME = mod_perl MP_TRACE = 1 MP_USE_DSO = 1 MP_USE_STATIC = 1 *** /usr/opt/httpd-2.0.49/bin/httpd -VServer version: Apache/2.0.49Server built: Mar 21 2004 11:04:25Server's Module Magic Number: 20020903:7Architecture: 32-bitServer compiled with-D APACHE_MPM_DIR="server/mpm/prefork"-D APR_HAS_SENDFILE-D APR_HAS_MMAP-D APR_USE_SYSVSEM_SERIALIZE-D APR_USE_PTHREAD_SERIALIZE-D APR_HAS_OTHER_CHILD-D AP_HAVE_RELIABLE_PIPED_LOGS-D HTTPD_ROOT="/usr/opt/httpd-2.0.49"-D SUEXEC_BIN="/usr/opt/httpd-2.0.49/bin/suexec"-D DEFAULT_PIDLOG="logs/httpd.pid"-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"-D DEFAULT_LOCKFILE="logs/accept.lock"-D DEFAULT_ERRORLOG="logs/error_log"-D AP_TYPES_CONFIG_FILE="conf/mime.types"-D SERVER_CONFIG_FILE="conf/httpd.conf" *** /usr/opt/perl-5.6.2/bin/perl -VSummary of my perl5 (revision 5.0 version 6 subversion 2) configuration: Platform: osname=hpux, osvers=11.00, archname=PA-RISC2.0 uname='hp-ux cars-l b.11.00 u 9000800 134921527 unlimited-user license ' config_args='-Accflags=+Z -Accflags=-DPERL_POLLUTE -Dprefix=/usr/opt/perl-5.6.2 -Doptimize=-g -Dloclibpth=/usr/opt/perl-5.6.2/lib /lib /usr/lib /usr/ccs/lib /usr/opt/libiconv-1.9.1/lib /usr/opt/readline-4.3/lib /usr/opt/openssl-0.9.7d/lib /usr/opt/ncurses-5.3/lib /usr/opt/gettext-0.12.1/lib /usr/opt/jpeg.v6b/lib /opt/informix/lib /usr/opt/zlib-1.1.4/lib /usr/opt/db-4.1.25/lib /usr/opt/expat-1.95.6/lib /usr/opt/gzip-1.2.4/lib /usr/opt/freetds-0.61/lib /usr/opt/libpng-1.2.5/lib /usr/opt/bzip2-1.0.2/lib /usr/opt/gdbm-1.8.3/lib /usr/opt/freetype-2.1.5/lib /usr/opt/gd-2.0.15/lib /usr/opt/tiff-v3.5.7/lib /opt/default/lib -Dlocincpth=/usr/opt/perl-5.6.2/include /include /usr/include /usr/ccs/include /usr/opt/libiconv-1.9.1/include /usr/opt/readline-4.3/include /usr/opt/openssl-0.9.7d/include /usr/opt/ncurses-5.3/include /usr/opt/gettext-0.12.1/include /usr/opt/jpeg.v6b/include /opt/informix/incl /usr/opt/zlib-1.1.4/include /usr/opt/db-4.1.25/include /usr/opt/expat-1.95.6/include /usr/opt/gzip-1.2.4/include /usr/opt/freetds-0.61/include /usr/opt/libpng-1.2.5/include /usr/opt/bzip2-1.0.2/include /usr/opt/gdbm-1.8.3/include /usr/opt/freetype-2.1.5/include /usr/opt/gd-2.0.15/include /usr/opt/tiff-v3.5.7/include /opt/default/include -Dcc=/opt/ansic/bin/cc -Dlibs=-lnsl -lnm -lndbm -lgdbm -ldb -lmalloc -ldld -lm -lcrypt -lsec -lpthread -lc -lcl -Ubincompat5005 -d -e' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef Compiler: cc='/opt/ansic/bin/cc', ccflags =' -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings +Z -DPERL_POLLUTE -DDEBUGGING -I/usr/opt/perl-5.6.2/include -I/usr/opt/libiconv-1.9.1/include -I/usr/opt/readline-4.3/include -I/usr/opt/openssl-0.9.7d/include -I/usr/opt/ncurses-5.3/include -I/usr/opt/gettext-0.12.1/include -I/usr/opt/jpeg.v6b/include -I/opt/informix/incl -I/usr/opt/zlib-1.1.4/include -I/usr/opt/db-4.1.25/include -I/usr/opt/expat-1.95.6/include -I/usr/opt/freetds-0.61/include -I/usr/opt/libpng-1.2.5/include -I/usr/opt/bzip2-1.0.2/include -I/usr/opt/gdbm-1.8.3/include -I/usr/opt/freetype-2.1.5/include -I/usr/opt/gd-2.0.15/include -I/usr/opt/tiff-v3.5.7/include -I/opt/default/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 ', optimize='-g', cppflags='-Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings +Z -DPERL_POLLUTE -DDEBUGGING -I/usr/opt/perl-5.6.2/include -I/usr/opt/libiconv-1.9.1/include -I/usr/opt/readline-4.3/include -I/usr/opt/openssl-0.9.7d/include -I/usr/opt/ncurses-5.3/include -I/usr/opt/gettext-0.12.1/include -I/usr/opt/jpeg.v6b/include -I/opt/informix/incl -I/usr/opt/zlib-1.1.4/include -I/usr/opt/db-4.1.25/include -I/usr/opt/expat-1.95.6/include -I/usr/opt/freetds-0.61/include -I/usr/opt/libpng-1.2.5/include -I/usr/opt/bzip2-1.0.2/include -I/usr/opt/gdbm-1.8.3/include -I/usr/opt/freetype-2.1.5/include -I/usr/opt/gd-2.0.15/include -I/usr/opt/tiff-v3.5.7/include -I/opt/default/include' ccversion='A.11.01.25171.GP', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
Re: make test hangs
William Fulmer wrote: -8-- Start Bug Report 8-- 1. Problem Description: Following your suggestion I added the signal handler for USR2 and found that any test containing the following line hangs: my $mtime = (stat __FILE__)[9]; This same snippet of code works fine in regular perl programs. I put in a print statement to verify that __FILE__ has the value you would expect (which is does namely the pm for the currently running test). Any more thoughts? Excellent. Glad to hear that that technique worked. That code works fine on linux. So what I'd suggest next is to strace/tusc the process, as you did in first place, but this time make sure that you have only one process, i.e. start apache with httpd -DONE_PROCESS -DNO_DETATCH. -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
William Fulmer wrote: OK. I ran tusc -o strace /usr/opt/httpd-2.0.49/bin/httpd -d t -f conf/httpd.conf -DAPACHE2 -DONE_PROCESS -DNO_DETATCH stdout 21. output is attached. Ouch, William, are you aware that you've sent a 1MB attachment to a public mailing list, potentially causing lots of problems to people with limited account sizes and slow dialup access? Please don't that in the future. If you want to show some big file, upload it somewhere and post a link to it. Originally you posted 4 lines where it was hanging, I hoped you will do the same this time, but now monitoring the right process. Sorry if I wasn't clear and sounded like I want you to send the whole strace. I hope our subscribers will excuse us for this glitch. The only thing that stood out for me was mod_perl complaining about no -M while running suid and the fact that it couldn't find an nls related file /usr/lib/nls/loc/locales.2/C which is in fact nonexistent. Could this be an nls related anomaly? If I remember right there are some problems with nls and Solaris 9. I don't know, I'm not familiar with Solaris. The end of your trace is: open(/usr/lib/nls/loc/locales.2/C, O_RDONLY, 0) .. ERR#2 ENOENT time(0x7f71cd0c) ... = 1083792204 sigsetstatemask(0x17, NULL, 2139033120) = 0 write(2, N o - M a l l o w e d w h .., 36) . = 36 sigsetstatemask(0x17, 0x7f7f0e20, 0) ... = 0 open(/usr/lib/nls/msg/C/strerror.cat, O_RDONLY, 017) . = 22 fstat(22, 0x7f7f2338) .. = 0 fcntl(22, F_SETFD, 1) .. = 0 lseek(22, 0, SEEK_SET) . = 0 read(22, m s g c a t 0 1 \0\0\0f9\001\001.., 1212) ... = 1212 lseek(22, 3016, SEEK_SET) .. = 3016 read(22, N o s u c h f i l e o r .., 25) . = 25 close(22) .. = 0 write(2, p e r l _ p a r s e : N o s .., 38) . = 38 getpid() ... = 20795 (20794) unlink(/var/spool/sockets/pwgr/client20795) .. = 0 exit(1) WIFEXITED(1) but I see that the process is exiting. Is it still hanging? Or is it the client process? I see that you also run with mod_perl tracing enabled, you may want to turn it off to make the strace output smaller. __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
Ouch, William, are you aware that you've sent a 1MB attachment to a public mailing list, potentially causing lots of problems to people with limited account sizes and slow dialup access? Please don't that in the future. If you want to show some big file, upload it somewhere and post a link to it. Sorry. I didn't look at the size before I sent it. Will be more carefull in the future. The only thing that stood out for me was mod_perl complaining about no -M while running suid and the fact that it couldn't find an nls related file /usr/lib/nls/loc/locales.2/C which is in fact nonexistent. Could this be an nls related anomaly? If I remember right there are some problems with nls and Solaris 9. I don't know, I'm not familiar with Solaris. The end of your trace is: open(/usr/lib/nls/loc/locales.2/C, O_RDONLY, 0) .. ERR#2 ENOENT time(0x7f71cd0c) ... = 1083792204 sigsetstatemask(0x17, NULL, 2139033120) = 0 write(2, N o - M a l l o w e d w h .., 36) . = 36 sigsetstatemask(0x17, 0x7f7f0e20, 0) ... = 0 open(/usr/lib/nls/msg/C/strerror.cat, O_RDONLY, 017) . = 22 fstat(22, 0x7f7f2338) .. = 0 fcntl(22, F_SETFD, 1) .. = 0 lseek(22, 0, SEEK_SET) . = 0 read(22, m s g c a t 0 1 \0\0\0f9\001\001.., 1212) ... = 1212 lseek(22, 3016, SEEK_SET) .. = 3016 read(22, N o s u c h f i l e o r .., 25) . = 25 close(22) .. = 0 write(2, p e r l _ p a r s e : N o s .., 38) . = 38 getpid() ... = 20795 (20794) unlink(/var/spool/sockets/pwgr/client20795) .. = 0 exit(1) WIFEXITED(1) but I see that the process is exiting. Is it still hanging? Or is it the client process? Yes it did exit when I ran it this way. May be a fluke with my compile of tusc however. When I run it without the tusc comand (ie /usr/opt/httpd-2.0.49/bin/httpd -d t -f conf/httpd.conf -DAPACHE2 -DONE_PROCESS -DNO_DETATCH) it hangs. Helpful of it, yes? I see that you also run with mod_perl tracing enabled, you may want to turn it off to make the strace output smaller. I'll do that in the morning. It may help for me to mention that I'm using HP's ANSI C compiler for the compiles. The version is quite old (enough so that I cannot apply the patches listed on the troubleshooting web page). May be a useful exercise to update my compiler and try again. May take a while as I have to Weedle CODEWORDS out of HP support to accomplish this. Let me also say that I was able to compile and run mod_perl-1.99_12 with this same install of apache and an install of perl 5.8.2 with the same basic config options as my perl 5.6.2. I think I'll try compiling this version with the 5.8.2 perl and see if that works better. __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html --- Will Fulmer Database Administrator Northampton Community College Bethlehem, PA -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
William Fulmer wrote: Ouch, William, are you aware that you've sent a 1MB attachment to a public mailing list, potentially causing lots of problems to people with limited account sizes and slow dialup access? Please don't that in the future. If you want to show some big file, upload it somewhere and post a link to it. Sorry. I didn't look at the size before I sent it. Will be more carefull in the future. Cool! The end of your trace is: open(/usr/lib/nls/loc/locales.2/C, O_RDONLY, 0) .. ERR#2 ENOENT time(0x7f71cd0c) ... = 1083792204 sigsetstatemask(0x17, NULL, 2139033120) = 0 write(2, N o - M a l l o w e d w h .., 36) Aha! It says -M is not allowed. (stat __FILE__)[9]; is the same as -M __FILE__ write(2, p e r l _ p a r s e : N o s .., 38) this perl_parse() thing is interesting. It writes to STDERR that perl_parse() has failed. BTW, any difference if you change your code to be: my $file = /tmp; my $mtime = (stat $file)[9]; and: my $file = __FILE__; my $mtime = (stat $file)[9]; and: -M __FILE__; and -M /tmp; but I see that the process is exiting. Is it still hanging? Or is it the client process? Yes it did exit when I ran it this way. May be a fluke with my compile of tusc however. When I run it without the tusc comand (ie /usr/opt/httpd-2.0.49/bin/httpd -d t -f conf/httpd.conf -DAPACHE2 -DONE_PROCESS -DNO_DETATCH) it hangs. Helpful of it, yes? It's possible. I've seen processes exiting when attaching to or detaching from them with strace. another way to check where the process is hanging is to attach to it with gdb (using -p $pid) and then run 'bt'. I see that you also run with mod_perl tracing enabled, you may want to turn it off to make the strace output smaller. I'll do that in the morning. It may help for me to mention that I'm using HP's ANSI C compiler for the compiles. The version is quite old (enough so that I cannot apply the patches listed on the troubleshooting web page). May be a useful exercise to update my compiler and try again. May take a while as I have to Weedle CODEWORDS out of HP support to accomplish this. Let me also say that I was able to compile and run mod_perl-1.99_12 with this same install of apache and an install of perl 5.8.2 with the same basic config options as my perl 5.6.2. I think I'll try compiling this version with the 5.8.2 perl and see if that works better. What's important is that you compile perl, apache and mod_perl with the same compiler. Though I'm not familiar with HP's ANSI C compiler, so it's possible that it's a problem there. __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html
Re: make test hangs
William Fulmer wrote: Hi, I'm trying to get mod_perl-1.99_13 to compile with apache 2.0.49 and perl 5.6.2 That's insufficient, William. Please see: http://perl.apache.org/bugs/ [...] It hangs on api/request_rec. Try to figure out which sub-test is it hanging on. Try this trick: http://perl.apache.org/docs/1.0/guide/debug.html#Using_the_Perl_Trace tusc of the httpd process gives the folloing over and over again: select(0, NULL, NULL, NULL, 0x7f7f0b10) . [entry] select(0, NULL, NULL, NULL, 0x7f7f0b10) . = 0 waitpid(4294967295, WIFEXITED(0), WNOHANG|WUNTRACED) [entry] waitpid(-1, WIFEXITED(0), WNOHANG|WUNTRACED) = 0 which httpd process are you tracing? There is more than one. Looks like you are tracing the parent process. __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com -- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html