I found the error one of my input tags had a typo
<input type="text" name="date_sub" size="10" maxlength="10"
value="[+$date+]" class="formfield"'>
note the extra ' at the end of the input tag. That combined with the foreach
syntax described below caused the segmentation fault. If anyone wants to
further debug this I will be happy to help out.
Kato M Yoshiro wrote:
>
> I have been tasked with moving pages to a new embperl environment. Within
> a very complicated page, when any of several foreach loops have more than
> a single row of data, the page segfaults (I believe). I have been chasing
> a solution for a couple of days so I thought I would throw this out there.
>
> Original Environment which functions
> Embperl/1.3.6
> (this is a external hosted environment I can try to get more data if it is
> needed)
>
> New Environment which does not function
> Debian 4.0
> Apache/2.2.4 (Unix)
> Embperl/2.2.0
> PHP/4.4.7 mod_perl/2.0.3
> Perl/v5.8.8
> (I have full control of this environment)
>
>
> Here is the offending code
>
>
> [$foreach $single_target(@{$get_targets})$]
> [- (
> $tar_id,
> $tar_display,
> $tar_company
> ) = @{$single_target};
> -]
>
>
> [$endforeach$]
>
> Notes
>
> 1) Php was compiled using the Mysql libraries not the DBI libraries (not
> doing that led to its own seg faults but that error is fixed)
>
> 2) The query functions as I can pull each of the array elements manually
> ($get_targets->[0][0], $get_targets->[1][0], ect.
>
> 3) make test for embperl completed with no errors once I changed the
> versions in epoincdiv.htm and epodiv.htm
>
> 4) When debugging using the following
> EMBPERL_DEBUG 2147475453
> EMBPERL_LOG "/tmp/etest.log"
>
> when 2 rows are returned
> etest.log is 374K and the webbrowser returns a blank page
>
> when 1 row is returned
> etest.log is 1.4M and the webbrowser returns what I expected
>
> 5) When reduced to a minimalist page the foreach functions normally.
>
> 6) I have removed the parsing of the array
> ($tar_id,$tar_display,$tar_company) = @{$single_target}; leaving just the
> foreach with nothing in it and that still fails.
>
> I have no idea what to look for within the error log so I was wondering if
> anyone had any Ideas (Gerald??)
>
>
>
>
> Addition
>
> /usr/bin/perl /usr/local/bin/embpexec.pl
> /web/sub/dev/click/htdocs/get_efficient/center_create_new_test.epl
> produces only
>
> "Segmentation fault"
>
>
> Below are some gdb results for a web hit
>
> (gdb) file /web/bin/httpd
> Reading symbols from /web/bin/httpd...done.
> Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
> (gdb) set args -f ./conf/httpd.conf -X
> (gdb) r
> Starting program: /web/bin/httpd -f ./conf/httpd.conf -X
> Failed to read a valid object file image from memory.
> \[Thread debugging using libthread_db enabled]
> [New Thread -1211119936 (LWP 22866)]
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread -1211119936 (LWP 22866)]
> 0xb7b59e38 in EMBPERL2_Node_selfCondCloneNode ()
> from /usr/src/Embperl-2.2.0/blib/arch/auto/Embperl/Embperl.so
>
>
--
View this message in context:
http://www.nabble.com/seg-fault-from-foreach-loop-tf3827298.html#a10860455
Sent from the Embperl mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]