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" <cfa...@doyougot.com> 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 > >