RE: Help on debugging print problem

"Chris Faust" <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <05ee01ce5d4f$6cf94c80$46ebe580$@com>
Oh, I thought the header info had to be included in the length as well.

 

No luck there though, same Corrupted Content error. Really wish I knew what
could be causing it, no problem with the same code on 4 other machines and 3
of them are the same exact apache, mod_perl and libapreq2 versions.

 

Oh well, back to the drawing board.

 

Thanks

-Chris

 

From: Marcus Don [mailto:[email protected]] 
Sent: Thursday, May 30, 2013 12:00 PM
To: Chris Faust
Cc: [email protected]
Subject: Re: Help on debugging print problem

 

I suspect you can just to this...

 

my $size = -s '/report.pdf';

 

... but to be honest I haven't used Perl in years :)

 

BTW It would be a lot more efficient to stream the file contents rather than
read it into a variable.

 

Marcus

 

 

 

 

 

On 30 May 2013, at 16:54, "Chris Faust" <[email protected]> wrote:





Thanks Marcus, is there is a easy way to get the content length?

 

I tried

 

$length = calculate_body_len();

$r->err_headers_out->add('Content-Length' => $length);

 

Which gave me a corrupted content error, I also tried

 

my $body_len = calculate_body_len();

$r->set_content_length($body_len);

$r->rflush;

 

Which just did nothing.

 

Thx

-Chris

 

From: Marcus Don [mailto:mdon@ <http://names.co.uk> names.co.uk] 
Sent: Thursday, May 30, 2013 9:12 AM
To: Chris Faust
Cc:  <mailto:[email protected]> [email protected]
Subject: Re: Help on debugging print problem

 

At a guess, I'd say your new machine is using chunked output, so you might
need to add a size header.

 

Marcus

 

 

On 30 May 2013, at 12:11, "Chris Faust" < <mailto:[email protected]>
[email protected]> wrote:






Hi,

 

I have some code I use all the time I use to download a file:

 

if (-e '/report.pdf') {

                open(PDF, '/report.pdf') or die "could not open PDF $!";

                binmode PDF;

                my $output = do { local $/; <PDF> };

                close(PDF);

                $r->content_type('application/pdf');

                $r->err_headers_out->add('Content-Disposition' =>
'attachment; filename="report.pdf"');

                $r->print($output);

}

 

I've never had a problem before using the above until trying to do it on a
new machine. On that machine every time I still get prompted to download the
file but FF/IE says its only 20 bytes (even though the pdf is 200k on the
file system) and what is downloaded is not what is on the filesystem.

 

I tried different files, different paths etc with the same results so I
don't think it's a location or permissions issue.

 

The only thing that gets logged in the attempt is:

 

TIGHT LOOP!!!: Apache2::RequestRec=SCALAR(0x47e2f78) can't
Apache2::RequestRec::print!

 

Any ideas how I could further debug that error to find the cause?

 

TIA!

-Chris
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.