develooper Front page | perl.perl5.porters | Postings from July 2022

Re: perl-5.37.1 breaks texinfo-6.8

Thread Previous | Thread Next
Karl Williamson
July 10, 2022 03:56
Re: perl-5.37.1 breaks texinfo-6.8
Message ID:
On 7/9/22 20:53, Karl Williamson wrote:
> On 7/9/22 19:42, Karl Williamson wrote:
>> On 7/9/22 02:59, Uwe Düffert wrote:
>>> Dear Karl and perl5-porters,
>>> On Fri, 8 Jul 2022, Karl Williamson wrote:
>>>> Please then try adding the attached patch to your perl, and see if 
>>>> the problem is solved.
>>> Well, I'd say it "modifies" the problem. With perl-5.37.1 with this 
>>> patch, the offending perl command from texinfo does not panic 
>>> anymore. Instead, it creates a 300K and then continues 
>>> to run with full CPU usage forever (or at least until manually 
>>> terminated after 5min).
>>> With perl-5.37.0, the offending command instead creates a tiny 
>>> and 3 ~300K texinfo-{1,2,3}.info and finishes in like 1 
>>> second.
>>>> And in any case please send us the output of the Linux command
>>>> locale -a
>>> Sure. Nothing fancy I'm aware of:
>>> $> locale -a
>>> C
>>> C.utf8
>>> de_DE
>>> de_DE@euro
>>> de_DE.iso88591
>>> de_DE.iso885915@euro
>>> de_DE.utf8
>>> en_US
>>> en_US.iso88591
>>> en_US.utf8
>> Thanks for the info.  With it, I am able to reproduce this problem on 
>> my box.  But that it fails only when no DEBUGGING makes it harder to 
>> figure out.
>> The loop is probably because texinfo has a while(1) loop calling 
>> perl's setlocale for each entry returned from 'locale -a'.
>> I have run valgrind, and it shows no problems with DEBUGGING; early 
>> failures without.  These buffer overrun failures are likely causing 
>> the infinite loop when valgrind isn't there to prevent them from 
>> actually corrupting memory.
> Actually, I'm unsure that I actually reproduced it; it might have been 
> some setup error on my part.  But I can't get it to fail with the 
> attached patch.  And I have a lot more locales than you do.
> The patch includes instrumentation for non-debugging builds that prints 
> when a publicly accessible function enters and returns, and what it is 
> passed and what it returns.  Please apply and run it and email us the 
> output.

And attached is an alternative patch with even more debugging
Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About