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

Re: perl-5.37.1 breaks texinfo-6.8

Thread Previous | Thread Next
From:
Karl Williamson
Date:
July 10, 2022 02:54
Subject:
Re: perl-5.37.1 breaks texinfo-6.8
Message ID:
730610ee-8e3c-1d72-db4c-0215cdf4a414@khwilliamson.com
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 texinfo.info 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 
>> texinfo.info 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
>> POSIX
>>
>>
> 
> 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.

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About