Subject: Re: [PATCH 09/18] gitweb: Revert reset_output() back to original code

From: "J.H." <[email-masked]>
Date: Thu, 09 Dec 2010 18:43:08 -0800

>> Reverted change to reset_output as
>>
>> 	open STDOUT, ">&", \*STDOUT_REAL;
> 
> For somebody not following our discussion the above would be very,
> very cryptic... though I suppose this would be squashed in final
> (ready to be merged in) version of the code.
>  
>> causes assertion failures:
>>
>> 	Assertion !((((s->var)->sv_flags & (0x00004000|0x00008000)) == 0x00008000) && (((svtype)((s->var)->sv_flags & 0xff)) == SVt_PVGV || ((svtype)((s->var)->sv_flags & 0xff)) == SVt_PVLV)) failed: file "scalar.xs", line 49 at gitweb.cgi line 1221.
> 
> It looks like bug in Perl, because it should give some kind of Perl
> error, not failed assertion from within guts of Perl C code.
> 
> Which Perl version are you using?

This is perl, v5.10.0 built for x86_64-linux-thread-multi

>> if we encounter an error *BEFORE* we've ever changed the output.
> 
> And how to reproduce this error (i.e. how did you found it)?

Cause an error to occur before the caching engine switches output, for
instance fail on creating the cache dir, or disable caching all together
and generate an error.  I think the former is where I noticed it, it was
consistent though.

- John 'Warthog9' Hawley