Closed andk closed 3 months ago
On Tue, Jan 23, 2024 at 12:22:35PM -0800, andk wrote:
Description
With v5.39.6-58-gb6f2485657 a test started to fail for GONZUS/Cache-utLRU-0.002000.tar.gz on DEBUGGING perls
Sample fail report: http://www.cpantesters.org/cpan/report/374ab3d2-b8fe-11ee-8ce7-d4c061afec44
Bisect says:
b6f2485657db9591ba249dc917047dbd11b373cf is the first bad commit commit b6f2485657db9591ba249dc917047dbd11b373cf Author: David Mitchell ***@***.***> Date: Mon Dec 11 11:36:55 2023 +0000 use rpp_foo_NN() and rpp_foo_IMM() widely
It's a bug in Cache::utLRU's XS code. Its find() method, when it fails to find a cache entry, pushes a NULL, rather than &PL_sv_undef, as the return value onto the stack.
It so happens that perl's scalar assign op can cope with assigning from a NULL pointer, but most of the perl core can't. So for example, if this line in 03_multi.t:
my $got = $cache->find($key);
is changed to
my $got = length($cache->find($key));
then it will crash on older perls too. The change in blead just detects NULLs on the stack earlier now, whereas before it would silently ignore them and likely crash further down the execution path.
Reported upstream.
It could be argued that the recently-added asserts should be reverted for now, since they were added quite late in the release cycle; but on the other hand, they only affect DEBUGGING builds, and the only thing they've broken so far is code that turned out to be broken anyway.
-- Never do today what you can put off till tomorrow.
...
Reported upstream.
Upstream bug report.
It could be argued that the recently-added asserts should be reverted for now, since they were added quite late in the release cycle; but on the other hand, they only affect DEBUGGING builds, and the only thing they've broken so far is code that turned out to be broken anyway.
My own hunch is that we can retain these asserts through the Feb 20 ("Contentious changes freeze") release, assess the data then, and revert if needed in late Feb or early March.
Pull request submitted upstream at https://github.com/gonzus/utlru/pull/2.
@gonzus
Pull request submitted upstream at gonzus/utlru#2.
@gonzus
Pull request accepted upstream, but no new CPAN release as of yet.
Pull request submitted upstream at gonzus/utlru#2. @gonzus
Pull request accepted upstream, but no new CPAN release as of yet.
New CPAN release of Cache-utLRU-0.003000 now installs against debugging perl. See: https://github.com/gonzus/utlru/pull/2 and http://www.cpantesters.org/cpan/report/006bf962-3ec2-11ef-b6f4-a8543243ea48. @gonzus++
Description
With v5.39.6-58-gb6f2485657 a test started to fail for GONZUS/Cache-utLRU-0.002000.tar.gz on DEBUGGING perls
Sample fail report: http://www.cpantesters.org/cpan/report/374ab3d2-b8fe-11ee-8ce7-d4c061afec44
Bisect says:
Steps to Reproduce
cpan -i GONZUS/Cache-utLRU-0.002000.tar.gz
Expected behavior
Should compile and test OK
Perl configuration