Segmentation Fault
Hello, i have a big problem with Segmentation Fault which i can not debug. I got this Segmentation Fault only in Safari or IE Browsers and not always only sometimes. This fact makes it hard for me to debug the error. Here is my Server Configuration Apache/2.0.54 (Unix) mod_ssl/2.0.54 OpenSSL/0.9.7g mod_auth_tkt/2.0.0b5 mod_perl/2.0.1 Perl/v5.8.6 configured -- resuming normal operations This is the error_log message. [Fri Sep 09 10:26:43 2005] [notice] child pid 18924 exit signal Segmentation fault (11) Can you give me some tips for debugging this error? cheers christian
Re: Problem with french accents using mod perl
I've had a lot of experience with this. You have to make sure the data coming into your program is utf8. Imagine trying to do a regex on your french chars. It won't happen. That's why you have to have utf8 enable. use utf8; Have a look at perllocale. There's lots of info there. The intermittent problems, try F5 (refresh) on the broswer. Also, if you are using a DB, do some tests. I use MySQL and by default, it stores data as iso-8859 and when I converted that data to utf8, the output was worse. So, I just read the data direct from MySQL. I've since upgraded to MySQL 4 and haven't had any probs (touch wood). I haven't looked further into though. Also, if data is coming from files, look at using utf8 in the open command. I hope this helps. -Ants --- Jonathan Vanasco <[EMAIL PROTECTED]> wrote: > Is there any difference in the document/headers > themselves from when it > works, and when it doesn't? > > > > On Sep 8, 2005, at 1:16 PM, Sebastien Pinsonnault > wrote: > > > Hello, > > > > Yep we tried that for the addDefaultCharset but > the issue still crept > > up... > > > > That`s why it pretty much to try and find a > needle in a haystack. > > > > -Sebastien > > ___ To help you stay safe and secure online, we've developed the all new Yahoo! Security Centre. http://uk.security.yahoo.com
Re: Segmentation Fault
Christian Klinger wrote: Can you give me some tips for debugging this error? You can attach gdb or ddd to the running httpd see here: http://httpd.apache.org/dev/debugging.html and/or You can use Apache::DB from CPAN to get a PERL debugger for things under mod_perl. See Apache::DB's documentation ... I have a config handy so here it is: in httpd.conf: PerlRequire conf/db.pl PerlModule Apache::DB SetHandler modperl PerlFixUpHandler Apache::DB cat conf/db.pl use APR::Pool (); use Apache::DB (); Apache::DB->init(); 1; If you can't figure it yourself, post a strack trace WITH debugging enabled to the list and we'll look again. HTH -- END What doesn't kill us can only make us stronger. Nothing is impossible. Philip M. Gollucci ([EMAIL PROTECTED]) 301.254.5198 Consultant / http://p6m7g8.net/Resume/ Senior Developer / Liquidity Services, Inc. http://www.liquidityservicesinc.com http://www.liquidation.com http://www.uksurplus.com http://www.govliquidation.com http://www.gowholesale.com
Re: Segmentation Fault
Philip M. Gollucci wrote: Christian Klinger wrote: Can you give me some tips for debugging this error? You can attach gdb or ddd to the running httpd see here: http://httpd.apache.org/dev/debugging.html and/or You can use Apache::DB from CPAN to get a PERL debugger for things under mod_perl. See Apache::DB's documentation ... I have a config handy so here it is: in httpd.conf: PerlRequire conf/db.pl PerlModule Apache::DB SetHandler modperl PerlFixUpHandler Apache::DB cat conf/db.pl use APR::Pool (); use Apache::DB (); Apache::DB->init(); 1; If you can't figure it yourself, post a strack trace WITH debugging enabled to the list and we'll look again. HTH Hello agin, i have enabled your debugging. Here is the scirpt which raises these error. ... if ($f == 1) { success($uid,$pw); } else { error_exit(); } sub error_exit { print STDERR "Exit to error Page \n"; #print $cgi->redirect('https://bgeextranet.cnbg.de/anmeldung/LoginErr.htm'); print $cgi->header(-location=>"https://192.168.2.11";); print STDERR "Exit to error Page \n"; exit; } These are the last lines of the error_log ... DB<1> CGI::self_or_default(/usr/lib/perl5/5.8.3/CGI.pm:433): 433:unless (defined($_[0]) && 434:(ref($_[0]) eq 'CGI' || UNIVERSAL::isa($_[0],'CGI')) # slightly optimized for common case 435:) { DB<1> CGI::self_or_default(/usr/lib/perl5/5.8.3/CGI.pm:439): 439:return wantarray ? @_ : $Q; DB<1> CGI::cache((eval 18)[/usr/lib/perl5/5.8.3/CGI.pm:810]:3): 3: $new_value = '' unless $new_value; DB<1> CGI::cache((eval 18)[/usr/lib/perl5/5.8.3/CGI.pm:810]:4): 4: if ($new_value ne '') { DB<1> CGI::cache((eval 18)[/usr/lib/perl5/5.8.3/CGI.pm:810]:7): 7: return $self->{'cache'}; DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:57): 57: push(@header,"Content-Disposition: attachment; filename=\"$attachment\"") if $attachment; DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:58): 58: push(@header,map {ucfirst $_} @other); DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:58): 58: push(@header,map {ucfirst $_} @other); DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:59): 59: push(@header,"Content-Type: $type") if $type ne ''; DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:60): 60: my $header = join($CRLF,@header)."${CRLF}${CRLF}"; DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:61): 61: if ($MOD_PERL and not $nph) { DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:62): 62: $self->r->send_cgi_header($header); DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:377): 377: my $self = shift; DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:378): 378: my $r = $self->{'.r'}; DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:379): 379: $self->{'.r'} = shift if @_; DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:380): 380: $r; DB<1> . ### I see in mod_forensic that these request is not "responded" +6iY7e8CoAgsAACj3ST0E|POST /anmeldung/perl/bg30auth.pl HTTP/1.1|Accept:*/*|Accept-Language:de-de, ja;q=0.85, en;q=0.92, ja-jp;q=0.88, de;q=0.96, fr;q=0.81, es;q=0.77, it-it;q=0.73, it;q=0.69, nl-nl;q=0.65, nl;q=0.62, sv-se;q=0.58, sv;q=0.54, no-no;q=0.50, no;q=0.46, da-dk;q=0.42, da;q=0.38, fi-fi;q=0.35, fi;q=0.31|Accept-Encoding:gzip, deflate;q=1.0, identity;q=0.5, *;q=0|Referer:https%3a//192.168.2.11/anmeldung/Login.htm?back=https%253a%252f%252f192.168.2.11%252f|User-Agent:Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.7|Content-Type:application/x-www-form-urlencoded|Content-Length:8|Connection:close|Host:192.168.2.11
Re: Segmentation Fault
Christian Klinger wrote: These are the last lines of the error_log ... DB<1> CGI::self_or_default(/usr/lib/perl5/5.8.3/CGI.pm:433): Three questions / suggestions, 1) You said you were using perl 5.8.6. Thats loading something installed into perl 5.8.3. That could be. 2) What version of CGI.pm are yousing... If you're not using CGI.pm 3.11 upgrade and try again. 3) If possibe upgrade PERL to perl 5.8.7 though thats likely not it. Based on this part of it DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:61): 61: if ($MOD_PERL and not $nph) { DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:62): 62: $self->r->send_cgi_header($header); DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:377): 377: my $self = shift; DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:378): 378: my $r = $self->{'.r'}; DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:379): 379: $self->{'.r'} = shift if @_; DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:380): 380: $r; DB<1> . I'd be inclined to blame #2 DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:62): 62: $self->r->send_cgi_header($header); is line 810 for you in CGI.pm 3.11 its 1450 or so... seems like you a really old one. -- END What doesn't kill us can only make us stronger. Nothing is impossible. Philip M. Gollucci ([EMAIL PROTECTED]) 301.254.5198 Consultant / http://p6m7g8.net/Resume/ Senior Developer / Liquidity Services, Inc. http://www.liquidityservicesinc.com http://www.liquidation.com http://www.uksurplus.com http://www.govliquidation.com http://www.gowholesale.com
Re: Segmentation Fault
Philip M. Gollucci wrote: Christian Klinger wrote: These are the last lines of the error_log ... DB<1> CGI::self_or_default(/usr/lib/perl5/5.8.3/CGI.pm:433): Three questions / suggestions, 1) You said you were using perl 5.8.6. Thats loading something installed into perl 5.8.3. That could be. I´ve installed the newest mod_perl but i use the Perl-Package from Suse-Linux ditribution. 2) What version of CGI.pm are yousing... If you're not using CGI.pm 3.11 upgrade and try again. In /usr/lib/perl5/5.8.3/CGI.pm i found these lines $CGI::revision = '$Id: CGI.pm,v 1.185 2005/08/03 21:14:55 lstein Exp $'; $CGI::VERSION='3.11'; 3) If possibe upgrade PERL to perl 5.8.7 though thats likely not it. ok i will try to install the newest perl version. Based on this part of it DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:61): 61: if ($MOD_PERL and not $nph) { DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:62): 62: $self->r->send_cgi_header($header); DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:377): 377: my $self = shift; DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:378): 378: my $r = $self->{'.r'}; DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:379): 379: $self->{'.r'} = shift if @_; DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:380): 380: $r; DB<1> . I'd be inclined to blame #2 DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:62): 62: $self->r->send_cgi_header($header); is line 810 for you in CGI.pm 3.11 its 1450 or so... seems like you a really old one. I think i have installed the newest CGI.pm. thx christian
Re: Segmentation Fault
Philip M. Gollucci wrote: Christian Klinger wrote: These are the last lines of the error_log ... DB<1> CGI::self_or_default(/usr/lib/perl5/5.8.3/CGI.pm:433): Three questions / suggestions, 1) You said you were using perl 5.8.6. Thats loading something installed into perl 5.8.3. That could be. 2) What version of CGI.pm are yousing... If you're not using CGI.pm 3.11 upgrade and try again. 3) If possibe upgrade PERL to perl 5.8.7 though thats likely not it. Based on this part of it DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:61): 61: if ($MOD_PERL and not $nph) { DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:62): 62: $self->r->send_cgi_header($header); DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:377): 377: my $self = shift; DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:378): 378: my $r = $self->{'.r'}; DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:379): 379: $self->{'.r'} = shift if @_; DB<1> CGI::r(/usr/lib/perl5/5.8.3/CGI.pm:380): 380: $r; DB<1> . I'd be inclined to blame #2 DB<1> CGI::header((eval 16)[/usr/lib/perl5/5.8.3/CGI.pm:810]:62): 62: $self->r->send_cgi_header($header); is line 810 for you in CGI.pm 3.11 its 1450 or so... seems like you a really old one. OK i have installed new perl version. The same Problem. Is it possible that i dont exit correct from my perl script. And Apache lost his threads for every try to access the perl-script? christian
Re: a faster html::template?
Hello Perrin, I meant the time it takes to render the output, as in calling $template->output; Thanks for your help anyway. - Original Message - From: "Perrin Harkins" <[EMAIL PROTECTED]> To: "Foo Ji-Haw" <[EMAIL PROTECTED]> Cc: Sent: Tuesday, September 06, 2005 11:39 PM Subject: Re: a faster html::template? > On Fri, 2005-09-02 at 10:53 +0800, Foo Ji-Haw wrote: > > I'm a happy user of HTML::Template on my mp2 setup. But when it comes > > to performance, I notice that to populate a loop of some 1500 records, > > the system takes 2-3 seconds on my P4 2GHz machine. > > Populating the loop happens before running HTML::Template. Are you > saying that your code to set up the data is too slow, or that running > HTML::Template after setting up the data is too slow? > > > I tried to load the template with 'cache=>1', but the performance > > improvement is not much. > > It makes a big difference in the actual template processing speed. It > will not make any difference in the speed of setting up your data > though. > > - Perrin > >
mp2 - err_headers_out-
Hi, I porting my shared store to modperl2, but for redirect i have one problem: [Thu Sep 08 16:50:08 2005] [notice] Apache/2.0.54 (Unix) mod_perl/2.0.1 Perl/v5.8.4 configured -- resuming normal operations ---> [Thu Sep 08 16:50:09 2005] [error] [client 127.0.0.1] Can't locate object method "STORE" via package "APR::Table" at /export/Test/lib/Test.pm line 25.\n I dont understand this problem look my httpd.conf PerlSwitches -I/export/Test/lib SetHandler modperl PerlResponseHandler Test PerlOptions +GlobalRequest PerlOptions +ParseHeaders this ok Test.pm package Test; use strict; use warnings FATAL => 'all'; #use mod_perl; use Apache2::RequestIO (); use Apache2::RequestRec (); use Apache2::Const -compile => qw(OK HTTP_MOVED_TEMPORARILY); sub handler { my $r = shift; my $location = "http://demo.nixus.com.br";; $r->err_headers_out->{'Pragma'} = "no-cache"; Apache2::Const::OK; } 1; Line with problem is: "$r->err_headers_out->{'Pragma'} = "no-cache";" or change Pragma to Location Someone have ideia? Sorry my english -- Udlei Nattis Gerente de tecnologia -- www.nixus.com.br +55 11 5087-9435
Re: a faster html::template?
On 8 Sep 2005, at 14:18, Perrin Harkins wrote: Not sure why you say "certainly not". XSLT is very fast and easy to optimise (because it's assignment free) and the C implementations are very quick. Remember that an XSLT transform is executing all its tight loops in C-space, not in perl-space. Yes, but HTML::Template doesn't do any parsing when executing a template. XSLT always has to parse XML, and then take some pains to generate well-formed XML. I admit that it's possible that an XML parser could be written that is so fast that it actually beats the speed of accessing variables in perl, but it seems very unlikely. It depends what architecture you use. You have to compare like-with-like. XSP in AxKit is perl code that executes to build a DOM tree, not a XML string, so there's no parsing involved - it's just iterating over a data structure. And it's very fast. To give a counter example using XML strings though, I produce the AxKit mailing list archives from a static XML file containing around 10k records. If I time this: xsltproc --stringparam month 1 --stringparam year 2005 ../stylesheets/archive-pickmonth.xsl index.xml | xsltproc ../stylesheets/archive-thread.xsl - | xsltproc ../stylesheets/archive-gather-orphans.xsl - | xsltproc ../stylesheets/archive-sort.xsl - | xsltproc ../stylesheets/archive-display.xsl - That's 5 XSLT stylesheets, which means parsing XML five times, and spawning 5 processes to do this. It executes in 0.75s on my server. Now to achieve this you have to know how to use XSLT, including using things like keys() to get efficient indexing, but I think you can see that it's very quick indeed. Matt.
Re: a faster html::template?
On Fri, 2005-09-09 at 10:22 -0400, Matt Sergeant wrote: > It depends what architecture you use. You have to compare > like-with-like. XSP in AxKit is perl code that executes to build a DOM > tree, not a XML string, so there's no parsing involved - it's just > iterating over a data structure. And it's very fast. I didn't mean to say that XSLT is unusably slow, just that it's not likely to be faster than something as simple as HTML::Template. HTML::Template (or HTML::Template::JIT, to compare C code to C code) has a *very* limited set of logical operations (not Turing complete by any stretch) that operates directly on Perl variables. By comparison, XSP will be making method calls to use the DOM tree and supports a very rich programming language. It does much more, and that's why I expect it to be slower. Not slow -- just slower. - Perrin
Re: a faster html::template?
On 9 Sep 2005, at 12:12, Perrin Harkins wrote: HTML::Template (or HTML::Template::JIT, to compare C code to C code) has a *very* limited set of logical operations (not Turing complete by any stretch) that operates directly on Perl variables. By comparison, XSP will be making method calls to use the DOM tree and supports a very rich programming language. It does much more, and that's why I expect it to be slower. Not slow -- just slower. Yes I know that's what you're saying. I'm just saying I'd be willing to bet it's the other way around (even when compared with HT::JIT).
Re: a faster html::template?
On Fri, 2005-09-09 at 14:38 -0400, Matt Sergeant wrote: > Yes I know that's what you're saying. I'm just saying I'd be willing to > bet it's the other way around (even when compared with HT::JIT). I'd wager a pint on this. We could make it a lightning talk at next year's YAPC::NA. - Perrin
Re: a faster html::template?
Here is a very very simple script comparing three approaches to build a large html table. I was surprised to see TT2 being the fastest..run it yourself and see. Note that XSLT timings include the time to build XML data string since in real life all data comes from Relational Database that must be converted into XML string and parsed. Of course, it tests only the Looping construct, not INCLUDE/PROCESS and various other features. START# #!/usr/bin/perl use strict; use Time::HiRes qw(gettimeofday tv_interval); use Data::Dumper; use XML::LibXML; use XML::LibXSLT; use HTML::Template; use Template; use File::Temp qw(tmpnam); my ($xslt_timer, $html_timer, $tt2_timer); my ($xml_parser, $xsl_parser) = (XML::LibXML->new, XML::LibXSLT->new); my $big_array = build_big_array(5000); my $xml_data = build_xml_data($big_array); my $template_obj = build_html_template(); my $html3 = render_tt2($big_array); my $xsl = build_xsl_processor(); my $html1 = render_html_template($template_obj, $big_array); my $html2 = render_xslt($xsl, $xml_data ); save_output($html1, $html2, $html3); printparse_string ($str); return $xsl_parser->parse_stylesheet($xsl); } sub build_html_template { my $tmpl = _read_chunk ('template'); return HTML::Template->new( scalarref => \$tmpl ); } sub _read_chunk { my $starter = shift; my ($running, $stop, $data) = (0,0); while () { next unless (/^\$$starter/ || $running); $running = 1; chomp; s/^\s+//; s/\s+$//; next if /^\$$starter/; $stop++ if length($_) == 0; last if $stop == 2; $data .= $_; } return $data; } sub render_html_template { my ($template_obj, $data) = @_; my $t0 = [gettimeofday]; $template_obj->param(TR_LOOP => $data); my $html= $template_obj->output; $html_timer += tv_interval($t0, [gettimeofday]); return $html; } sub render_xslt { my $xsl_proc = shift; my $xml_dom = shift; # timer starts here my $t0 = [gettimeofday]; my $html = $xsl_proc->output_string($xsl_proc->transform($xml_dom)); $xslt_timer += tv_interval($t0, [gettimeofday]); return $html; } sub render_tt2 { my ($data) = @_; my $o_tt2 = Template->new({ ABSOLUTE => 1, }); my $templ = _read_chunk('tt_template'); my $filename = tmpnam(); open (F, ">$filename"); print F $templ; close F; my $str; $o_tt2->process($filename,{data => $data},\$str); # need to process twice since first one would not use cached template my $str_new; my $t0 = [gettimeofday]; unless ($o_tt2->process($filename,{data => $data},\$str_new)) { print STDERR "TT2 ERROR ",$o_tt2->error(),"\n"; } $tt2_timer += tv_interval($t0); unlink $filename; return $str_new; } sub save_output { my ($h1, $h2, $h3) = @_; open (F, ">html_template.html") ; print F $h1,"\n" ; close F; open (F, ">html_xslt.html"); print F $h2,"\n" ; close F; open (F, ">html_tt2.html"); print F $h3,"\n" ; close F; } __DATA__ $data= { id => 100, p_name => 'JOHN', ap_time => '20050324 18-24-00', ap_tzr => 'US/Eastern', ap_tzra => 'EST', p_id => 109, ap_phone => '617 249 5000', ap => 'John Hopkins', ap_loc => 'Washington DC', ct_time => '20050405 10-32-00', ct_tzr => 'US/Pacific', ct_tzra => 'PST', count => 5, } $template= IDPatient NameAppt TimeApp TimezoneTimezonePatient IDAppt PhoneAppt ProvAppt LocationCall TimeTimezoneTimezoneCount $tt_template= IDPatient NameAppt TimeApp TimezoneTimezonePatient IDAppt PhoneAppt ProvAppt LocationCall TimeTimezoneTimezoneCount [% FOREACH tr=data %] [% tr.id %] [% tr.p_name %]> [% tr.ap_time %] [% tr.ap_tzr %] [% tr.ap_tzra %] [% tr.p_id %] [% tr.ap_phone %] [% tr.ap %] [% tr.ap_loc %] [% tr.ct_time %] [% tr.ct_tzr %] [% tr.ct_tzra %] [% tr.count %] [% END %] $xsl= http://www.w3.org/1999/XSL/Transform";> results_table statstabledata sort-table ID Patient Name Appt Time
Re: a faster html::template?
Praveen Ray wrote: > Here is a very very simple script comparing three > approaches to build a large html table. would you mind sending this script as an attachment. Email clients tend to garble... Thanks -- Michael Peters Developer Plus Three, LP
Re: a faster html::template?
--- Michael Peters <[EMAIL PROTECTED]> wrote: > > > Praveen Ray wrote: > > Here is a very very simple script comparing three > > approaches to build a large html table. > > would you mind sending this script as an attachment. > Email clients tend > to garble... > > Thanks > Attached. - Praveen __ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com html_template.pl Description: 1964327899-html_template.pl
Wrong effective gid
Hi, I'm seeing some odd behaviour under mod_perl (specifically, ModPerl::Registry - though the problem may be broader than that) with regards to the effective group ID ($)). I have a couple URL's below - an identical script, one served under CGI, one served under ModPerl::Registry. If you look at the Group ID values under the CGI one, you see the right value - 155 155 100 50. However, under mod_perl, I see real as being correct, but the first value of the effective group ID ($)) seems to be an abritrary number. I'm not certain where the number comes from, and it doesn't change when I make changes to the script or restart the server. I also changed the script to use POSIX::getegid() to see if it was something to do with $), but it also returns the strange value. Does anyone have any insight into this? -- -- Jason Rhinelander
Re: Wrong effective gid
Oops, I forgot the URL's: http://jagerman.com/env.cgi http://jagerman.com/perl/env.cgi Jason Rhinelander wrote: Hi, I'm seeing some odd behaviour under mod_perl (specifically, ModPerl::Registry - though the problem may be broader than that) with regards to the effective group ID ($)). I have a couple URL's below - an identical script, one served under CGI, one served under ModPerl::Registry. If you look at the Group ID values under the CGI one, you see the right value - 155 155 100 50. However, under mod_perl, I see real as being correct, but the first value of the effective group ID ($)) seems to be an abritrary number. I'm not certain where the number comes from, and it doesn't change when I make changes to the script or restart the server. I also changed the script to use POSIX::getegid() to see if it was something to do with $), but it also returns the strange value. Does anyone have any insight into this? -- -- Jason Rhinelander
Re: a faster html::template?
On 9 Sep 2005, at 17:07, Praveen Ray wrote: Here is a very very simple script comparing three approaches to build a large html table. I was surprised to see TT2 being the fastest..run it yourself and see. Note that XSLT timings include the time to build XML data string since in real life all data comes from Relational Database that must be converted into XML string and parsed. Not only that but your XSLT is very badly written. If I find time I'll send you a better version.
Re: a faster html::template?
> Not only that but your XSLT is very badly written. If I > find time I'll > send you a better version. please do. I'm no XSLT guru :( - Praveen __ Click here to donate to the Hurricane Katrina relief effort. http://store.yahoo.com/redcross-donate3/
Cannot build static mod_perl 2.0.1 / Apache 2.0.54 on Solaris 9
Hi, I'm not subscribed to this mailing list, so please respond to me... and actually, I'm not a developer... In order to install AxKit, since a few days, I'm still unsuccessfully trying to configure mod_perl 2.0.1 with the following environment : Solaris 9 (KJP 117171-17) / PERL 5.8.7 / Apache 2.0.54 / make=/usr/ccs/bin/make * PERL was successfully built with the following options : ./configure -des -Dusethreads -Dcc="gcc -B /usr/ccs/bin" * Bundle::Apache2 was added within CPAN. * I tried to configure a static mod_perl in Apache with the following options : perl Makefile.PL MP_USE_STATIC=1 \ MP_AP_PREFIX=/usr/src/apache/httpd-2.0.54 \ MP_AP_CONFIGURE="--with-mpm=prefork" * Although the previous command successfully ended, make ends with the following messages : Perl_Tstack_max_ptr /usr/share/src/mod_perl/mod_perl-2.0.1/src/modules/perl/mod_perl.a(modperl_callback.o) ld: fatal: Symbol referencing errors. No output written to .libs/httpd collect2: ld returned 1 exit status *** Error code 1 make: Fatal error: Command failed for target `httpd' Current working directory /usr/share/src/apache/httpd-2.0.54 *** Error code 1 make: Fatal error: Command failed for target `all-recursive' Current working directory /usr/share/src/apache/httpd-2.0.54 *** Error code 1 make: Fatal error: Command failed for target `ap_build' Thru perl.apache.org and Google, I can't figure out what those messages mean... * Apache 2.0.54 alone can successfully install with the following option : ./configure --with-mpm=prefork I can't find any further references to help me on this. Any idea about what could be wrong ? Thanks beforehand, Michael = Apache 2.0.54 configuration options = # ./httpd -V Server version: Apache/2.0.54 Server built: Sep 8 2005 23:10:28 Server's Module Magic Number: 20020903:9 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_FCNTL_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D HTTPD_ROOT="/usr/local/apache2" -D SUEXEC_BIN="/usr/local/apache2/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" = PERL 5.8.7 configuration options = # perl -V Summary of my perl5 (revision 5 version 8 subversion 7) configuration: Platform: osname=solaris, osvers=2.9, archname=sun4-solaris-thread-multi uname='sunos proactive 5.9 generic_117171-17 sun4u sparc sunw,ultra-enterprise ' config_args='-des -Dusethreads -Dcc=gcc -B /usr/ccs/bin' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc -B /usr/ccs/bin', ccflags ='-D_REENTRANT -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O', cppflags='-D_REENTRANT -fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='3.3.2', gccosandvers='solaris2.9' 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=8 alignbytes=8, prototype=define Linker and Libraries: ld='gcc -B /usr/ccs/bin', ldflags =' -L/usr/local/lib ' libpth=/usr/local/lib /usr/lib /usr/ccs/lib libs=-lsocket -lnsl -lgdbm -ldb -ldl -lm -lpthread -lc perllibs=-lsocket -lnsl -ldl -lm -lpthread -lc libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT Built under solaris Compiled at Sep 8 2005 19:05:09 @INC: /usr/local/lib/perl5/5.8.7/sun4-solaris-thread-multi /usr/local/lib/perl5/5.8.7 /usr/local/lib/perl5/site_perl/5.8.7/sun4-solaris-thread-multi /usr/local/lib/perl5/site_perl/5.8.7 /usr/local/lib/perl5/site_perl/5.8.5 /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl --